設定與故障排查
讀懂 EA 參數:簡短的 Input 名稱背後,程式究竟會做什麼?
一個 EA 參數可能只叫 Risk、Step 或 StartHour。輸入框裡的名字很短,真正的功能卻可能需要幾句話才能說清。MT5 接受了一個數值,不代表程式會按你想像的方式運作。理解參數,就是弄清它會改變什麼、何時生效,以及它並不負責什麼。
參數名是路標,不是完整的功能說明
MQL5 允許輸入框顯示的名稱與程式碼識別名稱不同。易讀的標籤很有幫助,但單靠名稱和預設值,無法判斷完整含義。修改前,先核對程式版本、參數名稱和對應文件。MQL5 輸入變數文件說明了顯示名稱與識別名稱的關係。
先讀 README.txt 中的安裝和運作注意事項,再在 PARAMETERS.pdf 中查找對應參數。產品頁的參數列表適合快速定位,隨附文件則補充上下文。EX5 版可以調整程式公開的輸入項;擁有 MQ5 原始碼時,還可以追蹤參數的實際用途,但修改邏輯後需要重新編譯和測試。
改一個數值之前,先回答六個問題
- 用途:它改變的是進場訊號、下單手數、出場規則,還是顯示和日誌?
- 單位:數值表示手數、點、價格、秒、K 線根數,還是百分比?若是百分比,基數是什麼?
- 取值與邊界:哪些值有效,0 代表什麼?不要預設 0 就是關閉。
- 連動條件:是否要先啟用某個模式或開關?自動倉位模式下,固定手數參數可能不參與計算。
- 範圍與時機:影響新進場還是已有持倉、本商品還是全帳戶?每個 tick 檢查、新 K 線檢查,還是只在初始化時讀取?
- 驗證依據:出現什麼可觀察的變化,才算按預期生效?測試前先寫下來。
這些常見名稱,都需要繼續往下讀
下面是說明閱讀方法的假設例子,不代表某款產品一定採用這種設計。
- Risk:可能是根據餘額計算手數的倍率,也可能結合停損距離計算倉位。僅憑數值為 1,不能認定最大虧損被限制為 1%。
- StopLoss/Step:100 points、100 pips 和價格距離 100 並不相同。要確認交易商品的點值和 EA 的換算方式,不要直接把外匯經驗套用到黃金或 BTC。
- MaxSpread:篩選器可能只阻止新進場,而繼續管理已有持倉。「沒有新交易」不等於「EA 停止運作」。
- StartHour/EndHour:確認使用哪個時鐘,以及跨午夜區間如何處理。經紀商伺服器時間、UTC 和電腦本地時間不能混用。
- Trailing/Mode:一個距離可能要同時滿足獲利門檻和啟用開關才會生效。修改未啟用的參數後看不到變化,並不能證明程式出錯。
把一個參數寫成能驗證的一句話
可以按這份記錄表整理:版本 → 參數名 → 單位 → 生效模式 → 影響的訂單 → 預期現象 → 還原值。文件沒有說清的地方寫「待確認」,不要靠猜測補齊。
例如:「在此版本中,當點差超過以 points 表示的門檻時,不應再建立新的進場訂單;已有持倉的出場仍按各自規則處理。」只有產品文件確實這樣定義時,才能使用這項預期。測試時觀察門檻附近的日誌和訂單記錄,而不只是最後的收益。
一套實際可用的學習和驗證順序
- 保留未修改的交付檔案。儲存一份基準 SET,記錄 EA 版本、交易商品、週期和相關帳戶條件。
- 每次選擇一個問題,修改一個參數,或必須連動的最小一組參數。記下修改前後的數值。
- 將 SET 載入正確版本,重新核對目前生效值。單次回測看 Value;Start、Step、Stop 屬於最佳化範圍,不是一般運作時自動輪換的設定。
- 使用相同歷史、成本和測試條件進行對照。檢查與問題相關的進場、手數、出場和日誌,而不只比較最終利潤。
- 如果測試期間從未觸發目標條件,結論就是尚未驗證。換一個能涵蓋該條件的區間或可控測試,不要把沒用到的開關標成「有效」。
- 把觀察結果與 SET 一起儲存。在模擬帳戶上試用已經理解的設定,並保留還原基準的辦法。
MT5 測試器文件區分了單次測試與最佳化。接下來可繼續閱讀儲存和核對 SET 檔案,以及可重現的 MT5 回測流程。
看完仍不確定時,怎樣提問更有效
向客服提供產品版本、完整參數名、目前值、相關模式、預期行為和一小段日誌,不要提供密碼。有原始碼時,可以追蹤參數在哪裡被讀取、進入哪些分支。AI 的解釋可以幫助你整理問題,但不能代替對正在執行版本的核驗。
不要在不理解單位、連動條件和執行環境時,直接載入別人所謂的「最佳參數」。SET 是一份設定,不是表現保證。詳細文件幫助你理解設定;測試說明它在你實際涵蓋的條件下發生了什麼。













