MT5とスピードの関係 - ページ 29

 
Andrey Khatimlianskii:

コミュニケーションの断絶を確認する

どうしたらいいのかわからない。

 
fxsaber:

どうすればいいのかわからない。

なぜ、それらが起こるとOnTradeが迷子になると思うのですか?ドキュメントから?

 
Andrey Khatimlianskii:

なぜ、それらが起こるとOnTradeが迷子になると思うのですか?ドキュメントから?

Reloginが履歴キャッシュをリセットし、それがOnTradeメカニズムを通じてドーピングされる(と推測される)からです。

 
fxsaber:

やり方がよくわからない。

できればMT5 intertikiの時間から抜け出さずに。また、社内の力を借りないDCでの発注に関わるトレーディング業務 では、何も思いつきません。

 
Valeriy Yastremskiy:

MT5のインタータイトルタイムから、できれば抜け出さないこと。また、社内の力を借りないDCでの発注に関わるトレーディング業務 では、何も思いつきません。

理解できない。

 
fxsaber:

理解できない。

そう、何かが間違っているのだ。インターティックタイムは、通信の途絶によるティックの欠落にのみ対応します。また、注文や取引、ポジションの状態に関する問い合わせや応答の正しさについては、通信障害による応答の見落としや変更、そのための遅延があった場合、安価な解決策はないように思います。次のチックに再クエリすることは、常に可能とは限りません。

私の解決策は、ポジションの オープン、変更、一部クローズ、完全クローズの 注文に関して、取引/ポジションのステータスを追跡する内部機能です。結果を追跡するためのリクエストは、注文自体に設定することも可能です。そして、現在のティックで結果を取得し、次のティックでは取得しないようにします。

 
fxsaber:

トレード中にこんなことにならないように、どうしたらいいか教えてください。

2020.09.15 22:17:04.633 Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 13 ms.
2020.09.15 22:17:04.638 Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 18 ms.
2020.09.15 22:17:04.640 Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 20 ms.

ログの記録時間から判断すると、すべてが7msで起こったことになります。

建設的な議論をしたいのであれば、完全なテスト条件(サーバー、口座タイプ、選択されたシンボルの数、EAの数など)を教えてください。


SymbolInfoTick 実行時測定コード。

void OnTick()
  {
   MqlTick Tick;
//---
   ulong start,end,max_time=0,avr_time=0;
   int   count=1000;
   for(int i=0; i<count; i++)
     {
      start=GetMicrosecondCount();
      SymbolInfoTick(_Symbol, Tick);
      end=GetMicrosecondCount()-start;
      //---
      if(end>max_time)
         max_time=end;
      avr_time+=end;
     }
   Print("SymbolInfoTick max time: ",DoubleToString(max_time/1000.0,3)," ms; avr time: ",DoubleToString(avr_time/1000.0/count,3)," ms; ",count," iterations");
  }

MetaQuotes-Demoサーバー上(20シンボル選択、Netting、4オープンポジション)。

2020.09.16 12:34:22.429 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.017 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:34:27.148 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.022 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:34:27.456 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.002 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:34:27.751 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.021 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:34:28.145 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.003 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:34:28.652 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.002 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:34:30.051 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.020 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:34:30.259 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.019 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:34:30.861 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.019 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:34:31.159 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.020 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:34:32.376 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.002 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:34:32.658 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.017 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:34:34.867 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.017 ms; avr time: 0.000 ms; 1000 iterations

131シンボルを選択、10ポジションを空ける。

2020.09.16 12:44:50.554 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.003 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:44:52.337 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.019 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:44:54.960 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.019 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:44:55.587 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.020 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:44:55.863 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.016 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:44:56.187 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.002 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:44:56.958 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.018 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:44:59.989 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.003 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:45:00.298 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.021 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:45:07.609 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.024 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:45:07.891 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.017 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:45:08.790 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.019 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:45:09.617 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.019 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:45:09.933 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.002 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:45:11.841 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.002 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:45:13.416 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.022 ms; avr time: 0.000 ms; 1000 iterations
2020.09.16 12:45:13.709 SymbolInfoTick (EURUSD,H1)      SymbolInfoTick max time: 0.017 ms; avr time: 0.000 ms; 1000 iterations
Windows 10 build 18363, Intel Xeon  E5-2630 v4 @ 2.20 GHz, 52 / 63 Gb memory
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
Anton:

ログエントリーの時間から判断すると、すべて7msで起こったことになります。

3種類のEAですね。

もし建設的な議論をしたいのであれば、すべてのテスト条件(サーバー、口座タイプ、選択されたシンボルの数、EAの数など)を完全に与えてください。

リアル口座、RannForex-Server、16シンボル、それぞれでM1チャートを開き(最大5000バー)、それぞれでEAを実行し、自分のシンボルにのみアクセスします。

一度に約50のポジションと同じ数の注文が可能です。インジケータはなく、CopyTicksRange(新鮮なティック)とSymbolInfoTickのみで、価格を取得しています。バーへの言及はありません。

 
fxsaber:

以上、3種類のEAが配られました。

リアル口座、RannForex-Server、16シンボル、それぞれでM1チャートを開き(最大5000バー)、それぞれで自分のシンボルにのみアクセスするEAが実行されています。

一度に約50のポジションと同じ数の注文がある場合もあります。

私の理解が正しければ、そこにはEAがあるのではなく、各シンボルにストレステスターが あるのです。これで状況が一変します。そして、初期条件の隠蔽を示す。

つまり、8(4+HT)プロセッサ上の16スレッド(+Nワーカー端末スレッド並列)が、ノンストップで遅延なく、1つの同期したシンボルデータベース・オブジェクトにブレークする。常にティック書き込みがあるため、Read/Writeロックが混在している。

通常、このようなプロファイルでは、プロセッサの急勾配とスレッドの使い方によりますが、各スレッドは60%から80%の時間を待ち時間として費やすことができます。

そして、これはタスクの種類に関係なくです。

 
Renat Fatkhullin:

私の理解が正しければ、そこにはEAがあるわけではなく、各シンボルにストレステスターが あるのです。

間違った理解各EAは純粋に取引を行っており(テスターでは実際のティックで遅くなることはありません)、他のEAに依存することはありません。すべての取引ロジックはOnTickのみで実行され、取引注文のスパム、再帰、グローバル化、リソースは不要です。

OnTrade*、OnBookは使用しません。特定のキーが押された場合のセカンドタイマーとOnChartEvent


スナップショットの適切な実装(あなたや私が)により、通常の環境関数の呼び出し回数が大幅に減ることは間違いないでしょう。それに伴い、ラグも大幅に削減されます。

まさか、スナップショットの仕掛けになるとは。MT5-advisorの標準実装は残念ながらお手上げなので、質問を勉強中です。