#include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280voidOnTick( void )
{
staticMqlTick PrevTick;
staticint Amount = 0;
MqlTick Ticks[];
if (Amount > 0)
{
Amount = CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, PrevTick.time_msc);
int i;
for (i = 0; i < Amount; i++)
if (_R(Ticks[i]) == PrevTick) // https://www.mql5.com/ru/code/16280break;
if (i == Amount)
Print("В истории (length = " + (string)Amount + ") нет тика, что был на предыдущем Event.");
}
else
Amount = CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, TimeCurrent() * 1000);
if (Amount > 0)
PrevTick = Ticks[Amount - 1];
}
結果
2016.09.1511:04:02.810 Test2 (RTS-9.16,M1) В истории (length = 2) нет тика, что был на предыдущем Event.
2016.09.1511:03:59.312 Test2 (RTS-9.16,M1) В истории (length = 13) нет тика, что был на предыдущем Event.
2016.09.1511:03:59.290 Test2 (RTS-9.16,M1) В истории (length = 1) нет тика, что был на предыдущем Event.
例えば
若干の手直し
結果
どちらの価格もゼロでない値からゼロに変化することが判明した。そして、ゼロの次は非ゼロに戻る。
インジケータは、CopyTicksが最後のティックを与えていない可能性を示しています。
さらに興味深いことに
結果コピーティックは、イベントティックに遅れをとることも、先行することもできます。Event-tickはフラグが0であることが多い。
ZZYMqlTickの フラグをMqlTickの ヘルプにあるフラグに修正。
他の人がCopyTicksをどのように使っているかは、私にはわかりません。残念ながら信用はない。非常に生々しい。
電子ブック
結果
履歴にあったティックは、次のTick-eventではすでに存在しないのです
開発者の皆様、CopyTicksを動作可能な状態にしてください。簡単なテストも失敗する。
各 OnTick で新しい履歴ティックを配列に追加する必要があります。どなたか実装された方はいらっしゃいますか?
苦労してますね〜。CopyTicksの曲率を回避することができないのですが、どうしたらいいでしょうか?
現時点では、CopyTicksは多少伸びますが、入力パラメータが== 0の場合はリアルタイムで動作します。
以下はストレッチの1つです。極端なティックを受信し、最も新しいティックが前のものより短い時間を持っていることを見つけることができます。
このインジケーターのコードを確認する
https://www.mql5.com/ru/forum/94399/page6#comment_2776784
極端な刻みを取り、直近の刻みが前の刻みよりも短い時間であることを見出す。
このスレッドの報告について、サービスデスクに書き込む 必要がありますか、それとも開発者が自分で監視しているのでしょうか?