看板 Stock
作者 zmcx16 (zmcx16)
標題 [心得] 美股選擇權-用蒙地卡羅模擬計算凱利公式
時間 Fri Mar  4 20:57:06 2022



部落格完整內容:
https://blog.zmcx16.moe/2022/02/blog-post_28.html

之前在股板有分享這篇: [心得] 美股選擇權估值網站開發
https://www.ptt.cc/bbs/Stock/M.1643358618.A.750.html
[心得] 美股選擇權估值網站開發 - 看板 Stock - 批踢踢實業坊
部落格完整文章:  最近在重新研究美股選擇權, 思考了一下大概有以下幾種作法: 1. 短線買賣合約賺差價 -> 短線投機成分太重, 加上對身心都不太好, 自己想像了下也覺得不適合自己, 故不考


做完選擇權估值模型大概快一個半月了, 目前我可以用選擇權理論估值跟目前市價計算
Bias程度, 合約有大幅溢價時可以賣出選擇權; 相反的有大幅折價時則是買進選擇權,

也有Delta值可以知道合約估值的行權機率, 用這些數據來決定要作買方還是賣方, 不過

還有一個大問題, 今天我想買進或賣出時, 我到底應該要買進 / 賣出多少部位, 才能達
到利益最大化呢?

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


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

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

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


剛好這兩個問題, 都可以透過凱利公式解決, 關於凱利公式我相信有在投資的人應該都不
陌生, 這邊就不再介紹, 有需要可以自行Google或看上面部落格文章。


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



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


https://blog.raymond-investment.com/stock-simulation-monte-carlo/


雷大網站模擬器:

https://raymond-investment.com/FinancialEngineering/MonteCarlo
蒙地卡羅模擬法 - 股價路徑 - 雷大的Python投資筆記
不少人都會在網誌(blog)上加入 AdSense 廣告以賺取額外收入,但到底 AdSense 收入可以達到甚麼水平?這筆收入是不是十分可觀?其實對一般網誌而言,AdSense 的收入只是聊勝於無,如要依賴 AdSense 收入過日子,網站必須極具規模。 ...

 


蒙地卡羅模擬公式:
https://i.imgur.com/Oydp4H1.png


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


https://i.imgur.com/4chyJIk.png


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

https://i.imgur.com/3P9d5FG.png


看起來均勻一點了, 如果我們把模擬次數調更高, 結果應該會更顯著。
再來我們想計算個股A的某張B買權合約, 假設B合約行權價是102元, 離到期日還有100個
交易日, 合約市價目前是3元, 來畫兩條橫線以及一條直線, 橫線分別是行權價(102)以及
行權價 + B合約的市價(102+3=105), 直線則是到行權日還有幾個交易日(100)。


https://i.imgur.com/FtxdiLL.png


根據模擬結果, 紫線(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
https://github.com/zmcx16/Norn-Finance-API-Server
GitHub - zmcx16/Norn-Finance-API-Server: A lightweight finance API server to get the US stocks, options data, and calculate the option valuation.
A lightweight finance API server to get the US stocks, options data, and calculate the option valuation. - GitHub - zmcx16/Norn-Finance-API-Server: A  ...

 


Frontend code
https://github.com/zmcx16/Norn-StockScreener
GitHub - zmcx16/Norn-StockScreener: scan and filter instruments based on market cap, dividend yield, ROE and popular investment master's stock tactics to find valuable stocks.
scan and filter instruments based on market cap, dividend yield, ROE and popular investment master's stock tactics to find valuable stocks. - GitHub - ...

 


投資網站
https://norn-stockscreener.zmcx16.moe/options/


https://i.imgur.com/crbjH5u.png

可以看見, 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的結果:

https://i.imgur.com/wR34BFX.png


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



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

https://i.imgur.com/Ujdm1az.png


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

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



這次分享就到這邊, 目前試著交易了快兩個月選擇權, 目前的獲利還算不錯, 今年至今資
產總報酬17.3%:

https://i.imgur.com/bDtyA1t.png

不過大部分都是個股獲利, 選擇權獲利大概只佔10%左右, 絕大多數獲利都是1X%~20%的價
外賣權, 主要賺權利金, 要是真的行權就當加碼, 跟過去只交易個股不開槓桿不同, 現在
會把選擇權行權做為槓桿操作的部份, 今年打算配合選擇權交易動態調整總資產槓桿的

0%~25%左右。 另外也有少量買進一點買權(HUM)賣權(FB, PYPL), 不過量很少, 畢竟買方
勝率低, 我只會拿賣方賺的部份權利金去小賭, 另外賭的方式當然最主要還是參考Bias跟
凱利公式, 可是最重要的還是以趨勢為主,


像FB跟PYPL就算Bias或凱利公式算出來在怎麼甜, 我還是會先以自己的多空判斷的方向為
主, 在從這個方向去看估值模型挑最划算的合約才交易。

--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.201.118 (臺灣)
※ 文章代碼(AID): #1Y8Wocsz (Stock)
※ 文章網址: https://www.ptt.cc/bbs/Stock/M.1646398630.A.DBD.html
asduio: 有神快拜1F 03/04 21:00
Trybeer: 有神快拜(不然人家說我看不到懂)2F 03/04 21:02
LMGG: 跟我想的一樣3F 03/04 21:04
IanLi: 推實踐4F 03/04 21:05
Agilitar: 嗯嗯,我也是這樣覺得。5F 03/04 21:08
addy7533967: 快推假裝自己看得懂6F 03/04 21:09
piyieen: 嗯嗯沒錯 就是這樣7F 03/04 21:09
jdjfghr: 看不懂= =8F 03/04 21:09
village0817: 推認真優質文9F 03/04 21:09
asduio: ( )♡
^ ^10F 03/04 21:10
fdkevin: 嗯跟我想的差不多12F 03/04 21:11
kbjent80459: 推開源13F 03/04 21:16
bearian: 差不多是這個意思14F 03/04 21:16
yyy855029: 推15F 03/04 21:18
Baumgartner: 完全看不懂16F 03/04 21:20
mixegg321: 推!17F 03/04 21:21
ljsnonocat2: 感覺蠻酷的18F 03/04 21:21
lolpklol0975: 好猛  數學系嗎19F 03/04 21:25
steven8404: 我沒有一句聽得懂 只知道現在葡萄買起來20F 03/04 21:27
zirkey: 謝謝分享21F 03/04 21:28
no2muta: 謝了 我複委託旁邊站22F 03/04 21:29
lolic: 沒錯就是這樣我本來當年論文也要寫這個23F 03/04 21:30
pradalove: 研究那麼多,還是沒辦法實戰24F 03/04 21:30
OxFFFFFFFF: 有分享開源先推25F 03/04 21:34
lucien0410: 那你的年化報酬率和波動率必須要準確才有用26F 03/04 21:42
對, 個股過去年化報酬率我也不相信, 我只用波動率去模擬, 就算失真只要不要失真太大
我在多抓個安全邊際對交易來說也比較有信心些。 估值模型跟凱利公式我都是參考用,
實際上最後還是要看自己主觀判斷, 模型只是輔助而已。
etoh522: 想當初只要看到用蒙地卡羅跑模擬的期刊就直接跳過27F 03/04 21:43
g0t24568: 蒙地卡羅模擬有點久了28F 03/04 21:47
AK47shoot: 只交易了兩個月,參考性不高;半年之後再來說吧29F 03/04 21:49
hyk99885ggb: 我真的看不懂 先推30F 03/04 21:52
※ 編輯: zmcx16 (123.194.201.118 臺灣), 03/04/2022 22:01:01
wulongman: 你爬一下LTCM, 花點時間看「天才殞落」,你覺得有沒有雷同的感覺?
如果你是肥尾事件才進場,那感覺會更好。但你能花5年等肥尾事件?31F 03/04 22:00
LTCM我自己看法是槓桿玩太大, 不過槓桿率在小一點, 搞不好真的像文藝復興一樣成為傳
說, 等肥尾事件塔雷伯有說他在實際操作, 可是我直觀就覺得自己一定做不到, 心態上一
定會崩盤(要忍受好幾年持續虧損沒有強健心態+對自己的模型極有自信根本不可能), 所
以我自己是選另一邊站, 只要槓桿率不要太高, 能存活下來就好。
※ 編輯: zmcx16 (123.194.201.118 臺灣), 03/04/2022 22:06:12
Zoanthropy: 這是用什麼程式跑的模特擬?35F 03/04 22:10
Python, 可以參考文章的backend source code
daniel6412: 蒙地卡羅很多都可以跑啊,excel自己套公式36F 03/04 22:12
guagua1101: 感謝分享37F 03/04 22:15
※ 編輯: zmcx16 (123.194.201.118 臺灣), 03/04/2022 22:16:54
wulongman: 既然你看過塔雷伯,顯然你應該要知道,重點是期望值而不是勝率。一次厚尾事件後,你的期望值還會是正的嗎?蒙地卡羅的跑百分之一的機率,損失10倍淨資產,你還能是正的嗎?因為你一定會有槓桿。38F 03/04 22:16
對, 所以我大部分只做賣出賣權, 然後賣權只會挑我想加碼的公司, 就算全部行權我也只
會最多拉升25%的槓桿, 至於買進買權/賣權的部份只是拿之前賺的部份權利金小賭, 輸了
就算了。 槓桿用不好會直接畢業破產, 所以我只打算把槓桿率拉到頂多1~2年薪水能補的
程度就好, 再高我也受不了...。
guagua1101: ltcm槓桿開的太唬爛了 .42F 03/04 22:16
※ 編輯: zmcx16 (123.194.201.118 臺灣), 03/04/2022 22:20:45
totqoq: 強者推43F 03/04 22:22
cvbndbjzxcv: 跟我想得差不多44F 03/04 22:25
dolphin24681: 分享推45F 03/04 22:27

--