2020.10.3013:50:21.852 Test9 (GBPUSD,H1) SymbolInfoTick max bad time: 2.008 ms; avr bad time: 2.008 ms; bad iterations: 1 total iterations: 100000002020.10.3013:50:22.142 Test9 (EURUSD,H1) GetBid max bad time: 1.125 ms; avr bad time: 1.125 ms; bad iterations: 1 total iterations: 100000002020.10.3013:50:23.072 Test9 (USDCHF,H1) SymbolInfoTick max bad time: 2.245 ms; avr bad time: 2.245 ms; bad iterations: 1 total iterations: 100000002020.10.3013:50:23.288 Test9 (USDCAD,H1) GetBid max bad time: 1.298 ms; avr bad time: 1.182 ms; bad iterations: 2 total iterations: 100000002020.10.3013:50:23.297 Test9 (AUDCAD,H1) GetBid max bad time: 0.977 ms; avr bad time: 0 ms; bad iterations: 0 total iterations: 100000002020.10.3013:50:24.393 Test9 (EURUSD,H1) SymbolInfoTick max bad time: 3.400 ms; avr bad time: 2.862 ms; bad iterations: 2 total iterations: 10000000
Anton:
Idle-CPU、RannForex-Server、異なるシンボルで6つのチャートであなたのEAを実行します。パソコンに戻ると、こんなのがたくさんありました。
そんな感じで、タイムコンディションが悪いんです。
SZZ フォーラムのメンバーの客観性を保つために、コードを添付したのです。
Idle-CPU、RannForex-Server、異なるシンボルで6つのチャートであなたのEAを実行します。パソコンに戻ると、こんなのがたくさんありました。
私の理解が正しければ、このテストでは、4つのCPUコアで6つのループしたEAが動作しており、それぞれが1つのコアに100%負荷をかけようとしているのです。つまり、これは間違いなくストレステストであり、通常の動作条件とは大きくかけ離れているのです。
このような条件下で、1,000万回のクエリに対して1~2msの射出が1~2回あれば上出来である。
そして、もう一度言っておきますが、負荷が大きければ大きいほど、ターミナルではなく、OSのタスクスケジューラの効率性をテストすることになります。騙されないでください。
SymbolInfoTickで与えられるティックの関連性について疑問があります。
シチュエーション
1.TimeCurretn()を実行すると、時刻は18:00:00となる。
2.ラベルのないシンボルに対してSymbolInfoTickを実行する。17:58:00という時刻のテロップが表示されます。
3.スリープ(1)
4.左以外のシンボルのSymbolInfoTickを追加します。17:59:00という 時刻のテロップが表示されます。
すなわち、4番目の項目で、TimeCurretn() と1分違いの新しいティックを表示しているのです。
この状況に問題はないのでしょうか?
どうすれば、より稀にこのような状況になるのか?
EAをテストする。
Alertiteは持っていない。 結果(6つのチャートで実行)。
問題があるのです。どの程度深刻なのかは、何とも言えません。
私の理解が正しければ、このテストでは、4つのCPUコアで6つのループしたEAが動作しており、それぞれが1つのコアに100%負荷をかけようとしているのです。つまり、これは間違いなくストレステストであり、通常の動作条件とは大きくかけ離れているのです。
このEAは ストレステストなのか?測定しているからこその質問です。
がアラートの海を演出しています。
ArrayPrintのシリアルログ出力に不具合があります。
これがソースコードである以上、エラーであることは明らかである。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
MT5とスピードの関係
fxsaber, 2020.10.30 15:04
私は何度もAlertトリガーを秒単位でかけています。
19ms、SymbolInfoTickの 実行は48msです。数百マイクロ秒というケースも数十件あった。でも、引き合いに出してはいないんです。
どうやら再現するためには、コンバットアドバイザーを24時間稼働させ、あとは見るだけにする必要があるようです。何が原因でこのようなラグが発生するのかを解明するのは非現実的だと私は思います。
ページ上部にあるTest9のコードを見た。なぜ1つのシンボルからティックを要求するのに1,000万回もスリープさせないのですか?このテストは実際の取引とどんな関係があるのでしょうか?
マーケットレビューで各シンボルからティックを要求します。Sleep(1)などで一時停止します。コードを少し手直ししてください。
概要にある55個のシンボルをテストします。
では、SymbolInfoTickの 代わりにtemp++をテストしてみましょう。
ページ上部にあるTest9のコードを見た。なぜ、1人のキャラクターに1,000万回ものSleepを要求するのか?
そんなことはありません。詳しくは支店をお読みください。
同じ土俵に立たない詳しくはスレッドをお読みください。
この測光方式では、temp++の最大実行時間でも数十マイクロ秒かかるので、混乱しないのでしょうか?