股票

使用 GBM 模擬股票價格路徑,是否可以一遍又一遍地執行相同的模擬?

  • February 3, 2021

當我使用幾何布朗運動模擬股票的價格路徑時,我有時能夠得到一個非常適合實際值的非常好的預測。但如果我再次執行模擬,結果會有所不同。這可能是由於布朗運動的隨機過程。

有沒有辦法一遍又一遍地執行相同的模擬(非常適合實際值的模擬)而不會得到不同的結果?

當您實際交易時,這很好。例如,您可以對一些過去的數據進行測試,然後將其與實際值進行比較,以查看模型是否表現良好。如果是這樣,那麼您可以將相同的模型用於您將要購買和/或出售的未來預測。但是,如果每次模擬的結果都不同,那麼如果您希望進行未來預測,您將無法用真實數據進行測試,因為您正在預測沒有數據的未來。

這是我的程式碼。一半時間與數據非常吻合,另一半則不然。

#from __future__ import division
from random import gauss
from math import exp, sqrt
from matplotlib import pyplot as plt
import pandas as pd
import numpy as np

def generate_asset_price(S,v,r,T):
   return S * exp((mu - 0.5 * v**2) * T + v * sqrt(T) * gauss(0,1.0))
  

#or dt instead of T
# return S * exp((mu - 0.5 * v**2) * T + v * sqrt(T) * gauss(0,1.0))

S0 = 12.2 # underlying price
v = 0.114764067

mu = -0.002773523


dt = 0.01 # 1 day
T = 20
n = int(20) # number of steps

S_path=[]
S=S0 # starting price
for i in xrange(1,n+1):
   S_t = generate_asset_price(S,v,mu,dt)
   S= S_t
   S_path.append(S_t)

修復 RNG(隨機數生成器)的種子。這篇來自 sharpsightlabs.com 的文章是可訪問且富有啟發性的。

引用自:https://quant.stackexchange.com/questions/60895