與Backtest (回測)有關的常問問題

這個分頁專注於回答與回測(Backtest)相關的常見問題。回測是MT4(MetaTrader 4)中一個重要的功能,它可以幫助您評估和優化交易策略。

在這個分頁中,您將了解如何執行回測、評估回測結果、解讀回測報告以及避免常見的回測陷阱。無論您是初學者還是有經驗的交易者,這裡都有您需要的信息和指導。

回測的時間長短取決於多個因素,包括回測的數據量、選擇的時間範圍、所使用的計算資源等。一般而言,回測可以是一個相對耗時的過程,特別是當使用大量的歷史數據進行詳細的分析時。

但如果你發現你的電腦配置跟別人差不多, 但回測的時間卻長很多, 可能是你的電腦/作業系統設定不佳

如你用的是筆記本電腦, 請先參閭以下文章:

如果是桌上型電腦,請參閱以下文章:

每一部電腦只能享用免費試用一次。

  • 你用另一個email去申請多一次試用也改不了這事實。
  • 就算你uninstall咗個軟件再安裝也改不了這事實。
  • 重裝Windows得唔得? 我未試過…. 但你估呢?  就算得, 值得去做嗎?

萬事皆有可能。

唔識crack?  我都唔識… 但可以上網找…但找都你敢用嗎? 花咁多時間去找值嗎(仲可能找唔到)? 如真係想找,我只會去問度娘…. 

乖乖比錢買License吧!!!

在MT4 Strategy Tester中的”Use tick data” checkbox不見了的最主要原因是MT4找不到 Tick Data Suite 的 service 服務程式。

一般這是因為:

  • Tick Data Service 死晒…. 
  • Tick Data Suite嘅License過期…
  • Tick Data Suite比你uninstall咗…

這時你可以從Windows的Start Menu 中啟動 Tick Data  Suite support assistant。

  • 在 License 分頁中你應要看到License 未過期, Last license autehntication應係一個好近嘅日期/時間。
  • 在 Maintenance 分頁中你應要看到 “The Tick Data Suite service is running”字句。  如未行, 就按”Start TDS Service”試吓。

出現「No tick data avilable for the selected symbol and source with the configured data range.」就是因為就針對要進行回測的symbol(例如貨幣對 audcad),相關日期的tick data不在存。

這很可能是因為

  • 你根本沒有下載過相應的symbol的tick data
  • 你過往曾下載過,但只是下載某個時段的的tick data (如2022-01-01至2024-03-31)。但現在你要回測的時段包括了2024年4月,或是由2022-01-01年之前開始。

解決的方法很簡單,只要啟動Tick Data Manager,然後把相應的數據下往便是了。

這很有可能是EA在啟動時發生問題,例如找不到授權檔或授權已過期。

這時,你可以去MT4 Strategy Test 中的”Journal” (日誌)那一分頁去查請相關信息。

首先,請確保你用緊正確嘅EA。唔好試把 EA A 的設置檔(set file)載入去 EA B度。

其次,留意:

  • 設置檔所放的路徑(即由根目錄開始的文件夾名)是有否中文字
  • 設置檔的名稱是否包含中文字

如是,請把中文字刪去。MT4因為係好舊嘅程式,當時在處理非英文字串上的編程技術還沒有標準化 (如你懂什麼是unicode應明白我講緊咩),故在處理中文字串上有可能會出現問題 (即MT4可能load到一個中文設置檔, 但又load唔到第二個)。

 

註: 在處理中文字串上有可能會出現問題亦代表只要你用的中文字是可以被處理就不會有問題。至於如何知道一個中文字是否被支援, 這涉及較深的電腦知識,這裡就不詳談了。不懂的就用全英文的名字吧。

Strategy Tester中的Symbol dropdown的選項是基建於MT4中的Market Watch。

你找不到想要BT的貨幣對,請先在查看Market Watch中有沒有那Symbol。當然,你也可以直接在Market Watch中右搫,再點選「Show All」來把所有的Symbol加進Market Watch內。

更新Market Watch後可能需要重啟MT4。

留意在visual mode進行時,有個input slider係可以調較速度的。

可以考慮以下嘅做法:

  • 把BT時期的結束日期推遲 (例如推遲一個月)再進行回測。
    • 這樣做是要確保你口中未平的單最終是能夠在有盈利的情況下平倉。因為BT結束時強平的單所做成的虧損利應不會用BT結果有很大的影響(假設你BT的時期夠長, 如兩年)。因這虧損而對BT做成重大影響可以意味著當時夾倉很嚴重。能否順利渡過也一個問題。
  • 當推遲結束日期後得到一個理想結果後,你也可以考慮打把結束日期推早,推早到你套強平的單未開前的日子再進行回測。

請確保以下幾點:

  • 你們用的是相同版本的EA
  • 你們進行BT的設定是一樣的, 當中包括(但不限於):
    • spread
    • BT用的period
    • 起始本金
    • BT的日期範圍
    • 你們使用了相同的Broker環境來進行回測

註: 每次BT結果都可能出現輕微的差別, 如Profit可能有幾美元的出入,這是正常的。

這是因為不同的Broker (CFD券商)所保留給客戶來進行回測做資料可能不同。例如數據不全, 可以顯示的BAR數不同, 出針 等等。在這大前題下,即使使用了Tick data,但基於MT4/MQL4自身的設計/限制,回測結果也會受到影響。

因此,我們需要使用相同、獨立的第三方環境去進行回測,以確保大家使用相同EA設定進行的回測結果一致。

其實情況同上面「為何使用不同Broker環境來進行回測會影響回測結果?」的答案差唔多。除此之外

  • 真倉broker的點差是浮動的,異常大點差可以令你走到單 (或走唔到單)。
  • 在EA設定中,也有設定是在點差大過設定值時不開單。
  • 另在BT結束時,BT會強制平倉… 這樣套單可能佰出現較大的虧蝕。但在行真倉時,那樣單只會為你帶來浮動盈虧(DD)。

Anyway,就算兩個同一個broker的真倉, 行同一settings, 也可能表現不同。形況同兩個人用同一個價位排隊買股票一樣, 可以一個成交到, 但另一個就成交唔到。故此,不要期望BT 到真倉的結果。

站在學術研究或辯論角度來說, 有人可i能會話BT係完無意義的。理據可能係因為你BT用的是歷史數據, 你行真倉是用實時數據。而歷史數據可能與實時數據一點關係也沒有。故兩者出來的結果不能100%保證有關聯。

但不能100%保證就是沒意義?? 這也未免太過極端。歷史數據來做回測是去了解EA在使用特定settings時的表現,例如DD、profit 有幾大等。這有助我們去預測EA的表現。

再簡單點: 阿Sir叫你去做咁咪去做囉… 總之照跟… 日後你就會明為何要做。