You are currently viewing 為何新電腦跑MT4 Backtesting比舊電腦更慢?

有使用 MT4 EA (Export Advisor) 嚟做自動程式交易嘅朋友都應該會成日喺MT4度做Backtesting。

為求更快去完成一次 backtesting,不少開始學習使用EA嘅新手都會買部新電部,諗住可以玩D完成一次Backtesting。機就買咗,Intel第13代i7, 16GB RAM, 配備Windows 11。但點知事實不似如期,用部新電腦做Backtesting反而慢過部舊機。

其實唔係部新電腦有問題,只係MT4未能配合新世代的CPU及作業系統。不過大家只需做少少設定, Backtesting還是可以飛咁快就做完……

 

新機行BT行得慢的原因

Intel從第 12 代引入咗異質架構設計,也就是俗稱的大小核。

  • 大核是效能核心 (Performance Core),簡稱P-Core。
    效能高但功耗率也高。
  • 小核是效率核心 (Efficient Core),簡稱E-Core。
    功耗率較低,但整體效能是較低。

當然,理想情形係Windows會把使用者關心、重要嘅工作會派比P-Core,而嗰D低級、無聊工作 (例如更新Taskbar中嘅時鐘) 就派比E-Core。但MT4作為一個十幾年前面世嘅應用程式,佢 (Terminal.exe)根本唔識得話比Windows知自己好重要。

解決方法 – 手動設定CPU親和性 (CPU Affinity)

要解決新機行Backtesting慢,其實我地只要手動設定用P-Core行MT4便是了。 在Windows上,這動作叫”設定親和性”,詳細步驟如下:

  1. 先啟動所有安裝了的MT4。
  2. 按Ctrl+Alt+Del以啟動 工作管理員 (Task Manager)。
  3. 點擊[詳細資料(Details)]
  4. 點擊[名稱 (Name)]  使程式按名稱排列
  5. 在清單中找出Terminal.exe (MT4程式的檔案名)
  6. 點選第一個Terminal.exe,然後right-click,再選[設定親和性 (set affinity]

    上面係Win10嘅截圖。 Win11嘅Task Manager其實都係大同小異,[Details]改咗喺左邊、以icon形式顯示(如下圖):
  7. 在處理器親和性對話框中勾選 [CPU 1] (非圖中的CPU 0),然後按 [確定]。
  8. 重覆步驟6 ,但點選第二個Terminal.exe。
  9. 重覆步驟7 ,但勾選 [CPU 2]。
  10. 重覆步驟6 ,但點選第三個Terminal.exe。
  11. 重覆步驟7 ,但勾選 [CPU 3]。
  12. 如此類推… 如果裝多過4個MT4, 最好查吓你粒CPU有幾多個P-Core… i5-13400 就有6個P-Core。

Done!!

留意: 

  • 假如你是使用舊型號的Intel CPU或AMD CPU,有興趣也可嘗試設定CPU親和性。有使用AMD CPU的朋友發現設定後回測的速度有明顯提升。
  • 利用工作管理員進行的CPU affinity設定,在MT4重敨後是需要重新再設定的。如想只設定一次便解決問題,就要利用第三方軟件了。詳情可參閱 再談MT4與CPU親和性

Happy Backtesting!!

返回 《自動程式交易 – 首頁

發佈留言