ATFX科普:策略回測——過去表現並不保證未來結果

俗話說:“是騾子是馬,拉出來溜溜”。自己的策略搭建完成後,就需要在歷史資料上進行測試,來證明其有效性。在沒有計算機之前,這項工作非常繁瑣,需要交易者自己蒐集價格資料、自主繪圖、獨立測試。計算機出來之後,策略回測的工作被大大簡化。只要你的策略足夠清晰,就可以花費有限的資金,讓懂程式設計的第三方將你的策略程式化。外匯市場中,將程式化的策略叫做

EA

策略測試有四個關鍵環節:資料來源、時段選擇、回測報告、最佳化。

ATFX科普:策略回測——過去表現並不保證未來結果

1、資料來源

日線級別的資料來源最容易獲得,MT4上就可以下載到足夠數量的資料。日線資料能夠提供當天行情走勢的最高、最低、開盤、收盤價格,其餘資訊無法提供。如果EA的交易週期在周線及以上,用日線資料進行測試沒有太大問題。如果EA的交易週期在日線、小時、分鐘級別,日線資料來源會導致策略測試失真嚴重。比如雙均線交易系統,某一天開盤沒多久,就實現了

黃金

交叉。按照EA設計思路來說,應當在交叉後即刻進場。但日線資料測試只會在當天K線收盤後進場,因為它沒有一天之內的行情發展變化過程。H4級別的資料來源要比日線級別資料來源更加精確,能夠粗略描述當天行情的發展過程。同樣的陰線,先漲後跌和先跌後漲的意義是完全不同的。H4能夠識別這種不同。如果交易者的EA執行在H4級別及以下,則需要更加精確的資料來源。H1、M30、M5,其資料精密程度不斷提高,對EA測試的準確性也不斷改善。但是,越是低週期的資料來源,獲取難度越大。週期最低的資料為ticks資料,也就是價格每波動一次所記錄的資料,改資料在國內被叫做“分筆成交”。想要獲得長週期的ticks資料,比如一年、五年、十年的資料,就需要為此支付一部分費用,從第三方處購買。MT4雖然自帶策略回測功能,但只能測試較低資料量的EA。如果你想要測試五年以上的ticks資料,就需要使用功能更加強大的MATLAB軟體。當然,MATLAB的EA程式碼和MT4的程式碼並不相同,需要專業人士進行轉換。

2、時段選擇

測試的時段並不是越長越好,因為大部分策略都無法在十年以上的測試時段中穩定盈利,甚至五年的時間就可以讓很多策略原形畢露。也不要進行多品種測試,原因是相同的,大部分策略經不起這樣的考驗。但是,就如標題中所說——過去表現並不保證未來結果。過去虧損的策略,可能在未來就是盈利的;過去盈利的策略,可能在未來就是虧損的。歸根結底,市場是發展變化的,走勢的基本規律也並非一成不變,它具有明顯的階段性特徵。這個月以流暢的多頭走勢為主,下個月就是一步三回頭的上漲,再下個月就是深幅度的回撥。一種策略只能適應一種走勢型別,當適合它的走勢型別出現時,就能實現較高盈利;反之,則虧損連連。將K線走勢劃分為三類:好、中、壞。好的走勢為最適合EA的走勢,其它同理。將好的走勢找到五種,分別對EA進行ticks級別的測試;找到五種中等走勢,對EA進行測試;找到五種壞的走勢,對EA進行測試。之所以找五種,是因為即便是統一型別的走勢,也存在細節上的千差萬別,策略的表現也會不盡相同。好的走勢決定了策略的盈利上限;壞的走勢決定了策略的虧損上限。當你想要讓策略的盈利上限提高時,必然會導致策略的虧損上限同時提高。這就是投資圈常說的:風險與收益對等。

3、回測報告

回測報告並沒有那麼重要,因為它只代表過去,不代表未來。好的走勢型別頻繁出現時,回測報告當中的勝率、盈虧比都會變得非常高,似乎這款EA是戰無不勝的;壞的走勢型別頻繁出現時,回測報告的回撤百分比會非常大,看起來這款EA除了能導致鉅額虧損外,沒有絲毫價值。就像經典的俄羅斯方塊遊戲,我們無法預測下一個方塊會是什麼樣子的,我們能做的就是看到最新的方塊後,做出合理的反應。資金曲線是非常直觀的回測指標,透過它可以輕鬆判斷交易策略在測試時段內的所有盈虧情況。人們普遍把45度傾斜向上的資金曲線看做穩定盈利的標誌,這大錯特錯。除了馬丁格爾策略之外,沒有任何EA能夠達到如此理想化的資金曲線。正常的趨勢應當是臺階型,在長時間的橫向震盪或小幅下降後,迎來一次大額的盈利,將賬戶資金拉高到一個新的臺階。總的來說,回測報告的好壞,取決於你選用的歷史資料時段,選擇適合EA的時段,回測報告很靚麗,反之很糟糕。

4、最佳化

透過測試的EA,可以進入實盤階段。沒有透過測試的EA,就需要進一步的最佳化。最佳化是將原來的EA引數進行調整,以使其在歷史測試中表現更加優異。任何技術指標都有自己的引數,比如均線,存在五日均線、十日均線、二十日均線等等引數。不同的引數會形成不同的買賣訊號,不同的買賣訊號適應不同的走勢型別,並會產生不同的回測報告。比較智慧的回測軟體可以將引數從0~無窮大進行逐個測試,然後篩選出盈利最大的引數。這聽起來不錯,我們可以輕鬆獲得最優引數。實際上,透過窮舉法選出的引數,只會在歷史資料中表現優異,放到實盤交易中,就會虧損連連。就像標題中提到的,過去表現並不保證未來結果。

最佳化是好的,過度最佳化是錯的。我們不能未來測試時段上的某種價格走勢,而犧牲掉EA的普適性。正確的做法是,進行窮舉測試之後,選擇收益表現中等偏上的引數作為自己的實盤引數。當然,如果你有自己已經習慣引數,可以不進行最佳化,直接使用這些引數進行實盤交易。畢竟,任何引數都有其適應的走勢型別,說不定未來的行情就適合你習慣的那些引數。

財報視窗期哪裡將成為新風口?大資料探勘投資“預期差”,關注佈局機會,立即開戶> >

TAG: EA測試回測策略資料來源