量化研究 | 策略在指数与主连复权的差异化分析(二)
量化策略開發,高質量社群,交易思路分享等相關內容
作者簡介
呂洋洋?
某大型資管公司在職量化策略研究員,熟悉數據清洗工作,擅于運用宏觀因子、行業因子等進行對期貨品種價格影響建模與相關性分析,理解機器學習多元回歸法,SVM,XGboost,金融時間序列等底層算法邏輯,部分算法可自定義函數封裝。掌 握各種機器學習包與數據計算分析包的運用。包括不限于:Alphalens,pandans,爬蟲技術,sklearn,statsmodels 等。
『正文』
ˇ
通過上一篇的初步探索分析,我們基本可以得出,在螺紋鋼這個品種上面,某個策略加載在指數和主連復權回測的結果是完全不一樣的。那么如果我們采用主連復權為基準,是否策略就不能用了呢?策略結構就要改了呢?其實有豐富經驗的投資者會否定這一答案。道理很簡單,因為就算有誤差XY兩個行情數據系列是有相關性的,有協整關系的,大部分情況只需要改參數就可以在主連復權上面去驗證。
這一篇我們就是得出最終結果。
第一:是否主連回測好,指數回測也好?
第二:到底我們是用指數好還是主連好?
以上2個結果的實現,看似簡單我們還是要一步一步分拆很多邏輯和工作步驟來解決。首先,我們為了比對哪個好,不光要看回測的曲線和績效來對比,我們還要根據策略加載行情對比一些信號才好下結論。
我們先來看第一個問題,在同一策略下面,根據主連和指數參數優化出來的是否主連回測好,指數回測也好?
如下圖所示:
圖1:主連復權參數優化列表
從該列表我們隨機選擇一個,假設我選擇一個次數較多的一個120次的【60,10,45】該組。該策略優化區間為2016.1.1-2020.8.3時間段,我們將該組參數放到指數合約,看看是個什么樣子。
圖2:【60,10,45】參數加載指數合約回測績效曲線
圖2:【60,10,45】參數加載主連復權合約回測績效曲線
光從圖上我們可以看出,主連復權跑出來的參數加載到指數并沒有主連復權自身更好。這一點其實在做這些分析與研究之前,也是部分情況出乎我個人意料之外的。因為,安裝邏輯來說,指數是一種降過噪的行情K線序列數據,在指數的參數或者策略大概率在主連復權會差,這一點邏輯大家都清楚,但是反過來,主連復權的都好,在指數的應該會更號或者至多不差才是,但是很可惜,并不是這種結果。
有的人會說,是不是你的策略邏輯問題導致的,別的策略就會不一樣呢,的確是有這種可能性存在。但是從數學證明角度來說,一個反例的出現就證明了這個問題的非絕對性,說明主連復權好推不出指數肯定絕對好的結論。
?問題一總結:不同的數據,不同的結構,只要不是成比例的,基本上就會存在差異,這跟毛刺不毛刺沒有任何關系。到這里我們應該就要明白了,兩個數據并沒有誰好誰壞之分,因為隨著市場的各種因素推動,這已經是2個不一樣的行情數據結構,某個策略某個參數在主連好,但是指數并不一定好,反之亦然。最起碼我們在螺紋鋼上看到的是這么個結果。
下面我們再來進行一下CTA必備的工作流程之一——看圖對信號。也就是我們將主連和指數各自的加載到各自的圖形上去找不一樣的地方。當然也并不是全部,會找一些典型的來分析一些原因。
如下圖所示:
圖3:某點位主連與指數平倉差異
圖4:某點位主連與指數開倉差異
兩幅圖左邊是主連復權,右邊是指數,我們帶著很多觀點來看討論這些問題,市場上有一部分觀點認為:指數雖然跟實際合約有噪音,但是指數更為平滑,有一定過濾噪音的作用,這個在邏輯是說的通的。但是實際我們重點看第二個圖會發現,主連復權在2020.3.2,11:00和2020.3.10,11:15分別開了多單,最后都是盈利出局。但是指數合約卻是在2020.3.5,9:00和2020.3.10,13:30,分別是虧損出局。
從非常局部的交易狀態來看,指數并沒有起到市場觀點中的過濾作用,當然了這2個樣本也不足以否定上面的邏輯,如果非要驗證是否有過濾作用,只能是去通過交易記錄不一樣的地方去查看,但是這種工作不僅需要耗費很大的時間,而且也對指數還是主連復權好沒有什么太多的判斷作用。最后我們還會看到在2020.3.25,9:30主連復權當時已是2010合約,此處發了多單,但是指數因為介于換月過程中,價格波動相對平滑,此處并沒有開多的信號,這也就是我們所說的指數價格過濾的作用了。
綜上所述,我們經過基本的定性分析與回測定量分析可以明顯看到,指數與主連誤差性的問題,并沒有因為自身具有所謂過濾毛刺的優勢而完全對沖掉他的問題,甚至帶來buff。雖然我們從下圖中可以看到,在某幾段行情中的確具有一定的過濾、減少交易次數等情況出現,但是在帶來利潤和穩定的同時,有部分止損情況擴大也是有的,因此我們在過往歷史無法全部統計的情況下,集合回測和相關性分析,以及部分信號,本人定性得出:在換月期間1-2個月左右,指數對過濾毛刺信號是有一定作用。
如下圖所示:
圖5:2018.11-2018.12主連(左)與指數(右)的區別
上圖是2018.11-2018.12兩個月的15分鐘K線圖,通過上圖我們可以看到,主連復權共有4次做多,但是都止損了。指數3次做多,并且2次盈利出局,這里所說的盈利出局并不是光說的是指數上進出場是個盈利,本人對照開倉時間點到平倉點,映射在主連這段也是盈利出局的。這也就是我們所說的指數行情數據過濾毛刺的優勢。
在上一篇中,我們也看到了在2019.11-2019.12期間,主連復權的回撤要比指數的大很多,其實也是基于同樣的邏輯,這里我在多給大家截圖看一下。
圖6:2019.11-2019.12主連(左)與指數(右)的區別
其實通過圖形走勢我們可以看到,兩者在這2個月的走勢是不一樣的,主連震蕩向上,指數屬于橫盤震蕩。從左圖第二個圈往右算,均交易了7次,也都止損了4次,這里并沒有像去年同期一樣具有一定的過濾作用。定性來看,每一次相關性抖動的換月周期時刻,指數并沒有起到顯著或者規律性的過濾作用。
基于以上的定性分析結論和誤差性的前提下,在螺紋這個品種上,初步基于這種分析邏輯和方式來看,主連復權似乎是更好的選擇。
下面我將把黑色系板塊其余的品種:焦炭、鐵礦、熱卷、動力煤、猛硅等四個品種的結果公布出來。以供大家參考。
焦炭
圖7:焦炭指數與焦炭主連相關系數圖
圖8:焦炭指數
圖9:焦炭主連復權
綜述:縱觀4年半焦炭指數和主連復權的相關系數異動性只有2次,最前面異動-2那塊問題前一篇文章說過了,看不懂的請回看。因此,較少時間和較低程度的相關性抖動一定程度的確是可以刻畫出誤差客觀性。
最后回測圖上結果,我們也可以看到,除了最近半年多左右與主連有一些出入外,基本上整體相關性比螺紋鋼要好上很多。
某種程度來說,在焦炭行情中,指數的誤差是可以接受的,當然從嚴謹性來看,我們把以主連復權為標準的參數放到指數合約看一下,如下圖所示:
圖10:焦炭主連復權
圖11:焦炭指數
從以上兩圖中也可以看出,不論是以指數為基準加載到主連復權,還是以主連復權為基準加載到指數,兩個曲線的相關性依然很高。
初步結論:基于焦炭品種用指數和用主連復權誤差是可以接受的,與螺紋鋼不同,具體指數是否具有一定優勢我會在下一篇指數計算信號,主連復權計算績效中繼續深入研究。
猛硅
圖13:猛硅指數與猛硅主連相關系數圖
圖14:猛硅指數
圖15:猛硅主連復權
綜述:縱觀4年半猛硅指數和主連復權的相關系數異動性有6次,且呈現時間長的特點。因此,我們從主連的績效圖也可以看出,指數績效不斷震蕩新高,主連績效處于回撤震蕩期。雖然指數的參數放到主連復權去回測出來的跟指數的相差甚遠,但是總體并沒有達到虧損的地步,與螺紋、鐵礦、焦炭相比來說,排在倒數第二位吧算是。
繼續下面的步驟,我們依然把主連復權為標準的參數放到指數合約看一下,如圖所示:
圖16:猛硅主連復權
圖17:猛硅指數
鐵礦石??????????
圖18:鐵礦指數與鐵礦主連相關系數圖
圖19:鐵礦石指數
圖20:鐵礦石主連復權
縱觀4年半鐵礦指數和主連復權的相關系數異動性比較多,可能是由于鐵礦石的升貼水過大,導致臨近換月出現主力和次主力合約持倉量差不多,從而出現了主力和次主力的加權平均,當價格變動的時候也要弱于主力合約實際的價格變動。
但是從持續性來看,該策略是鐵礦石的一小時策略,發生相關性降低后,很快的在第二個小時K線迅速回復回去。因此呈現了一種極速偏差然后極速回歸的情況。
但是很令我個人震驚的一件事兒就是,鐵礦石竟然出現了主連復權還要比指數收益高的情況。當然夏普、最大回撤等績效指標,相對于指數來說并沒有像凈利潤一樣出現提升。
繼續下面的步驟,我們依然把主連復權為標準的參數放到指數合約看一下,如圖所示:
圖21:鐵礦石主連復權
圖22:鐵礦石指數
熱卷
圖23:熱卷指數與熱卷主連相關系數圖
圖25:熱卷指數
圖26:熱卷主連復權
縱觀4年半熱卷指數和主連復權的相關系數異動性不多,從持續性來看也不長,異動程度也不大,從指數與主連復權的區別來看,主連復權的曲線波動大于指數曲線波動,整體凈利潤幾乎一致,甚至主連復權的還要微高于指數。
繼續下面的步驟,我們依然把主連復權為標準的參數放到指數合約看一下,如圖所示:??????
圖27:熱卷主連復權???
圖28:熱卷指數
綜上所述,我們可以看到黑色整個的一個狀況結論。我們一一列舉出來。
1、黑色板塊中誤差最小的是焦炭,指數和主連復權誤差不大。
2、黑色板塊中令人意外的是鐵礦石,用主連復權比指數反而收益更高,夏普與最大回撤等風險指標也并沒有過大的反向。
3、黑色板塊中誤差最大的是螺紋和熱卷,需要用主連復權來搞。
4、黑色板塊中猛硅屬于中規中矩,比螺紋和熱卷強,最起碼主連復權還算比較OK,只是曲線波動大一些。
本策略僅作學習交流使用,實盤交易盈虧投資者個人負責。
總結
以上是生活随笔為你收集整理的量化研究 | 策略在指数与主连复权的差异化分析(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 遇到oracle错误20001,请问OR
- 下一篇: Ubuntu 声卡解决办法合集