而排比較少發新帖,因為我準備緊一系列的Videos去為大家講解每個Alpha帖子,所以請大家耐心等多一等。到時有 Videos 大家就可以手把手跟住學點樣複製整個策略,真正做到理論與實踐兼備。都係個句,我諗大家都有做足功課的,但少部份讀者想學寫策略但唔寫codes,真係唔好玩啦大佬,係一定要寫架...... 唔寫唔知原來好多traps架。例如最基本的look ahead bias,其實唔係靜係得攞錯行咁簡單,我見過做左十幾年的PM的回測都有犯左一樣的錯,但係係好subtle,要真係落過場,買左一籃子股票,再睇返個回測先會發覺出晒事的問題黎。如果聽唔明唔緊要,遲下我出 Alpha 視頻和交易相關的Python視頻再講。 大家而家先自己加油一下先,起碼睇下基本的Python知識基礎。
回正題,大家應該都聽過Put/Call Ratio,今次我們用到 CBOE的Put/Call Ratio來預測下一日的S&P500期貨回報。在Bloomberg內的CBOE Put/Call Ratio 描述如下:
簡單來說,就是用到當日 CBOE的所有 Equity Put Option Volume / Call Option Volume。按傳統理解option作為避險工具去對沖股票Long exposure,所以這個Put/Call Ratio數字越高,代表市場中做Put volume 的Demand越高,通常代表市場準備下行風險更大。
但大家可見上圖,Put/Call Ratio 的走勢沒有明顯趨勢,如果用一般的趨勢策略去做會造成Over-trading問題,導致交易成本過高。但如果只選Fixed threshold去做,可能由2000年到2024年內只有數個或十多個交易,那如何是好?
來看看我們這個策略邏輯:
首先會用到我們Alpha 1 的ipynb script,用到200天的rolling-window去計percentile而非expanding window。交易規則是:
1. 先計出今天的CBOE Put/Call Ratio 減去昨天的 CBOE Put/Call Ratio,得出一個Difference
2. 然後用 rolling(5).mean() 去計出 5天平均的 Difference
3. 如果從2.計出的數字是fall到rolling-200天的 0-10 percentile ranges內,就會 Long ES at closing price 然後在下一個closing price 平倉。
但如果沒有辦法計到real-time CBOE Put/Call Ratio的朋友,那要怎辦? 那可以把這個策略當成一個備用策略,一但python program從CBOE網頁scrape到當日最新的Ratio後,便可以視乎當時ES價格再決定交易與否。
我們這裡用到Alpha1的方法,測試結果以下:
可以見到,0-10 percentile range的預測能力很明顯,45度向上升。
Asset trading: 標普Emini (2000-2024) (Long)
Performance Statistics:
Cheers,
阿程
(【公開量化策略系列 8】)
(部分上圖來源自Bloomberg)
SY
2024-10-20 13:34:14 +0000 UTCSiu Yin
2024-10-19 12:18:51 +0000 UTCRyan Ng
2024-08-18 08:19:54 +0000 UTC