上回我們使用最基本的亂數模擬器方法成功模擬出Mike Trout的上壘率,當抽取出來的亂數小於上壘率時,認定為上壘,而亂數大於上壘率時,則認定為出局,用簡單的大於和小於就可模擬出來的模型,股價模型就稍微複雜些了,基本款的股價路徑模型最少具有二種參數與機率分配假設,背後的數學推導與原理就請大家自行去看財務工程相關的書籍了,我們先列出一個股價過程的理論式如下:
有了最基本的理論公式後,首先,我們必須定義出參數,參數可以描述這個股票的特性,例如新興市場股票與成熟市場股票的報酬率與波動度都不一樣,電信與生技公司的股價也會相當不一樣,所以我們必須要利用過去的資料去推估參數的區間範圍。
mu = 0.1 #資產年化報酬率為10%
Std = 0.2 #資產年化波動率為20%
dt = 1/252. #模擬路徑為每天,每天經過252分之一年
第一步:先將理論式轉換為Python的計算語言,記得括號設對位置,再用相對應的科學計算函數帶入公式內
S1 = S0 * np.exp((mu - 0.5 *Std**2)*dt + Std*np.sqrt(dt)*np.random.standard_normal())
S1為明天的模擬股價,S0是今天的股價,透過不斷的疊代,將可以產生出一整條的股價路徑,我們把它包裝成function吧!
def Simulation_StockPrice(S0, mu, Std, dt):
S1 = S0 * np.exp((mu - 0.5 *Std**2)*dt + Std*np.sqrt(dt)*np.random.standard_normal())
return S1
基本的股價路徑模型就建立完成了,後續可以裡用for loop與list建立出一整條股價路徑啦,留給大家自行操作。
好文出自《雷蒙的Python投資筆記》,
如果你喜歡他的文章,歡迎回到原文看更多: )
There’s certainly a lot to know about this topic. I really like all the points you have made.
Wonderful blog! I found it while browsing on Yahoo News.
Do you have any tips on how to get listed in Yahoo
News? I’ve been trying for a while but I never seem to get there!
Thanks