# Geometric Brownian Motion Simulations for Stock Price

## Description

Geometric Brownian Motion (GBM) is a mathematical model used to describe the stochastic movements of continuous-time processes. It's a fundamental concept in finance, particularly in modelling stock prices and other assets' movements in financial markets

## Files

## Steps to reproduce

import pandas as pd import numpy as np import matplotlib.pyplot as plt # Read the CSV file into a DataFrame df = pd.read_csv('/Users/sunilbenedict/Documents/HINDUNILVR.NS.csv') # Extract the 'Close' prices for analysis closing_prices = df['Close'] # Calculate daily returns returns = np.log(closing_prices / closing_prices.shift(1)) # Calculate drift and volatility of returns drift = returns.mean() volatility = returns.std() # Define parameters for the simulation t_intervals = 252 # Number of trading days iterations = 10 # Number of simulations # Simulate GBM daily_returns = np.exp(drift + volatility * np.random.normal(0, 1, (t_intervals, iterations))) price_paths = np.zeros_like(daily_returns) # Set the initial price as the last available price in the dataset price_paths[0] = closing_prices.iloc[-1] # Generate price paths based on the GBM for t in range(1, t_intervals): price_paths[t] = price_paths[t - 1] * daily_returns[t] # Plot the simulations with legends plt.figure(figsize=(10, 6)) plt.title('Geometric Brownian Motion Simulations for Stock Price') plt.xlabel('Trading Days') plt.ylabel('Stock Price') for i in range(iterations): plt.plot(price_paths[:, i], label=f'Simulation {i+1}') plt.legend() plt.show()