股票
使用 GBM 模擬股票價格路徑,是否可以一遍又一遍地執行相同的模擬?
當我使用幾何布朗運動模擬股票的價格路徑時,我有時能夠得到一個非常適合實際值的非常好的預測。但如果我再次執行模擬,結果會有所不同。這可能是由於布朗運動的隨機過程。
有沒有辦法一遍又一遍地執行相同的模擬(非常適合實際值的模擬)而不會得到不同的結果?
當您實際交易時,這很好。例如,您可以對一些過去的數據進行測試,然後將其與實際值進行比較,以查看模型是否表現良好。如果是這樣,那麼您可以將相同的模型用於您將要購買和/或出售的未來預測。但是,如果每次模擬的結果都不同,那麼如果您希望進行未來預測,您將無法用真實數據進行測試,因為您正在預測沒有數據的未來。
這是我的程式碼。一半時間與數據非常吻合,另一半則不然。
#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 的文章是可訪問且富有啟發性的。