Hnd=CopyBuffer(M_Handl[In][AO_D],0,0,2,Buf); // В теле функции OnTimer if(Hnd <= 0) {Print("Не удалось скопировать индикатор Ac_D. Error = ", _LastError); PlaySound("alert.wav"); return(-1);} Indik[In][AO_D][0] = Buf[1]; // На самом деле это бар № 1 Indik[In][AO_D][1] = Buf[0]; // А это бар № 2
まあ...
こんなんじゃダメだと思うんだけどな?
なぜ、そうしないのでしょうか?1分以内に1ティックもない場合、対応する1分足バーも形成されません。これはすでに何度も議論されてきたことです。
閉じた分の値段をとって、ログに書き込んでいます。
そして、この写真ですが、バーが形成されています。
なぜダメなのか?1分間に1ティックもない場合、対応する1分足バーも形成されません。これは何度も議論されてきたことです。
すべての価格が前のバーの終値と 等しいバーを生成する方が論理的ではないのでしょうか?
また、これについては、反応を伺いたい
すべての価格が前のバーの終値と 等しいバーを生成する方が論理的ではないのでしょうか?
また、このようなバーがスキップされるユーザーには、設定でチェックマークを付けてください見せないでほしい。
何しろ、指標が歪んでいるのですから。
ティックもバーもない。議論を始める前に、https://www.mql5.com/ru/forum と 私たちのオリジナルフォーラムhttps://www.mql5.com/ru/forum で同様の議論を探してみてください。
私たちはこの問題について何度も発言しており、私たちの意見が変わることはありません。ティックなし-バーなし
ティックもバーもない。議論を始める前に、https://www.mql4.com/ と 私たちのオリジナルフォーラムhttps://www.mql5.com/ru/forum で同様の議論を探してみてください。
私たちはこの問題について何度も発言しており、私たちの意見が変わることはありません。ティックもバーもない。
でも、そういうことではないんです。
あと、「ダニがいない、バーがない」というテーマで、別スレッドを立ち上げることも可能です。
多通貨テスターで現在のバーのインジケータの値が全く取得できませんでした(必要ないのですが、それでも)。以下はその構造です。
double Buf[2]; // в начале программы
Hnd=CopyBuffer(M_Handl[In][AO_D],0,0,2,Buf); // В теле функции OnTimer
if(Hnd <= 0) {Print("Не удалось скопировать индикатор Ac_D. Error = ", _LastError); PlaySound("alert.wav"); return(-1);}
Indik[In][AO_D][0] = Buf[1]; // На самом деле это бар № 1
Indik[In][AO_D][1] = Buf[0]; // А это бар № 2
そして、やはり0本目の棒は取れませんでした!?
あらかじめ定義された量のデータをコピーする必要が ある場合、不要なメモリの過剰割り当て を避けるために、静的に割り当てられたバッファで行う 方がよいでしょう。
受信側の配列がどのようなプロパティ(as_series=true や as_series=false )を持っていても、時間的に最も古い要素が配列に割り当てられた物理メモリの先頭に来るようにデータがコピー されます。
ドキュメントによると、Buf[1]は0番目になるはずですが、やはり1番目で、Buf[0]は2番目になっています。
EURUSD H1 で Multicurrency を実行し、EURUSD D1 で AO からデータを読み込んでいました。
つまり、1つの計測器で実行して、もう1つの計測器で現在のバーの価格を取ろうとするのですか?
2番目の楽器のティックが後に来るので、現在のバーとの間に緊張感があるように思えます。
ログはほとんど一致しないと言っていいのですが、一度だけ一致したことがあります(最初の行と最後の行)。
2010.07.19 15:50:02 コア1時間 EURUSD2010.07.01 01:34 mas1(EURUSD)-1.22251 mas2(GBPUSD)-1.49516
2010.07.19 15:50:02 Core 1 Time EURUSD2010.07.01 01:33 Time GBPUSD2010.07.01 01:32 mas1(EURUSD)-1.22264 mas2(GBPUSD)-1.49512のようになります。
2010.07.19 15:50:02 Core 1 Time EURUSD2010.07.01 01:32 Time GBPUSD2010.07.01 01:31 mas1(EURUSD)-1.22241 mas2(GBPUSD)-1.49515のようになります。
2010.07.19 15:50:02 Core 1 Time EURUSD2010.07.01 01:31 Time GBPUSD2010.07.01 01:30 mas1(EURUSD)-1.22248 mas2(GBPUSD)-1.49523となります。
2010.07.19 15:50:02 Core 1 Time EURUSD2010.07.01 01:30 Time GBPUSD2010.07.01 01:29 mas1(EURUSD)-1.22245 mas2(GBPUSD)-1.4951のようになります。
2010.07.19 15:50:02 Core 1 Time EURUSD2010.07.01 01:29 Time GBPUSD2010.07.01 01:28 mas1(EURUSD)-1.22257 mas2(GBPUSD)-1.4948のようになりました。
2010.07.19 15:50:02 Core 1 Time EURUSD2010.07.01 01:28 Time GBPUSD2010.07.01 01:28 mas1(EURUSD)-1.2224 mas2(GBPUSD)-1.49467のようになります。
キーワード OnTimer