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

 
そうか、わかったよ、ありがとう、いい加減な質問だったね。何かが引っかかった。
 
fxsaber:
b2579.

このテストを実行した際のCPU負荷はどのくらいですか?

 
Anton:

このテストを実行した際のCPU負荷はどのくらいですか?

0-2%。まだ実行中の他のタスクを考慮した場合。再現性がない?

 
fxsaber:

0-2%。まだ実行中の他のタスクを考慮した場合。プレイしていない?

すべてのアプリケーションを終了し、3つのチャートを持つTerminalのみを残す。ピークが発生しているのを見た。

最大で20%でした。

 
fxsaber:

すべてのアプリケーションを終了し、3つのチャートがあるターミナルだけを残す。ピークがあるのを確認しました。

20%という高さでした。

私のラグはCPUパワー不足(i5-4670)のせいのような気がしています。中国から12コアのXeon(e5-2678v3)を注文したので、2週間後にサーバーを再構築して平均レイテンシを比較し、結果を報告するつもりです。

 
Dmi3:

私のラグはCPUパワー不足(i5-4670)のせいのような気がしています。中国から12コアのXeon(e5-2678v3)を注文し、2週間ほどで到着し、サーバーを再構築し、平均実行遅延を比較できるようにし、その結果を書きます。

遅延は、MT5側のCPU負荷が高すぎることが原因です。ここでマルチコアが役に立つかどうかはわかりません。その結果を見るのも面白いでしょう。

 
fxsaber:

遅延は、MT5側のCPU負荷が高すぎることが原因です。マルチコアがここで役に立つかどうかはわからない。その結果を見るのも面白いでしょう。

そして、よくわからないけど、一番簡単なのはこれ。そして、原則的にはそろそろアップグレードの時期だったのです。

 
Dmi3:

私のラグはCPUパワー不足(i5-4670)のせいのような気がしています。12コアのXeon(e5-2678v3)を中国から取り寄せ、数週間後にサーバを再構築し、平均実行遅延を比較し、結果を書くつもりです。

どちらもHaswellですが、Xeonは動作周波数がかなり低いので、ランタイムやシングルテストでは性能劣化があり、マルチスレッドでの最適化だけが有利になります。最新機種のi3は、動作がかなり速くなるはずです

キャッシュレベルの速度への影響や、Zen2や最新のIntelの速度については、開発者に聞いてみてください。


つける

私が持っているRyzen 3700xは、Intelでテストをすることができます。

例えば、次のMQL5Scriptsのようなスクリプトを使用します。

タイマーで何度もループさせる

 

ブレーキを再現するには、複数のONEキャラクターチャートでスクリプトを実行する必要があります - OnTickが同時に呼び出されるようにします。そして、ティックごとにアラートがPINGされます。

CPU負荷のグラフでは、terminal64.exeが8つの論理コアのうち最大30%に負荷をかけていることがわかります。スクリプトを実行したEURUSDのチャートは4つだけです。各チャートが一度にどれだけ読み込まれているかがよくわかります。

多くの資源はどこへ行くのか?

2020.08.27 12:57:19.299 Alert: Time[Test6.mq5 17: CopyTicks(Symb,Ticks,COPY_TICKS_ALL,0,1)] = 36 ms.
2020.08.27 12:57:19.300 Alert: Time[Test6.mq5 17: CopyTicks(Symb,Ticks,COPY_TICKS_ALL,0,1)] = 33 ms.
2020.08.27 12:57:19.314 Alert: Time[Test6.mq5 17: CopyTicks(Symb,Ticks,COPY_TICKS_ALL,0,1)] = 5 ms.
2020.08.27 12:57:20.073 Alert: Time[Test6.mq5 22: HistorySelect(Tick.time,INT_MAX)] = 1 ms.
2020.08.27 12:57:20.080 Alert: Time[Test6.mq5 17: CopyTicks(Symb,Ticks,COPY_TICKS_ALL,0,1)] = 1 ms.
2020.08.27 12:57:24.742 Alert: Time[Test6.mq5 17: CopyTicks(Symb,Ticks,COPY_TICKS_ALL,0,1)] = 4 ms.
2020.08.27 12:57:24.748 Alert: Time[Test6.mq5 17: CopyTicks(Symb,Ticks,COPY_TICKS_ALL,0,1)] = 6 ms.
2020.08.27 12:57:24.749 Alert: Time[Test6.mq5 17: CopyTicks(Symb,Ticks,COPY_TICKS_ALL,0,1)] = 2 ms.
2020.08.27 12:57:27.836 Alert: Time[Test6.mq5 17: CopyTicks(Symb,Ticks,COPY_TICKS_ALL,0,1)] = 9 ms.
2020.08.27 12:57:33.275 Alert: Time[Test6.mq5 17: CopyTicks(Symb,Ticks,COPY_TICKS_ALL,0,1)] = 6 ms.
2020.08.27 12:57:33.292 Alert: Time[Test6.mq5 17: CopyTicks(Symb,Ticks,COPY_TICKS_ALL,0,1)] = 2 ms.
2020.08.27 12:57:33.292 Alert: Time[Test6.mq5 17: CopyTicks(Symb,Ticks,COPY_TICKS_ALL,0,1)] = 16 ms.
2020.08.27 12:57:33.306 Alert: Time[Test6.mq5 17: CopyTicks(Symb,Ticks,COPY_TICKS_ALL,0,1)] = 3 ms.
 

最大限の優先度を設定しても、当然ながら効果はありません。


テストはb2582で行いました。

同じスクリプトを他の取引プラットフォームで比較するのも面白いかもしれませんね。