2022年2月28日 星期一

[網站開發] 美股選擇權定價模型 - 用蒙地卡羅模擬計算凱利公式

接前篇: [網站開發] 美股選擇權定價模型 - 新增風險係數 (希臘值)

做完選擇權估值模型大概快一個半月了, 目前我可以用選擇權理論估值跟目前市價計算Bias程度, 合約有大幅溢價時可以賣出選擇權; 相反的有大幅折價時則是買進選擇權,  另外我也有Delta值可以知道合約估值的行權機率, 用這些數據來決定要作買方還是賣方, 不過還有一個大問題, 今天我想買進或賣出時, 我到底應該要買進 / 賣出多少部位, 才能達到利益最大化呢?  

另外也還有個問題, 今天我透過理論值以及實際值的偏差可以知道折價溢價, 在均值回歸的作用下, 長期的進行溢價時賣, 折價時買, 大數法則下通常長期下來是會有正報酬的, 可是今天也有可能, 大眾的方向一直是對的, 會溢/折價是因為大方向趨勢就是那樣, 跟著群眾大方向作對, 搞不好長期下來反而造成負報酬也說不定。

所以現在有兩個問題想要解決:

1. 交易時我該買進 / 賣出多少部位, 才能利益最大化?

2. 不考慮選擇權折溢價, 單純從標的物(股票)順勢交易的角度看, 我到底該買進, 還是賣出?


剛好這兩個問題, 都可以透過凱利公式解決, 關於凱利公式我相信有在投資的人應該都不陌生, 不過這邊我還是貼一下參考資料:

兼具強固性的下注建議 - 凱利公式 (Kelly Formula)


另外也推薦愛德華・索普這本書: 

他是賭神,更是股神:從賭城連贏到華爾街的天才數學家,關於風險、財富和人生的第一手告白




我自己之前也有針對個股做自動計算凱利公式的網站:




簡單重新介紹一下公式:



從上圖可以看到, 凱利公式是由賠率、獲利機率、虧損機率這三個參數計算得出, 今天如果賠率非常高而且獲利機率也非常高, 那我們就可以下重注, 就算運氣差輸了, 多賭幾次在大數法則下也能賺回來; 而如果賠率很低或虧損機率高, 導致公式算出來是負值, 那就會建議你不要下注了, 這個遊戲長期玩下來輸錢的可能性很高。


再來要做的, 就是思考怎麼把選擇權交易套用在這個公式上, 這樣就能知道這選擇權合約我是不是該交易, 並且交易多少部位才合適。 以買進買權/賣權來說, 獲利無限且風險有限, 所以我們可以得出虧損金額就是買進合約的價格, 但是其他參數就不確定了, 獲利無限代表獲利金額不確定(畢竟投資市場不是賭博遊戲, 賠率不是固定好的), 獲利機率跟虧損機率, 則是看合約到期時, 標的物價格是否達到行權價 + 你付出的合約價的機率, 這個值也沒有一個確定可用的值(delta是行權的機率, 可是不包含合約的價格, 所以也不適合), 沒辦法把估值模型的結果套用在凱利公式上。


後來思考了幾小時, 想到這個問題或許可以用蒙地卡羅解決, 我只要用蒙地卡羅模擬未來標的物到合約到期日的價格, 我就可以用這個結果, 去得到預期賠率, 獲利機率以及虧損機率。 關於蒙地卡羅模擬未來價格這塊, 可以參考雷大寫的這篇文章:


公式:



另外雷大也有做個網站模擬器, 有興趣的人也可以玩玩看。

蒙地卡羅公式的參數部分等等會再提, 先來看看怎麼完成選擇權的凱利公式吧, 首先我們可以先假設個股A的最近收盤價為100, 近一年報酬率為15%, 年化波動率也是15%, 跑10次蒙地卡羅模擬, 可以得到下面這張圖:



可以看到這10條線模擬, 最高股價可以到接近140塊, 最低則是80幾塊, 會這樣不均勻是因為年化報酬率是正值的關係, 如果我們把年化報酬率設成0, 則是如下:


看起來均勻一點了, 如果我們把模擬次數調更高, 結果應該會更顯著。

再來我們想計算個股A的某張B買權合約, 假設B合約行權價是102元, 離到期日還有100個交易日, 合約市價目前是3元, 來畫兩條橫線以及一條直線, 橫線分別是行權價(102)以及行權價 + B合約的市價(102+3=105), 直線則是到行權日還有幾個交易日(100)。



根據模擬結果, 紫線上在105元上面的6個點是模擬結果為有獲利的; 而紫線下面的4個點則是虧損, 其中介於紫線跟橘線的1個點是部分虧損(有行權但是扣掉合約價格為虧損), 橘線下面的3個點則是固定虧損(沒有行權故損失合約價), 這樣我們就能得到凱利公式所有需要的參數了:
  • 獲利金額: (106-105)+(106-105)+(107-105)+(108-105)+(114-105)+(116-105) = 27元
  • 獲利機率: 6/10 = 60%
  • 虧損金額1(有行權但扣掉合約價為虧損): |(103 - 105)| = 2元
  • 虧損金額2(沒有行權直接損失權利金): 3 + 3 + 3 = 9元
  • 總虧損金額: 2 + 9 = 11元
  • 虧損機率: 4/10 = 40%

賠率b = 27 / 11 = 2.4545; 下注比率 = p - (q / b) = 0.6 - (0.4 / 2.4545) = 43.7%

凱利公式建議每次下注可以下43.7%, 這邊要特別提醒的是, 凱利公式的前提條件是可重複的特定賭局, 而選擇權交易是不可重複的, 所以得出來的結果千萬不要就直接拿來用, 一定要估個安全邊際, 才能確保不會被雜訊或肥尾事件搞爆, 畢竟在不是重複賭局的情況, 賠率, 獲利機率跟下注比率每次都不一樣, 要是遇到一次高投注比率之後幾百次都是低下注比率, 那輸那一次就輸慘了, 公式只能是參考, 千萬不要盲信!  

再來就是蒙地卡羅的模擬次數不夠多, 樣本數不夠的情況下, 模擬結果的信心程度也會大減, 下注比例最主要還是要以自己可承受的風險為最高原則。

上面計算的是買進 call / put的凱利公式計算, 而賣出 call / put的凱利公式其實算法也一樣, 畢竟選擇權是零和遊戲, 把獲利跟虧損換過來就行了(獲利有限, 風險無限)。


再來就是直接計算真實的選擇權合約了, 這部分已經實作進選擇權估值模型, 年報酬率的取得直接使用近一年的個股回報率, 波動率則是用之前做好的EWMA Volatility, 另外關於蒙地卡羅股價模擬的參數, 過去的波動率跟未來的波動率通常差距不大(除非有重大事件或營運忽然變化太大), 所以直接拿來用我覺得是可行的。 可是個股回報率這塊其實有點雞肋, 畢竟真要說起來, 過去的績效不代表未來的績效, 當然也有那種公司跟股價一起穩定成長的公司, 可是像景氣循環股, 或是相對公司營運反而炒作成分較大的個股, 用過去的個股回報率去模擬未來股價我反而覺得失真會更大, 所以這部份我乾脆就通通計算了, 分別使用個股年回報率=0以及過去一年回報率來計算對應的凱利公式。

整合後的結果如下:

Backend code


Frontend code


投資網站


可以看見, Bias折價極高的合約, 凱利公式大多建議是當買進一方, 大多數情況下, 極大折價的合約做買方是比較有優勢的, 不過相反情況其實也有可能, 如果Bias顯示是折價, 可是凱利公式建議你當賣方, 那表示可能合約價格的影響極低, 所以扣掉合約價(風險後), 剩下的就只剩勝算了, 只看勝算的話那Bias等於沒用(畢竟看折溢價要站在對立方才有意義, 價差不大就只剩波動率問題了), 等於只看能不能行權。 

像上表其中一筆AMZN, 雖然折價高可是凱利公式建議當賣方, 可以看到因為AMZN的delta值極低(0.05), 這代表這份合約會行權的機率極低, 所以凱利公式建議我們當賣方是合理的。 

那為什麼估值上Bias折價為什麼那麼高呢? 原因是比例問題, AMZN的目前股價3075元, 行權價3800元, 行權價跟現價差了23.55%, 距離行權日3/18只剩三星期, 所以很難行權, 可是合約還是有在交易, 而且便宜的驚人(0.35), 合約市價只佔標的物價格的0.0114%, 幾乎快跟免錢沒兩樣了, 而估值模型估出來的合理價是7.32元, 佔標的物價格的0.238%, 也是超級便宜, 所以估值模型的Bias會跟凱利公式不同調, 只是因為AMZN股價太高, 所以便宜的合約的Bias敏感度也跟著被拉高, 這也是不能單看Bias去做交易的關係, 而多了一項凱利公式作為判斷的基準, 讓我們在做買進 / 賣出決策時多了一個更好的參考點。


那反過來說, 是不是專挑凱利公式投注比率最高的交易就好呢? 來看看用凱利公式排序Buy的結果:



排序下來得到的都是價內合約, 所以delta值也幾乎是1, 照理說價內合約應該幾乎沒時間價值, 賠率低勝算高, 那為什麼凱利公式算出來的投注比率會高呢? 可以看看合約的最後交易日期, 都沒有最近一次交易日2/25, 代表這些合約其實都有點深度價內, 沒人在交易了, 所以標的物價格離很遠, 看起來賠率很高&因為在深度價內所以勝算也高, 但實際上這些合約都買不到了, 上面的價格已經是好幾天前的價格, 這些資料對交易基本上沒有參考價值。


看完Buy排序的結果, 再來看看Sell排序的結果吧:


跟想像的一樣, 都是深度價外的合約, delta值也都趨近於0, 代表這些合約幾乎不可能行權, 所以凱利公式才會建議下大注賣。 

值得一看的是跟排序Buy不同, 最近一次交易日有近一半是2/25, 代表這些合約在最近一次交易日是有被交易的, 這表示不少人喜歡買這種深度價外的合約, 就像買樂透一樣用少少的錢去賭一把看能不能行權, 然後也可以看到其實這些合約還是有些小Bias折價的, 而到底要看Bias溢價折價當買賣方, 還是看凱利公式決定, 這沒有標準的答案, 不過我自己個人看法是, 如果兩邊都是同調&強力的話, 挑選這些合約做交易, 我相信長期下來獲利的機率是會比較大的。

這次的分享就到這裡, 連假剩最後一天, 終於可以好好休息了~~~ XD

沒有留言:

張貼留言