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

 
A100:
当然ながら、エキスパートやインジケーター、スクリプトは実行せず、手動でのビルドのみです。表示された遅延時間は、平均的な最新の64ビットタブレットで再現可能です。i7のPCをお持ちの方は、この遅延に遭遇していないと思います

は、apkやexe-systemが遅くなっているのでしょうか?

 
今日はお休みです。Market Watchのシンボルは1つだけです。EAは1秒間に1回OnTimerを実行しています。こんなログを発見。
2020.09.06 00:37:09.187         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 8 ms.
2020.09.06 03:57:17.902         Alert: Time[NewTicks.mqh 43: ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 1731 ms.
2020.09.06 03:57:18.463         Alert: Time[NewTicks.mqh 43: ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 2292 ms.
2020.09.06 03:59:49.233         Alert: Time[MT4Orders.mqh 1788: ::PositionGetTicket(Index)] = 2 ms.
2020.09.06 04:35:54.170         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 04:55:34.486         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 05:10:54.387         Alert: Time[NewTicks.mqh 43: ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 211 ms.
2020.09.06 05:10:54.387         Alert: Time[NewTicks.mqh 43: ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 895 ms.
2020.09.06 05:23:20.484         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 05:24:41.484         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 05:47:41.492         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 05:50:41.172         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 05:55:45.176         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 05:57:32.169         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 06:17:11.177         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 06:28:03.184         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 06:30:22.482         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 06:48:07.171         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 07:45:12.490         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 08:23:24.172         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 08:24:26.171         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 08:37:57.183         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 09:08:37.180         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 09:12:58.497         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 09:57:20.486         Alert: Ping = 10000.000
2020.09.06 09:57:21.680         Alert: Time[NewTicks.mqh 43: ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 195 ms.
2020.09.06 09:57:54.171         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 10:47:56.171         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 11:06:21.175         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 11:11:50.208         Alert: Time[NewTicks.mqh 43: ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 1023 ms.
2020.09.06 11:11:50.537         Alert: Time[NewTicks.mqh 43: ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 1049 ms.
2020.09.06 11:11:51.502         Alert: Ping = 10000.000
2020.09.06 11:11:52.370         Alert: Time[NewTicks.mqh 43: ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 187 ms.
2020.09.06 11:19:41.502         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 11:38:00.176         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 13:49:02.493         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 14:03:28.171         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 14:45:05.175         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 16:43:51.196         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 17:00:17.494         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 17:40:02.486         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 17:54:00.180         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.
2020.09.06 18:16:47.173         Alert: Time[NewTicks.mqh 33: ::SymbolInfoTick(_Symbol,Tick)] = 1 ms.

一方、Optimisationは8つのローカルAgentのうち、6つのローカルAgentで並行して実行されている。

これらがネットワーク切断である場合、なぜMarket Watchからの最後のティックの取得や ティック履歴からの最後のティックの取得に影響があるのでしょうか?


ZZY ターミナルのログが同じストレッチにあるんですよ。

2020.09.06 01:48:38.338 Network '': scanning network for access points
2020.09.06 01:48:40.195 Network '': scanning network finished
2020.09.06 03:57:04.504 Network '': connection to RannForex-Server lost
2020.09.06 03:57:15.249 Network '': authorized on RannForex-Server through as.eu 6 (ping: 56.41 ms, build 2560)
2020.09.06 03:57:15.249 Network '': previous successful authorization performed from xx.xx.xx.xx on 2020.09.05 21:59:42
2020.09.06 03:57:15.678 Network '': terminal synchronized with RannForex Limited: 1 positions, 0 orders, 67 symbols, 0 spreads
2020.09.06 03:57:15.678 Network '': trading has been enabled - hedging mode
2020.09.06 03:57:17.500 Network '': scanning network for access points
2020.09.06 03:57:20.416 Network '': scanning network finished
2020.09.06 05:10:52.296 Network '': connection to RannForex-Server lost
2020.09.06 05:10:53.033 Network '': authorized on RannForex-Server through as.eu 6 (ping: 56.31 ms, build 2560)
2020.09.06 05:10:53.033 Network '': previous successful authorization performed from xx.xx.xx.xx on 2020.09.06 05:10:59
2020.09.06 05:10:53.299 Network '': terminal synchronized with RannForex Limited: 1 positions, 0 orders, 67 symbols, 0 spreads
2020.09.06 05:10:53.299 Network '': trading has been enabled - hedging mode
2020.09.06 09:57:18.310 Network '': scanning network for access points
2020.09.06 09:57:20.396 Network '': scanning network finished
2020.09.06 09:57:20.396 Network '': auto connecting to a better access point with 93 % quality (previous: 77 %)
2020.09.06 09:57:20.397 Network '': connection to RannForex-Server lost
2020.09.06 09:57:21.151 Network '': authorized on RannForex-Server through as.eu 5 (ping: 41.60 ms, build 2560)
2020.09.06 09:57:21.151 Network '': previous successful authorization performed from 
xx.xx.xx.xx  on 2020.09.06 05:10:59
2020.09.06 09:57:21.208 Network '': terminal synchronized with RannForex Limited: 1 positions, 0 orders, 67 symbols, 0 spreads
2020.09.06 09:57:21.208 Network '': trading has been enabled - hedging mode
2020.09.06 11:08:16.952 Network '': connection to RannForex-Server lost
2020.09.06 11:11:48.892 Network '': authorized on RannForex-Server
2020.09.06 11:11:48.892 Network '': previous successful authorization performed from xx.xx.xx.xx on 2020.09.06 11:11:55
2020.09.06 11:11:48.970 Network '': terminal synchronized with RannForex Limited: 1 positions, 0 orders, 67 symbols, 0 spreads
2020.09.06 11:11:48.970 Network '': trading has been enabled - hedging mode
2020.09.06 11:11:49.152 Network '': scanning network for access points
2020.09.06 11:11:51.319 Network '': scanning network finished
2020.09.06 11:11:51.319 Network '': auto connecting to a better access point with 92 % quality (previous: 91 %)
2020.09.06 11:11:51.320 Network '': connection to RannForex-Server lost
2020.09.06 11:11:52.035 Network '': authorized on RannForex-Server through as.eu 5 (ping: 43.31 ms, build 2560)
2020.09.06 11:11:52.035 Network '': previous successful authorization performed from xx.xx.xx.xx on 2020.09.06 11:11:55
2020.09.06 11:11:52.088 Network '': terminal synchronized with RannForex Limited: 1 positions, 0 orders, 67 symbols, 0 spreads
2020.09.06 11:11:52.088 Network '': trading has been enabled - hedging mode
2020.09.06 17:11:49.928 Network '': scanning network for access points
2020.09.06 17:11:52.112 Network '': scanning network finished
 
fxsaber:

これらがネットワーク切断である場合、なぜMarket Watchからの最後のティックの取得やティック履歴からの最後のティックの取得に影響があるのでしょうか?

注意深く分析した結果、ネットワークが途切れたときにCopyTicksの速度が低下していることがわかりました。

2020.09.06 21:22:24.105         Alert: Time[NewTicks.mqh 43: ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 1619 ms.
2020.09.06 21:22:24.515         Alert: Time[NewTicks.mqh 43: ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 2347 ms.
2020.09.06 21:22:53.814         Alert: Time[NewTicks.mqh 43: ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 274 ms.
2020.09.06 21:22:53.814         Alert: Time[NewTicks.mqh 43: ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 686 ms.

2020.09.06 21:20:59.301 Network connection to RannForex-Server lost
2020.09.06 21:22:21.043 Network authorized on RannForex-Server
2020.09.06 21:22:21.043 Network previous successful authorization performed from xx.xx.xx.xx on 2020.09.06 11:11:59
2020.09.06 21:22:21.508 Network terminal synchronized with RannForex Limited: 1 positions, 0 orders, 67 symbols, 0 spreads
2020.09.06 21:22:21.508 Network trading has been enabled - hedging mode
2020.09.06 21:22:21.915 Network scanning network for access points
2020.09.06 21:22:28.819 Network scanning network finished
2020.09.06 21:22:45.523 Network connection to RannForex-Server lost
2020.09.06 21:22:52.951 Network authorized on RannForex-Server through as.eu 6 (ping: 56.55 ms, build 2560)
2020.09.06 21:22:52.951 Network previous successful authorization performed from xx.xx.xx.xx on 2020.09.06 21:22:28
2020.09.06 21:22:53.024 Network terminal synchronized with RannForex Limited: 1 positions, 0 orders, 67 symbols, 0 spreads
2020.09.06 21:22:53.024 Network trading has been enabled - hedging mode
 
fxsaber:


if (OrderSend(Request, Result))
    _B2(HistorySelect(0, INT_MAX)); // В каком месте самострел?

まず、ご参考までに。

"基本構造チェック(ポインタチェック)が成功した場合、trueが返されます - 取引操作の 実行が成功したことを示すものではありません 関数実行の結果をより詳細に知るためには、結果構造のフィールドを分析 する必要がある"


次に、あなたの論理によれば、注文が開かれた場合、注文のリストに追加するのではなく、キャッシュを完全に無効にする)のですか?

あなたが持っているすべてのコードを最適化することができます HistorySelectは、実行時間に関する質問のための最後の場所になります)キャッシュを使用します。1日1回など無効化することも可能ですが、EAが大幅に高速化されます。

 
Andrey Pogoreltsev:

まず第一に

コードを実行しないと正しく理解できないか、ワークシートから非常によく読み取れるかのどちらかです。

次に、あなたのロジックによると、注文が開かれた場合、注文のリストに追加するのではなく、完全にキャッシュを無効にするのですか)?

オーダーリストは変更されません。コードを読む

 
fxsaber:

を正しく理解するためには、コードを実行するか、シートからよく読み取る必要があります。

注文の一覧は変わりません。コードを読む

こちら

if (OrderSend(Request, Result))
    _B2(HistorySelect(0, INT_MAX)); // В каком месте самострел?

こんな理屈があるんですね。

  1. サーバーへの取引要求が正常に送信された場合
  2. 全履歴を選択します

しかし、サーバー上ですでにリクエストが拒否されている可能性もあります。このコードでは、このチェックは行われていません。履歴を選択するポイントは?そこで何を見たいのか。

ここで、この2行のコードでは、個人的には意味がわからない。選択する前にストーリーを変更するチェックがあれば見ることができますね。もしかしたら、もちろんこの2行ではタスクの全体像が見えないかもしれません。しかし、サーバーへのリクエスト送信に成功することと、履歴をすべて選択することの関連性が私にはよくわからないのです。サーバーがリクエスト送信に成功しても、成行注文やポジションの一覧は変更されます。履歴リストと何か関係があるのでしょうか?

 
Artyom Trishkin:

ここがポイント

こんな理屈があるんですね。

  1. サーバーへの取引要求が正常に送信された場合
  2. 履歴全体を選択する

しかし、サーバー上ですでにリクエストが拒否されている可能性もあります。このコードでは、このチェックは行われていません。履歴を選択するポイントは?そこで何を見たいのか。

ここで、この2行のコードでは、個人的には意味がわからない。選択する前にストーリーを変更するチェックがあれば見ることができますね。もしかしたら、もちろんこの2行ではタスクの全体像が見えないかもしれません。しかし、サーバーへのリクエスト送信に成功することと、履歴をすべて選択することの関連性が私にはよくわからないのです。サーバーがリクエスト送信に成功しても、成行注文やポジションの一覧は変更されます。履歴リストと何か関係があるのでしょうか?

If -コンパイラの警告を 消す。他にやることがないのです。

このスレッドは、EAの書き方を教えるためのものではありません。端末の弱点を解消するためのものです。開発者が理解するためには、シンプルで簡潔、かつ再現性のあるコードが必要です。もちろん、自分のためにこの種のものを書いているわけではない。実は、コンバットアドバイザーはブレーキを記録しているのです。調べてみると、誰かが(少なくとも手作業で)ポジションを修正したときにスローダウンが発生することに気づきました。これにより、履歴のキャッシュはリセットされますが、もちろん履歴は変わりません。


このコードは、この問題を完全に実証しています。不要なチェックで再生コードを煩雑にする必要はない。その仕事は、問題を明確に示すことです。そして、修正されたとき - すべてが今正しく動作することを証明するために。

 
fxsaber:

を正しく理解するためには、コードを実行するか、シートからよく読み取る必要があります。

注文の一覧は変わりません。コードを読む

私はシートから読み取るのが得意なのだと考えてください :)


このコードはどこかから持ってきたもので、そこに新しいポジションが作られ、それが実行されるわけですね?

そうでなければ、あなたのコードの要点は、現在位置のTPを更新し、そのためにキャッシュを無効にすることに集約され、これも非常に奇妙なことだと思います。

この2つのケースでは、キャッシュ処理を最適化するためのロジックは使用されていません。さらに、このソリューションは、履歴が大きくなるにつれてブレーキがかかるようになるため、拡張性に欠けます。

 
fxsaber:

このコードは問題を完全に示しています。不要なチェックで再生コードを乱雑にする必要はないのです。その仕事は、問題を明確に示すことです。そして、修正されたとき、すべてが正しく動作することを証明するために。

つまり、あなたの論理では、ここのコードは

int v = 0.0;

for (int i = 0; i < 1000000; i++) {
    v = i;
}

std::cout << "The last number: " << v << std::endl;

は、プロセッサの不調を示す?

 
Andrey Pogoreltsev:

このコードをどこからか持ってきて、新しいポジションを作ってそこに置いて、それが実行されるわけですね?

修辞的な質問: あなたはここで何を達成しようとしているのですか?
Andrey Pogoreltsev:

つまり、あなたの論理では、ここのコードは

は、プロセッサの遅さを示していますか?

無意味なことを言っているので、これ以上答えません。