헥사곤 코드 자문
# 1. 필요한 라이브러리 설치
# pip install numpy pandas matplotlib yfinance
# 2. 파이썬 코드
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import yfinance as yf
# 주가 데이터 가져오기
# 'yfinance' 라이브러리를 사용하여 APPLE 주가 데이터를 가져옴
ticker = 'AAPL'
data = yf.download(ticker, start='2020-01-01', end='2023-01-01')
prices = data['Close']
# 로그 수익률 계산
# 주가의 로그 수익률을 계산
log_returns = np.log(prices / prices.shift(1)).dropna()
# 기하 브라운운동 파라미터 추정
mu = log_returns.mean() * 252 # 연간화
sigma = log_returns.std() * np.sqrt(252) # 연간화
# 시뮬레이션 파라미터 설정
# 초기 주가(S0), 시뮬레이션 기간(T), 시간 간격(dt), 시뮬레이션 스텝 수(N), 시뮬레이션 경로 수(M)을 설정
S0 = prices[-1] # 현재 주가
T = 1 # 시뮬레이션 기간 (1년)
dt = 1/252 # 하루
N = int(T / dt) # 시뮬레이션 스텝 수
M = 10 # 시뮬레이션 경로 수
# 기하 브라운운동 시뮬레이션
np.random.seed(42)
S = np.zeros((N+1, M))
S[0] = S0
for t in range(1, N + 1):
Z = np.random.standard_normal(M)
S[t] = S[t-1] * np.exp((mu - 0.5 * sigma**2) * dt + sigma * np.sqrt(dt) * Z)
# 시뮬레이션 결과 시각화
plt.figure(figsize=(10, 6))
plt.plot(S)
plt.title(f'Geometric Brownian Motion Simulation of {ticker} Stock Price')
plt.xlabel('Time (days)')
plt.ylabel('Price')
plt.show()