スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

array out of range エラーを再現する

array out of range エラーは、配列処理のエラーです。
配列の範囲外の要素にアクセスすると必ず発生します。

これは、下記コードをコンパイルしてEAを動かすと、すぐに再現できます。

//+------------------------------------------------------------------+
//| ARRAY_OUT_OF_RANGE.mq4 |
//| Copyright 2015, BLT. |
//| http://mt4ordersenderror.blog.fc2.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, BLT."
#property link "http://mt4ordersenderror.blog.fc2.com/"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
double prices[1] = { 123.456 };
Print( prices[1] );
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---

}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---

}
//+------------------------------------------------------------------+

エキスパートタブに下記のようなエラーが表示されたでしょうか?
2015.11.18 23:32:18.325 Expert ARRAY_OUT_OF_RANGE USDJPY,H1: removed
2015.11.18 23:32:18.325 ARRAY_OUT_OF_RANGE USDJPY,H1: uninit reason 8
2015.11.18 23:32:18.325 ARRAY_OUT_OF_RANGE USDJPY,H1: not initialized
2015.11.18 23:32:18.325 array out of range in 'ARRAY_OUT_OF_RANGE.mq4' (17,17)
2015.11.18 23:32:16.291 Expert ARRAY_OUT_OF_RANGE USDJPY,H1: loaded successfully

エラーの原因は、17行目の Print( prices[1] ); の配列の要素が存在しないからです。
配列の要素は 0 から始まるので、Print( prices[0] ); に修正するとエラーが発生しなくなります。

勘違いしやすいですね。


最近、自作のレンジトレードEA「ShinkuuHadouken」が調子を取り戻してきました。

FXTF✕ShinkuuHadoukenタイアップキャンペーン
ShinkuuHadouken

このEAも、ポジションを管理するために、配列処理をたくさん使用しています。

リアル口座で運用していますが array out of range エラーは発生していないです。
もし発生していたらご報告をお願いします。^^

MT4 EA開発・運用ブログ:関連記事ピックアップ

EAつくーる
自動売買システム作成ソフト「EAつくーる
MT4 EA開発ブログの人気記事「RSI」「ボリンジャーバンド
を使用したEAが、数値入力とクリックで簡単に作成できます。
mq4プログラムが出力されるため、MQL4言語を効率よく
習得したいEA開発初心者にもオススメのEA開発ツールです。
お試しで利用したい方は「EAつくーる【1ヶ月版】」をどうぞ。

MT4 EA開発・運用ブログ:カテゴリー

MT4 EA開発・運用ブログ:人気記事ランキング(直近1ヶ月)

MT4 EA開発・運用ブログ:最新記事一覧

もっと見る...
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。