在MetaTrader中進行可靠的回測

申請試用,版本比較,試用心得
回覆文章
頭像
周宏恩SteveChou
文章: 188
註冊時間: 2020年 8月 27日, 19:54

2021年 5月 2日, 07:50

在MetaTrader中進行可靠的回測一般回測的可靠性
首先,我們必須意識到,回測意味著對歷史數據進行測試。歷史價格的走勢將來永遠不會完全重複,因此,即使您使用的是真實的tick數據,也並不意味著您的策略將來的表現將與過去相同。
其次,我們應該認識到回測不可能是100%準確的。充其量,回測只能夠非常接近實際交易。諸如價差擴大,重新報價,滑點,時間延遲,網絡斷開,VPS故障等之類的因素會影響真實交易狀況。

我們策略的最重要屬性應該是它的穩健性。
我們必須確保我們不僅將策略與現有數據進行曲線擬合,以使其在回溯測試中發揮出色作用;即使數據,參數發生變化,錯過很少交易等情況,它仍然保持盈利。
StrategyQuant提供了許多工具(交叉檢查)來測試策略的穩健性。您可以使用蒙特卡羅測試在不同的市場上通過參數變化或歷史數據的隨機變化來測試。

在SQ和MT4 / 5之間進行可靠的回測
從這個意義上說,可靠的回測意味著該策略在StrategyQuant和MetaTrader中將具有相同或非常相似的回測結果。
如果您的策略在SQ和MT中獲得完全不同的結果,則說明您的設置存在問題,您必須先解決它,然後再繼續進行。
SQ中的回測引擎是為了匹配MetaTrader交易引擎而設計的,因此,如果您看到差異,則很可能是兩個程序之間在不同的數據或配置中存在差異。
在下面,我們將列出您應注意的幾點。

1.確保已導入所有自定義指標
這是指標安裝的步驟:https://strategyquant.com/doc/strategyq ... stallation
SQ使用一些自定義指標,您必須將它們導入到MetaTrader才能運行。

2.從您的MetaTrader導入數據,或確保下載的Dukascopy數據與您的經紀商相似
SQ可以方便地下載由Dukascopy免費提供的高質量時鐘和M1數據。
數據本身是可靠的,但是請確保您使用與經紀商相同的"時區",尤其是如果您計劃在日末/星期五使用“出場”之類的功能時,尤其如此。
驗證設置是否正確的最簡單方法是在SQ和MT中使用相同的數據,這意味著從MT導出數據並將其導入SQ。然後檢查策略回測在此數據上是否匹配–應該匹配。如果不是,請檢查第3點。
另外,還要考慮到您的經紀商所擁有的數據與Dukascopy稍有不同,並確保您的策略穩健並可以承受。在SQ中測試策略,然後在MetaTrader中對不同數據進行測試是另一種形式的穩健性測試。
只要確保數據之間存在較大差異,這些差異不是由您的配置引起的,而是由實際策略故障引起的。

3.確保在導入的數據中使用正確的引擎和正確的時間框架類型
引擎的選擇很明顯–仔細檢查您是否確實在SQ中使用MetaTrader 4或5引擎,因為它提供了多種引擎。
導入數據表單文件時,請確保使用“時間戳記是條形時間的開始”條形數據類型。這是MetaTrader使用的數據類型,它會影響較高時間範圍的計算方式。
圖檔 

4.正確配置您的MetaTrader StrategyTester
確保您使用相同的點差設置,相同的日期範圍等。重點是在SQ和MT之間具有相同的配置。
您還應該考慮斷開MetaTrader與網絡的連接,因為否則(默認情況下)它將在回溯測試中使用當前實時點差,這意味著您的回溯測試每次運行都可能會有所不同。
如何斷開MetaTrader4的連接
首先,MetaTrader必須在線並且至少連接一段時間,以便加載實際點差。然後,您可以通過將proxy設置為某個虛擬值來斷開連接。
轉到“工具”→“選項”,“服務器”選項卡,然後選中“啟用代理服務器”框。


圖檔

然後單擊“代理...”按鈕以設置代理。

圖檔

將localhost作為服務器,並在登錄名和密碼中輸入一些虛擬文本。單擊“確定”關閉對話框,然後再次單擊“確定”按鈕關閉“選項”對話框,這將保存您的設置。
現在,您必須再次重新啟動MetaTrader,並且下次啟動它時,您將與代理斷開連接。


圖檔

您應該在MetaTrader的右下角看到“無連接狀態”。
從現在開始,所有測試將以相同的價差運行,並且每次運行測試的結果都將相同。

5.遇到問題時,重新啟動SQ並清除臨時文件
SQ正在將回測數據緩存在內存和磁盤上的文件中,有時可能會發生以下情況:緩存中的數據版本較舊(錯誤),並且在導入新數據或修改內容時未更新。
如果您在回測中遇到不同,請先嘗試退出SQ,刪除/ internal / testfiles文件夾中的所有文件,然後重新啟動SQ。

 
 
 
回覆文章