初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 622

 
MT4でインジケーターを初期化する前に、テスターのバー 数を増やすにはどうしたらいいですか?インジケータは履歴上で計算されるはずです。テスターで正しいかどうか確認する必要があります。
 
もう一つ質問ですが、MT4で初期化時に履歴の整合性を確認するにはどうしたらいいでしょうか?初期化時に履歴が入れ替わっていて、事前計算に影響があるのでは...?
 
-Aleks-:
もう一つ質問ですが、MT4で初期化時に履歴の整合性を確認するにはどうしたらいいでしょうか?初期化の時点で履歴が入れ替わっていて、それが事前計算に影響しているのではと疑っているのですが...。
バーの数 rate_total を確認します。rates_total > prev_calculated+1 - 1本以上のバーをスワップしたため、履歴がスワップされている状態です。
 
Alexey Kozitsyn:
バーの数 rate_total を確認します。rates_total > prev_calculated+1 の場合 - 1本以上のバーを交換したため、履歴が交換されたことを意味します。
そして、1秒に1回頻度をチェックし、長い休止の後、初期化を継続するのですね?
 
-Aleks-:
また、チェックの頻度は1秒に1回で、長い休止の後、初期化を続けるのですね?

一般的に、最近SDで言われたことだが、指標ではタイマーはない方がいい。

指標の初回起動と完全再計算の条件として、if( prev_calculated <= 0 || rates_total > prev_calculated+1 ) という条件を追加すればよいのです。OnCalculate()の 中でやれば問題ないでしょう。

 
また、「長い間」とは何のことでしょうか?
 
Alexey Kozitsyn:

一般的には、最近SDで言われたように、インジケータではタイマはない方が良い。

指標の初回起動と完全再計算の条件として、if( prev_calculated <= 0 || rates_total > prev_calculated+1 ) という条件を追加すればよいのです。OnCalculate()の中でやれば問題ないでしょう。

Expert Advisorでindicator type classを正しく計算させたい。

もし、1つのチャートに10,000本のバーがあり、それがあるならば、新しいバーがあってもBarsは10000本以上返しません。では、履歴を読み込んだときに新しいバーがあるかどうかは、どうすればわかるのでしょうか。

 
また、DCに接続する前の端末ロード時にEAが初期化されるため、初期化時にチェックしてはいけないらしい...。
 
-Aleks-:

さて、私のEAで正しく計算されるために、インジケータタイプ クラスが必要です。

もし、1つのチャートに10000本のバーが表示できるのであれば、新しいバーが表示されても、Barsは10000本以上表示されないことになります。では、履歴を読み込むときに新しいバーがあるかどうかを知るにはどうすればよいのでしょうか。

なぜダメなのか?はい、そうなります。そして、Bars()とrates_totalが増加します。OnCalculate()で数値を確認します。

端末に設定したバー数は、テスターのバー数(100000本弱)には影響しない。

 
Alexey Kozitsyn:

なぜダメなのか?そうなります。Bars()とrates_totalの両方が増加します。OnCalculate()で数値を確認します。

端末に設定したバー数は、テスターのバー数(100000弱)に影響を与えなかった。

いいえ、私はテスターではなく、実際のチャート上で端末を実行するときにそれが必要です - それは歴史がバーの 最大 未満である場合にのみ動作します、または私は間違っていますか?
理由: