ソースコード
MQL5 配列が範囲外です: 最初の無効なインデックスを見つけてください
配列インデックスは、実際に存在する要素を参照する必要があります。コンパイルが成功しても、すべての実行時ループが有効なインデックスを使用していることは証明されません。すべてのループに一度にパッチを適用するのではなく、最初に報告された行から開始します。
境界を書き留めます
5 つの要素を持つ 1 次元配列の場合、有効な 0 から始まるインデックスは 0 ~ 4 です。インデックス 5 を含むループは行き過ぎます。 i+1 を読み取るときは、追加の要素のための余地を残してください。
受け取ったデータを確認する
多くの価格ローソクをリクエストしたが、受け取った数が少ない場合、リクエストされた数は安全なループ境界ではありません。コピーされた数、配列の長さ、失敗したインデックスをログに記録します。履歴の準備ができていない場合に EA が何をすべきかを決定します。
小さなケースを再現
最初のいくつかの価格ローソク足、空の結果、最小ルックバックを試してください。このようなケースでは、通期の別の実行よりも早く境界エラーが明らかになることがよくあります。修正を再度確認できるように、失敗した入力を保存してください。
修正範囲を狭くしてください
メッセージを抑制せず、架空の価格を続行してください。有用な修正は、有効な境界を確立するか、有効なデータを待機します。編集可能なソースにより、戦略全体を変更することなく、これらの小規模で集中的な改善が可能になります。
無料で編集可能な EA プロジェクトから始めましょう·MQLume ソース コードを探索する
トップに戻る