有使用 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上,這動作叫”設定親和性”,詳細步驟如下:
- 先啟動所有安裝了的MT4。
- 按Ctrl+Alt+Del以啟動 工作管理員 (Task Manager)。
- 點擊[詳細資料(Details)]
- 點擊[名稱 (Name)] 使程式按名稱排列
- 在清單中找出Terminal.exe (MT4程式的檔案名)
- 點選第一個Terminal.exe,然後right-click,再選[設定親和性 (set affinity]
上面係Win10嘅截圖。 Win11嘅Task Manager其實都係大同小異,[Details]改咗喺左邊、以icon形式顯示(如下圖): - 在處理器親和性對話框中勾選 [CPU 1] (非圖中的CPU 0),然後按 [確定]。
- 重覆步驟6 ,但點選第二個Terminal.exe。
- 重覆步驟7 ,但勾選 [CPU 2]。
- 重覆步驟6 ,但點選第三個Terminal.exe。
- 重覆步驟7 ,但勾選 [CPU 3]。
- 如此類推… 如果裝多過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!!
返回 《自動程式交易 – 首頁》