取引所シンボル Si-12.17 MetaQuotes-Demo

ネットワークping < 0.1秒でラグが2秒に達した。おそらく、これは見積もりと取引のストリームが遡及的に混合されたためであろう。要するに悪い。
そしてなぜか真ん中がとても小さい。
これは2番目に出てきたものです。

そして、平均値はなぜか非常に小さい
実際には小さくはない~5ミリ秒だ。0pingに悩む人への置き土産だ。
一瞬の暴発です。
このような暴発を背景にすると、平均はもちろん目立たない。
この問題の経緯は、MT4 ECNで取引する際、自分のリミットがプライシングに影響し、スタックが見えてしまうという混乱があった。MT4ではティック履歴を見ることができないが、同じデータを持つMT5があるのは良いことだ。そのため、私は愚かにも、アクティブな取引中のすべてのスタックを持つ端末自体をビデオに数時間録画した。そのビデオとMT5+ZoomPrice、そしてMQL4スクリプトのリダクショ ンや約定の特異性を分析し始めた。
その結果、MT4がいくつかのナンセンスな価格を表示していることがわかりました。これらの価格は履歴(MT5+ZoomPriceとビデオのメガネ)には存在しないか、存在しても見逃されているか、履歴よりもはるかに長く続いているものがあります。最後に、MT4自体が遅くなっていることに気づきました。MT5の履歴では、すべてが完璧だった。しかし、疑念が忍び寄り、インジケーターがそれを確認した。
今、私はMT5の現在の価格の 関連性を完全に信頼できないことに気づきました。サードパーティのアプリケーション(ビデオに録画された年代物)は、MT4やどうやらMT5よりもはるかに正確にリアルタイムの価格を表示します。MQL経由でサードパーティーの杭から直接データを引き出すことができないので、確認するためにそれらを比較する方法を私はまだ知らない。しかし、得られた結果は、プラットフォームの遅延という本当に深刻な問題を見るのに十分だ。そして、このような状況を観察すると、高速に関するすべての声明は単に崩壊します。
そう、OrderSendAsyncは高速だが、それを送信する前に、現在の価格を方向付ける必要があり、それらは遅くなる。
確かにOrderSendAsyncは速いのですが、送信する前に現在の価格を方向付ける必要があり、速度が落ちてしまいます。
マーケット概要から不要なペアをすべて削除するのは理にかなっているかもしれませんが、何かが大きく変わるとは思えません。
あるブローカーがこれを勧めていたのを覚えています :)))
市場概要から不要なペアをすべて削除するのは理にかなっているのかもしれない。
私は取引ペアとチャートあたり5000バーのみを残しました。指標(標準またはiCustom)をベースにしたExpert Advisorは遅いと断言できる。従って、iCustomをやめてOOPでExpert Advisorに組み込むことをお勧めします。
そして実際、Expert Advisorのインジケーターは ボトルネックになると当初言われていましたが、それはExpert Advisorとは異なり、すべてのインジケーターが1つのスレッドで実行されるからです。Expert Advisorのラグについては、別途検討が必要です。ラグを取得する機能は説明文にあるので難しくはない。
セルフチェックのために、コードにそのような行がある(コメントなし):
Print(TickToString(Tick) + TOSTRING(Ping));受信した新鮮なティックとそのpingを出力します。このようなログの例を見てみよう。
2017.11.16 20:08:19.602 Ping (EURUSD,M1) time = 2017.11.16 20:07:58.215 bid = 1.17711 ask = 1.17714 last = 0.0 volume = 0 TICK_FLAG_ASK 2017.11.16 20:08:19.602 Ping (EURUSD,M1) Ping = 2.425000000000182 2017.11.16 20:08:23.142 Ping (EURUSD,M1) time = 2017.11.16 20:08:01.212 bid = 1.17712 ask = 1.17714 last = 0.0 volume = 0 TICK_FLAG_BID 2017.11.16 20:08:23.142 Ping (EURUSD,M1) Ping = 541.3899999999999 2017.11.16 20:08:23.603 Ping (EURUSD,M1) time = 2017.11.16 20:08:02.215 bid = 1.17711 ask = 1.17714 last = 0.0 volume = 0 TICK_FLAG_BID 2017.11.16 20:08:23.603 Ping (EURUSD,M1) Ping = 543.261
ティックを受信した端末の時刻欄は黄色で 表示されている(インジケーターではなく、端末自身が書き込んでいる)。そして赤が 新しいティックの時刻です。
隣り合う赤のレコード間の差は、隣り合う黄色のレコード間の差と比較して、~540ミリ秒異なることがわかります。これは、実際の価格が表示されているはずなのに、その価格が半 秒間存在していない、端末のタイムラグの実例です。
if (SymbolInfoTick(_Symbol, Tick, Ping))// && // (!IsIndicator || (Count++ > 1))).// インジケータにおけるSymbolInfoTickは、いくつかの最初のCalculate-eventの形で「ウォーミングアップ」を必要とします。
をコメントアウトすると、起動直後に次のような結果が得られます。
2017.11.17 12:00:55.879 Ping (EURUSD,M1) time = 2017.11.17 12:00:32.418 bid = 1.17925 ask = 1.17928 last = 0.0 volume = 0 TICK_FLAG_BID 2017.11.17 12:00:55.879 Ping (EURUSD,M1) Ping = 0.0 2017.11.17 12:00:56.399 Ping (EURUSD,M1) time = 2017.11.17 12:00:35.720 bid = 1.17923 ask = 1.17925 last = 0.0 volume = 0 TICK_FLAG_BID TICK_FLAG_ASK 2017.11.17 12:00:56.399 Ping (EURUSD,M1) Ping = 2781.549
ほぼ3秒の「遅れ」です!理由は簡単で、インジケータを起動すると、最初の OnCalculate 呼び出しが強制的に実行され、古いティックが使用されるからです。これはチャート上で「更新」を押したのと同じです。
インジケーターのこの動作に間違いはなく、最初のOnCalculate コールが何であるかを認識する必要があるだけです。Expert AdvisorではOnTickの強制呼び出しはないので、そこですべてが曖昧になることはありません。
ブローカー自身による見積もりの遅延、悪名高い「フィルター」を排除すべきではないと思われる。
しかし、開発者のコメントやサーバー部分を所有しない限り、私たちはそれを知ることはできません。
一方、同じシンボルの異なるターミナルウィンドウに2つのEAを入れて、RAMを通して値を比較したところ、乖離もまともで、強い変動では数スプレッド以上ありました。このような現象をどう解釈していいのかわかりません。
それは、我々はブローカー自体、それらの非常に悪名高い "フィルタ "による引用の遅延を除外すべきではないと思われ、履歴はすでにフィルタリングされていない与えられている
15分遅れのMetaQuotes-Demo上の取引所シンボルは、間違いなくフィルタを持っていません。
一方、私は2つのEAを1つのシンボルの異なるターミナルウィンドウに入れ、RAMを介して値を比較したところ、偏差もまともで、強い変動で数スプレッド以上でした。このような現象をどのように解釈すればよいのかわかりません。
いくつかのブローカーが遅れて引用符を持っているというのは本当ですか?
fxsaber, 2017.11.17 11:20 AM.
MT4/5では、価格の関連性の概念に注意する必要があります。
同じ口座に接続された同じマシンの2つの端末は、かなり大きな範囲で同期しません。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索

Ping:
ターミナル内のクオーツの遅れを示す実時間指標です。
作者: fxsaber