市場穿透性的迷思
本帖最後由 萬年船 於 22-8-17 11:50 編輯剛接觸海外期貨的人,最想做的就是把現有的策略直接移植到海外市場去,通常會出自於兩個原因:
[*]比較省事,不用再研發新策略
[*]認為有市場穿透性作為基礎,移植後在新市場的交易會更穩定
第一個原因自然是成立的,沒問題,但第二個原因可能就未必成立了(等一下論述原因並且證明),所以進入海外市場時,最好還是一個城池(市場)一個城池(市場)慢慢攻克,這樣才能真的穩定,畢竟跨足海外市場,圖的就是分散風險、增加穩定性
論述
策略在多市場的穿透性自然是越高越好,代表背後的邏輯是普遍存在於市場上的真東西,所以此交易邏輯是有所依據的,而非瞎湊出來的overfitting下的產物,但這個真東西不代表在另一個能被穿透的市場上也是穩定的,穩定的東西靠的是統計上的顯著性(或利基),顯著性越高才越穩定
證明
以下舉一個實例來證明『市場穿透性與另一個市場的穩定性無關』,此例子以美國市場的那斯達克(NQ)、標普(ES)、道瓊(YM)來當測試標的物,由前者穿透到後二者,測試條件如下
本穿透策略的特性
[*]策略類型:當沖
[*]進場單:限價單
[*]出場單:限價單、停止單、市價單
[*]可最佳化參數:7個
[*]策略複雜度:簡單(主要只有一個多頭進場IF敘述、一個空頭進場IF敘述、setexitonclose、停利指令、停損指令,如此而已)
[*]每年交易次數:數百筆
那斯達克(NQ)
[*]傭金設定:$2.03
[*]滑價設定:每口$2.15
[*]限價單回測設定:穿價1 tick才算成交(此設定實際交易,會比回測績效好)
標普(ES)
[*]傭金設定:$2.03
[*]滑價設定:每口4.13
[*]限價單回測設定:穿價1 tick才算成交(此設定實際交易,會比回測績效好)
道瓊(YM)
[*]傭金設定:$2.03
[*]滑價設定:每口2.22
[*]限價單回測設定:穿價1 tick才算成交(此設定實際交易,會比回測績效好)
測試時間為2007~2018(12年)的In-Sample資料,把那斯達克的這個策略直接套用在標普與道瓊,且每個參數都設一樣,如果權益曲線都向上,那無疑就是代表穿透了,如下圖所示
很明顯的在In-Sample測試中,第一個圖顯示本策略確實由那斯達克穿透到標普與道瓊,再看第二個績效指標圖,年化夏普值由原本那斯達克的1.25降低到標普與道瓊的0.5左右,此時大家可能會跑出一個念頭,反正被穿透的標普與道瓊還是賺錢,雖然績效低一些,也無所謂,有市場穿透性的基礎當靠山,將來一定還是能穩定賺錢的
接著我們來驗證此此念頭是否正確,前面我們用的是2007~2018(12年)In-Sample的資料,現在改用之後Out-of-Sample 2019~2022年7月的資料(約3年半),如下圖所示
由第一個圖可以看到被穿透的標普與道瓊在後來的Out-of-Sample資料都在走蛇行,而年化夏普值更是變的很低,甚至變負的,問題出在哪呢?傳說中的市場穿透性難不成要走下神壇了嗎?其實也不是說市場穿透性沒用了,而是穿透到別的商品或市場時,利基還要夠多才行,這樣在被穿透的商品或市場,套用相同策略才容易穩定
這時大家可能又會跑出另一個念頭,雖然那斯達克、標普、道瓊都是美國市場,但畢竟還是不同成分股所組成,參數還是要有差異化才會穩定,有道理,接著我們再把標普與道瓊在In-Sample資料下進行最佳化,結果如下圖所示
在In-Sample資料下進行最佳化,曲線變得漂亮了,年化夏普值也接近1或超過1了,緊接著再來看之後Out-of-Sample的表現,如下圖所示
由第一個圖可以看到標普與道瓊在後來的Out-of-Sample資料還是在走蛇行,而年化夏普值也是變的很低,甚至變負的
我把OE (Out-of-Sample Efficiency)定義為
OE = Out-of-Sample年化夏普值 / In-Sample年化夏普值
OE概念上跟WFO的WFE類似,現在我們來看那斯達克(nq)與最佳化版本的標普(es)、道瓊(ym)的OE值
[*]OE(nq) = 1.35 / 1.25 = 108 (%)
[*]OE(es) = 0.46 / 0.87 = 53 (%)
[*]OE(ym) = -0.11 / 1.14 = -10 (%)
只有那斯達克的OE值是優良的,而標普的OE值則是勉勉強強,最差的則是道瓊還小於50%,甚至是負的,所以真的能放心下去交易的只有那斯達克,標普與道瓊雖然策略也能穿透過來,但利基不夠,仍不適合實際交易
最後結論
[*]往海外期貨發展時,不要急著一次全部到位,想直接搭著市場穿透性的翅膀,隨隨便便網羅一堆市場,因為在沒有足夠利基(或統計上的顯著性)的情況下,投資組合可能會變得更不穩定;一個市場一個市場慢慢研究,顯著性足夠時才加進投資組合,這樣才是上策
[*]策略在別的市場具有穿透性,只能說明在原本市場的交易是更可信賴的,但是在被穿透的市場上交易未必仍有穩定性(除非也有足夠的利基或統計上的顯著性)
本帖最後由 萬年船 於 22-9-19 10:49 編輯
附上本策略分別在這三個商品執行WFO後,其WFO的樣本外績效(Out-of-Sample Risk-Adjusted Return),如下圖所示
[*]WFO樣本外績效(NQ) = 1.78
[*]WFO樣本外績效(ES) = 0.67
[*]WFO樣本外績效(YM) = 0.21
我就是那個想一次到位的人..XD這篇文對我很有幫助,會再反覆閱讀思考
感謝大大分享!!! 非常難得的好文章!! 滑價設定:每口2.22好像是 micro 的價格
mini 的都應該10倍? 不知我是否想錯? micro 2007年還沒有,所以我想應該還是mini 本帖最後由 萬年船 於 23-8-29 05:08 編輯
TrendRover 發表於 23-8-29 02:15
滑價設定:每口2.22好像是 micro 的價格
mini 的都應該10倍? 不知我是否想錯? micro 2007年還沒有,所以我 ...
是mini(YM)沒錯,不過是帶量時段的滑價設定(美中08:00-15:15),因為此策略是當沖策略
早期在2016年10月有進行嚴謹的量測,在美中08:00-15:15,YM的平均買賣價差約1.17個最小跳動點(現在是多少,就不知道了)
而停止限價單直接掛在交易所,所以設定滑價2.22
請參考此篇的說明:海外期貨(Globex)商品的當沖交易成本估計(Slippage Ratio設0.38)
萬年船 發表於 23-8-29 05:06
是mini(YM)沒錯,不過是帶量時段的滑價設定(美中08:00-15:15),因為此策略是當沖策略
早期在2016年10月 ...
那斯達克(NQ)
[*]傭金設定:$2.03
[*]滑價設定:每口$2.15
這邊有 $ 2.15 我誤以為是美金
TrendRover 發表於 23-9-1 02:30
那斯達克(NQ)
[*]傭金設定:$2.03
NQ滑價設定:每口$2.15,此值是美金沒錯
2016年有嚴謹量測過NQ,在美中08:00-15:15的平均買賣價差約1.13個最小跳動點
此帶量時段滑價 = 5 * 0.38 * 1.13 = $2.15
(最小跳動點$5、Slippage Ratio設0.38)
謝謝萬年船大大.
想問一個很基礎的問題. 看到您的backtest報表是感覺一次可以測3個instruments, 並把equity curve排在一起. 請問您是如何做出這樣的設定呢? 我都每次只能跑出一個圖, 然後再關掉跑下一個 :( rc76 發表於 23-9-18 07:54
謝謝萬年船大大.
想問一個很基礎的問題. 看到您的backtest報表是感覺一次可以測3個instruments, 並把equit ...
我一次也只測一個instrument
文中只是把三個回測圖剪貼黏在一起而已
好的! 謝謝萬年船大大! 請問萬年大:
---> 穿價1 tick才算成交(此設定實際交易,會比回測績效好)
這是什麼意識呢? 請問在回測怎麼樣做這樣的設定呢? 是把slippage費用多加1 tick嗎 感謝分享,學到了不少概念,蔡基繼續努力學習 rc76 發表於 23-10-4 14:58
請問萬年大:
---> 穿價1 tick才算成交(此設定實際交易,會比回測績效好)
抱歉, 原來這是在回測內設定. 謝謝萬年大!
頁:
[1]
2