原始碼與編譯
MQL5 陣列超出範圍:找到第一個無效索引
陣列索引必須引用實際存在的元素。編譯成功並不能證明每個執行時迴圈都使用有效的索引。從第一個報告的行開始,而不是立即修補所有迴圈。
寫下界限
對於具有五個元素的一維陣列,有效的從零開始的索引是零到四。如果迴圈訪問索引 5,就會越界。讀取 i+1 時,為該額外元素留出空間。
檢查您收到的資料
如果您請求許多K線但收到的數量較少,則請求的計數不是安全迴圈界限。記錄複製的計數、陣列長度和失敗索引。決定當歷史記錄尚未準備好時 EA 應該做什麼。
重現一個小案例
嘗試前幾根K線、空結果和最小回顧。這些案例通常比另一次全年執行更快地揭示邊界錯誤。保留失敗的輸入,以便再次檢查更正情況。
保持修復範圍窄
不要壓制訊息並繼續使用虛構價格。有用的修復建立有效邊界或等待有效資料。可編輯的原始碼使這些小的、有針對性的改進成為可能,而無需改變整個策略。
返回頂部












