Python으로 시작하는 포트폴리오 리스크 관리
Dakota Wixom
Quantitative Analyst | QuantCourse.com

금융에서 랜덤 워크는 물리학에 비해 대체로 단순합니다:

StockReturns가 주식 수익률 시계열이라고 가정합니다.
랜덤 워크 시뮬레이션:
mu = np.mean(StockReturns)
std = np.std(StockReturns)
T = 252
S0 = 10
rand_rets = np.random.normal(mu, std, T) + 1
forecasted_values = S0 * (rand_rets.cumprod())
forecasted_values
array([ 9.71274884, 9.72536923, 10.03605425 ... ])
단일 자산에 대한 몬테카를로 시뮬레이션 결과입니다. T0 기준 주가 $10에서 시작하여 1년(252 거래일, x축) 예측:

100회 몬테카를로 시뮬레이션의 VaR(95) 계산:
mu = 0.0005
vol = 0.001
T = 252
sim_returns = []
for i in range(100):
rand_rets = np.random.normal(mu, vol, T)
sim_returns.append(rand_rets)
var_95 = np.percentile(sim_returns, 5)
var_95
-0.028
Python으로 시작하는 포트폴리오 리스크 관리