double arr[3];
arr[0] = 300.0;
arr[1] = 254.0;
arr[2] = Bid;
Alert("В массиве arr под индексом 0 значение ", arr[0]); // 300Alert("В массиве arr под индексом 1 значение ", arr[1]); // 254
Alert("В массиве arr под индексом 1 значение ", arr[2]); // Bid всё равно меняется на каждом тике, в чём же прикол этих массивов?, я с таким же успехом могу и так сделать
Alert("В массиве arr под индексом 1 значение ", Bid); я думал что массив запоминает цену с первого тика и держит эту инфо на последующих тиках
mql4の革新的な点は、配列のサイズを指定する必要があることです。
何が大変なんだ?
皆さん、ありがとうございました。
いったいなぜ、そんなことを?
ええ、私も一人で書いていてそう思いましたよ。そして、スクリプトのvoid OnStart()に挿入して、ログに配列外のexitを取得したところ、そのような結論に達しました。あなたの例では、int start() は#property strict のない古いバージョンのスクリプトです。
そして、#property strictを使用しない場合は、このように出力されます。
そして、それを超えないようにするのが一番です。
これです。
0 エラー(s), 0 警告(s) 1 1
例えば、あるEAを実行し、Bidを使った最初のティックで、EAはこの価格をある時点まで、多分1日、あるいは1時間、記憶しなければならないとします。
この価格を記憶するために使えるものは?
そして、あなたの例では int start()
なぜかわからないけど。(知りたい)理由ですが、634ビルドでも711ビルドでも、int start()で#property strictがない場合、サイズを指定せずに配列を宣言すると配列全体で0個の値になってしまいます...。
そして、それを超えないようにするのが一番です。
これです。
0 エラー(s), 0 警告(s) 1 1
なぜかわからないけど。(知りたい)のですが、634ビルドでも711ビルドでも、int start()で#property strictなしで、サイズを指定せずに配列を宣言すると、配列全体に0個の値が入るのですが...。
例えば、Expert Advisorを実行し、Bidを使用して最初のティックで、Expert Advisorはこの価格をある時点まで、おそらく1日、または1時間記憶する必要があるとします。
何を使って暗記すればいいのでしょうか?
トリックはありません。値を記憶し、しばらく変更しないようにしたい場合は、条件を指定します。
If(event)変数や配列の項目に何らかの値を代入する。
同時に、変数や配列はグローバル変数、つまりstaticとして宣言する必要があります。