上回我們使用最基本的亂數模擬器方法成功模擬出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投資筆記電子報

歡迎訂閱雷大的Python投資筆記電子報,每週將會發布定期市場分析文章與不定期的專案研究文章:

  1. 國際金融市場分析
  2. 量化交易策略分享
  3. Python程式撰寫教學

立即訂閱最新文章

你可能感興趣的文章
有機率有模型就可模擬全世界:蒙地卡羅(Monte Carlo)

蒙地卡羅方法是由Von Neumann與Ulam提出以機率統計為概念的數值計算方 Read more

【程式交易】為什麼你應該用Python做程式交易?

大家都在用MultiCharts,為什麼要選擇用Python呢?Python是一 Read more

【網路爬蟲】臺灣證券交易所歷史資料教學(2)

上一篇【網路爬蟲】臺灣證券交易所歷史資料教學(1) 提到如何從證交所網站剖析連接 Read more

【網路爬蟲】臺灣證券交易所歷史資料教學(1)

前面有提到網路爬蟲的優點與缺點,優點就是免錢,缺點就是資料格式可能會改變,需要花 Read more

受保護的內容: Python X 選擇權|利用Black-Scholes來模擬選擇權價格進行回測

不論在使用台灣或美國的選擇權歷史資料時,都會碰到價格不連續的感覺,導致看起來回測 Read more

受保護的內容: Python X 選擇權|選擇權回測

從期交所抓取資料 import pandas as pd import nump Read more

發表迴響