自己開發(fā)的程序化交易策略如何驗證測試和使用歷史數(shù)據(jù)回測?
2018-9-11 / 已閱讀:7249 / 上海邑泊信息科技
程序化交易策略開發(fā)完畢后,僅僅完成了第一不。從事程序化交易最終目的還是想在期貨或股票市場獲得更多盈利,程序化交易策略只是幫助實現(xiàn)更多盈利的工具,如何在投入實盤之前對新開發(fā)出來的程序化交易策略可能實際運行的性能狀況有個大概了解呢?
我們無法預測并使用未來的行情數(shù)據(jù)來測試統(tǒng)計程序化交易策略。但是可以通過2種方法來對已經(jīng)開發(fā)完畢的程序化交易策略進行定量分析,并根據(jù)分析數(shù)據(jù)結果判斷策略優(yōu)劣。
一種方法是使用相同品種歷史上的數(shù)據(jù),將開發(fā)出來的程序化交易策略按照歷史行情的演化執(zhí)行并統(tǒng)計盈利虧損總額、盈利虧損次數(shù)、平均盈利金額、平均虧損金額、最大回撤比例等度量數(shù)據(jù)。
另一種方法是采用蒙特卡洛模擬的辦法,隨機產(chǎn)生不同組未來行情數(shù)據(jù),針對每一組模擬運行程序化交易策略,并統(tǒng)計上述同樣的統(tǒng)計數(shù)據(jù),最后合計平均得到總體度量數(shù)據(jù)。要想完全實現(xiàn)蒙特卡洛模擬,其實很復雜的,除了指數(shù)爆炸增長的計算量外,還有一個技術問題就是每個品種它有獨特內(nèi)在的行情演化規(guī)律,按照簡單平均數(shù)產(chǎn)生的蒙特卡洛行情無法考慮其特定品種內(nèi)在特性引起的非均勻概率分布情況。而要考慮這種特定品種內(nèi)在特性引起的非均勻概率分布情況,則增加了問題復雜性。純邏輯的研究方法是要找出這種規(guī)律并表達出來,這種工作量是巨大的,有點類似行業(yè)研究員研究具體的行業(yè),并給出邏輯嚴謹?shù)男袠I(yè)研究報告。另一種方法是使用人工智能神經(jīng)網(wǎng)絡,通過大量歷史數(shù)據(jù)訓練,將這種品種獨有的特性存儲到人工神經(jīng)網(wǎng)絡神經(jīng)鏈接權重矩陣里,但是無法用嚴謹?shù)倪壿嬚Z言表達這種特性,但后再以該人工智能神經(jīng)網(wǎng)絡作為參數(shù)輸入影響蒙特卡洛行情的輸入概率分布。
對于第一種方法來說,實現(xiàn)起來簡單,并且需要的硬件成本也很低,一般一臺普通電腦就可以了。而第二種方法實現(xiàn)起來復雜,后續(xù)運行可能也需要大量計算機服務器集群,可能還需要GPU對人工智能神經(jīng)網(wǎng)絡進行加速。
第一種方法由于使用了該特定品種的歷史行情數(shù)據(jù),里面已經(jīng)包括了該品種都有的一些內(nèi)在行情演化特性,用它來測試開發(fā)完畢的程序化交易策略更具代表性。但是第一種方法的一個弱點是:歷史的行情數(shù)據(jù)并不完全代表未來的行情,在歷史數(shù)據(jù)上測試獲得的好的收益率并不一定在未來行情上能獲得同樣的收益率,所以在進行歷史測試時,需要考慮更多統(tǒng)計數(shù)據(jù),比如最大回撤、盈利波動率或穩(wěn)定性,通過考慮這些因素來降低策略投入實盤后的風險來控制虧損。