[心得] 美股选择权估值网站开发

楼主: zmcx16 (zmcx16)   2022-01-28 16:30:11
部落格完整文章:
https://blog.zmcx16.moe/2022/01/blog-post.html
最近在重新研究美股选择权, 思考了一下大概有以下几种作法:
1. 短线买卖合约赚差价
-> 短线投机成分太重, 加上对身心都不太好, 自己想像了下也觉得不适合自己, 故不考
虑。
2. 寻找套利机会
-> 难度很高, 要有高规格的设备去即时扫描所有市场, 就算真的找到有套利机会的标
的, 自己的资本额也完全不足以赚到钱, 再加上交易成本等等, 基本上也是完全不用考虑
了...。
3. 搭配现股做避险或加码操作, 做中长线投资
-> 感觉最适合自己, 不过以前自己这样做成效不彰, 必须要想办法改进自己的策略。
4. 寻找市价跟估值乖离过大的合约交易, 只要不是黑天鹅事件等级, 在均值回归下长久
下来应该能赚钱
-> 这个感觉也有研究的价值, 不过如果只是找乖离过大标的, 在不考虑公司基本面的
话, 就只是单纯的做交易而不是当股东, 风险控管部分得更确实, 而且某方面来说可能会
搞成像方案1, 如果要做这块必须更小心谨慎。
这样看来能玩的就是3&4了, 如果要做这两块, 最重要的就是针对选择权做估值, 估算目
前市场上的选择权合约, 相对于标的价格到底是贵还是便宜, 如果合约市价比合理价贵,
我们就可以卖出合约赚权利金; 相反的如果合约市价比合理价便宜, 那我们就可以买进合
约, 赌赌看能不能履约赚到标的价差。 至于合理价要如何计算得出, 就可以靠选择权估
价模型, 而最具代表性的有以下三种:
1. Black-Scholes Model
套入数学公式就能计算出合约理论价格, 公式太复杂恕小弟不解释(我有看没懂, 顶多知
道参数代表的意义而已, 为什么公式长这样我也雾煞煞)
2. Monte Carlo Simulation
对标的价格的变化做随机模拟, 在假设符合常态分布的情况下进一步推算出合约价格。
公式其实我也是看不懂, 只懂概念而已。
3. Binomial Tree (二元数, 二项式定理)
从估值日开始建树, 每次的分支都是一个时间的价格的变化(波动率), 持续建树直到节点
到行权日为止。 也是这三种模型中唯一可以计算美式卖权的模型。
现在知道有三种代表性的模型, 再来要做的, 就是对美股市面上所有的选择权合约做估
值, 这块当然不可能靠人工计算, 包含抓市场资料以及计算估值, 都打算直接透过程式处
理, 幸好三种估值模型网络上有一堆程式码了, 抓Yahoo财经资料的library也有, 我只要
专心串起来做整合就好, 做好的成果如下:
Github:
https://github.com/zmcx16/Norn-Finance-API-Server
程式写成Web API Server的形式, 这样之后可以直接串我写的其他网站, 目前提供四种
API:
[GET] /stock/history
[GET] /option/quote
[GET] /option/quote-valuation
[Websocket] /option/quote-valuation
Open API文件: https://norn-finance.zmcx16.moe/docs
第一个API是取得个股历史股价, 这个API我主要拿来计算个股的历史波动率, 第二个API
则是取得美股个股的期权链, 也就是个股的所有选择权合约, 前两个API就只是直接抓
Yahoo财经的资料, 而第三个API则是取得选择权的合约以及估值结果, 只要输入个股代号
就会帮你抓该个股的所有合约以及针对每一份合约算出上述三种模型的合理估值。 至于
为什么还有第四个Websocket API, 原因是这个网站我是架在Heroku当免费server用, 可
是却因为选择权估值模型计算太久采到Heroku 30秒timeout的雷, 为了workaround才开的
API, 有兴趣的人可以看这篇文章:
https://blog.zmcx16.moe/2022/01/heroku30request-timeout-workaround.html
另外网站前端的部分则是直接在Norn-Stockscreener多开一个选择权估值页面:
https://norn-stockscreener.zmcx16.moe/options/
这页面提供两种模式:
1. 美股个股盘后选择权估值
2. 查询&计算个股选择权估值
https://i.imgur.com/ijTxhFO.png
https://i.imgur.com/qYID5Ku.png
上面的表格是Calls, 下面的表格是Puts, 以(1.) 美股个股盘后选择权估值来说, 就是收
盘后扫全部美股的期权链资料, 在分别计算上面提到的三种选择权估值模型.....是很想
这么做, 可惜做不到..., 原因在于美股有几千甚至一万多档个股, 然后每档个股的选择
权合约数量又会随着行权日跟行权价格的组合成倍数成长, 以AAPL来说, 光是一个月内的
近月选择权就有几百档合约, 要去爬这些资料并计算估值, 跑没多久就会被Yahoo财经
ban IP, 更不用说还需要庞大的电脑运算资源跑估值模型(Black-Scholes Model只需要一
行公式就能算出, 可是Monte Carlo Simulation & Binomial Tree得跑超久...), 所以只
能加上一些限制条件, 只针对比较有用的合约跑估值就好, 我目前是只针对以下的个股选
择权跑估值模型:
1. 标的(个股)市值超过500万镁
2. 近月选择权 (近45日内行权)
3. 最小成交量 >= 10
4. 最近一次交易日 (3天内)
这样过滤后就能只针对比较有机会交易 & 流动性风险也较低的合约做估值, 不过即便如
此, 符合这些条件的合约做完估值后还是一大把, 我必须得让程式自动挑出我感兴趣的合
约, 所以又针对这些已经做完估值的合约, 计算估值后的价格以及目前市场价格的乖离率
(Bias), 乖离率越大代表市场价格跟理论价格差异越大, 在均值回归下获利的可能性也较
大。 以我目前想交易的策略来说, 我主要针对下面两种情况做过滤:
1. Valuation Bias: last price > 0.1; premium > 100% (合约现价被严重低估)
last price > 0.1 代表最近一次交易的权利金价格超过0.1元, 毕竟权利金要是更低, 光
是交易手续费就不划算了, 在加上权利金低于0.1块八成也很难交易成功(除非有地上的钞
票可捡), premium > 100%表示理论价格大于目前市价100%以上, 代表现在合约价格是被
严重低估的, 如果我们buy call或buy put, 那获利的机率可能会比较高。
2. Valuation Bias: last price > 0.1; discount > 50% (合约现价被严重高估)
一样last price > 0.1 , 而discount > 50%表示现在合约价格跟理论价格比至少打折超
过50%以上, 代表现在的合约价格是被严重高估的, 如果我们sell call或sell put, 那获
利的机率可能会比较高。
3. Self Query
其实就是打上面提到的/option/quote-valuation API, 即时查询&计算个股的选择权合约
以及三种模型的理论估值, 不过因为是用免费的服务器, 计算估值模型又要花很多运算资
源, 如果是像AAPL那种超多行权价以及行权日的合约, 就得跑超久, 如果真的需要做大量
查询或是常常失败, 上面也有提供程式原始码, 可以自己架个Server用自己的环境跑API

说明就先到这边, 接着来试着使用看看吧, 首先我想找合约现价被严重低估的call或put
合约, 表格的Valuation (Avg) 是三种估值模型计算后的平均合约价, Bias (Price) 则
是上述价格跟合约最后成交价(Last Price)的乖离程度。 从下图可以看到, 针对Bias排
序后, ARNA行权价100元, 行权日2/18的合约, Bias竟然有70倍。 看一下合约市价只有
0.1元, 可是理论估值却是7.19元, 的确是超过70倍没错:
https://i.imgur.com/kR88jJW.png
可是这样就代表真的是超划算的赚钱机会吗? 这可不一定, 我们可以看看合约标的ARNA的
股价走势看看:
https://i.imgur.com/wT8GHYs.png
可以看到, ARNA在12/13后忽然暴涨80%以上, Google了一下原因是这则新闻:
辉瑞收购喜讯加持 Arena Pharmaceuticals
美国生技公司 Arena Pharmaceuticals 周一(13 日)传出辉瑞同意以 67 亿美元收购喜
讯,换算每股收购报价为 100 美元,为上周五收盘价的 2 倍,盘中股价应声大涨近 80%
,接续盘前涨势。
如果对选择权估值模型的公式还有印象的话, 其中有一项最重要的参数为"波动率", 选择
权简单一句话解释, 就是买合约的有行权的权利, 卖合约的有履约的义务, 最终还是在赌
会不会行权, 行权时的价差有多大。 而估值模型的所有输入参数中, 波动率是最重要且
未知的参数, 波动率大就代表行权的可能性大, 波动率小则相反, 所以波动率越大, 合约
价格就会越贵; 相反若波动率越小则越便宜。
But, 虽然你提供的未来波动率参数越准确, 则估值模型计算出的合约价格就越精确, 可
是未来是不可知的, 我上面跑估值模型是直接计算标的过去一年的波动率, 所以遇到上述
情况, 可以预期提供给模型的波动率是严重高于未来波动率的, 所以这个估值并不可信,
不能单纯看这个乖离率去买进买权。
继续往下看, 那些乖离率极高的, 几乎也都是上述这种情况, 所以还是得一个一个过滤,
把这些噪声滤除掉, 不过靠这表格至少已经从恒河沙数的合约过滤到剩92笔合约。
再往下找, 看到有一档FAF:
https://i.imgur.com/eB0x8XM.png
https://i.imgur.com/RAeVFPE.png
标的现价73.64, 行权价75.00, 离行权只差1.85%价差, 而合约现价只有0.25, 估值价则
是1.08, 乖离率3.33倍, 其实不看乖离率就觉得这合约超便宜, 会这么便宜应该是这几天
大跌, 市场情绪是觉得这档会继续下跌吧, 可是如果止跌了可以预期会获利颇丰, 要赌我
也会想赌这种的。
再来试着找合约现价被严重高估的合约吧, 看表格符合条件的call合约有3304笔, put合
约有2221笔, 因为是当卖方, 最好结果也就合约到期不用行权, 所以乖离率最高就等于
1, 也就是合约其实完全没价值(即便还没到期也一样):
https://i.imgur.com/fFsRt0i.png
看表格一排的AMZN(Amazon), 来看看AMZN到底发生了什么事:
https://i.imgur.com/msVwcG7.png
这样看就很清楚了, 因为最近美股大跌, AMZN近一年的波动率其实不大, 可是最近这两根
大跌破让股价大跌, 上面表格的行权价看起来都不太可能行权了, 所以合约市价极低。不
过因为AMZN过去的历史波动率低, 而我的估值模型又是直接套用历史波动率, 所以估值模
型计算出来这合约根本不可能行权, 合约价格直接给0, 所以才会乖离率为1。
这个问题其实有点麻烦, 照理说估值模型如果算出合约价为0, 那我们应该可以爽爽的卖
合约爽赚权利金, 可是合约市价现在也跟屎没两样, 就算比0好也不代表一定要卖合约,
毕竟过去的波动率不代表未来的波动率, 模型就算真的运气好用历史波动率给你算很准,
也都还是机率问题, 没有确定的答案, 来个肥尾效应就输到脱裤了。
会有3000多档符合条件的合约, 应该有一大半都是上述这种情况, 这边改一下表格的过滤
条件, Valuation (Avg) > 0.05, 并且不看AMZN, 排序下来找到ALGN, 标的现价462.78,
行权价570.00, 离行权差23.17%价差, 合约现价6.77元, 可是估值只有0.06元, 乖离率高
达0.99。
https://i.imgur.com/c7CI6Dm.png
离行权日只剩两周, 照理说两周要涨23%感觉很有难度, 感觉这权利金应该很好赚, 来看
下ALGN股价走势:
https://i.imgur.com/9NHBEs3.png
原因跟AMZN一样是最近暴跌, 不过看起来比AMZN还要有赚头(合约跟行权价差有1.18%, 两
个礼拜赚1.18%算很不错), 不过问题是裸卖空是很危险的, 要是来个V转就会为了赚1.18%
赔十几二十%都说不准, 真的要玩也得做好避险才行...。
另外选择权估值也只是用理论估值跟标的物当下相比, 理论价跟市价乖离率差多少, 就算
乖离率落差很大, 搞不好明天标的物大涨或大跌就又整个不一样了, 所以在买卖选择权
时, 我第一个看的还是标的物的现况, 在决定要不要买卖选择权, 像是这几天美股涨跌幅
都蛮大的, 我有趁低档捡了不少Sell Put Intel(INTC)以及美国钢铁(X), 毕竟真的跌到
这么低, 对我来说行权就真的是捡到大便宜, 没行权就爽赚权利金(至于为什么不直接买
现货, 因为现金用完了, 到时候行权我就当开小杠杆提早加码~), 而到底要交易哪个合
约, 我就可以直接跑估值模型看, 看哪档合约乖离率最高最值得交易:
https://i.imgur.com/3oA9H0T.png
上面会有NaN是因为已经1/28行权日到期了, 在过半天查询应该就不会再查到这些合约,
而之后用乖离率排列下来看, 2/18 37.5卖权乖离率最高, 不过其实前几名估值模型跑出
来几乎都没价值, 我就选2/18 40卖权, 能多赚些权利金就多赚些, 不过这也是因为昨天
INTEL这么大一根下跌才会乖离率这么高, 用历史波动率计算估值毕竟是过去资料, 要是
INTEL后续再来几根这么大根下跌, 那用历史波动率算估值模型基本上就惨了, 基本上还
是赌博啦~。
这次分享大概就到这边结束, 部落格文章后面会讲估值模型的历史波动率计算, 以及一些
开发历程踩的雷, 有兴趣的话可以直接看部落格文章。 如果有什么错误或建议, 欢迎一
起讨论~。
作者: XDDDpupu5566 (XDpu56家族)   2022-01-28 22:59:00
推个

Links booklink

Contact Us: admin [ a t ] ucptt.com