MT5とスピードの関係 - ページ 89 1...82838485868788899091929394 新しいコメント traveller00 2021.03.01 13:16 #881 何度かテストをすれば、疑問がなくなるかも? Artyom Trishkin 2021.03.01 13:19 #882 traveller00: 何度かテストをすれば、疑問がなくなるかも? そうかもしれませんね。もっと時間があれば、自分でテストができるのに :( fxsaber 2021.03.01 14:01 #883 traveller00: 何度かテストをすれば、疑問がなくなるかも? テストでは、最初に始めたときだけ差が出ます。 Vladimir Simakov 2021.03.01 14:11 #884 Slava:Symbol()、_Symbolの項目は、NULLと同等です(シンボル名の代わりにNULLが許される場合)。この場合、現在のシンボルのプロパティはキャッシュされているため、現在のシンボルの存在、マーケットウォッチでの現在のシンボルの存在、現在のシンボルの不要な呼び出しプロパティについての余分なチェックは行われません。つまり、Symbol()、_Symbol、NULLの代わりに通常の文字列パラメータが指定された場合、プログラム全体のチェックと、さらにプロパティを呼び出すチェックが行われます 質問です。 string symbol=_Symbol; SymbolInfoInteger(symbol,...) SymbolInfoInteger(NULL,...) - この2つの場合のSymbolInfoXXX コールの動作は、チェック以上の違いがあるのでしょうか? symbol==_Symbol ? traveller00 2021.03.01 20:41 #885 traveller00:ちなみに、本日のMT5最新リリース版のフレッシュログより。1つのシンボルに3つのEAがそれぞれ独自のチャートでホバリングしていました。そして、リクエストは刻々と 続く。このようなスパイクはもちろんまれですが、実際、最後のティックから来る新しいティックの要求が1回、700ミリ秒で実行されました。 12時間ほどモニターしていますが、すでにラグがすべての限界を超えているのがわかります。 Time[Main.mqh 162 in ProcessTicks: CopyTicksRange(_Symbol,OldTicks,COPY_TICKS_INFO,LastTickParsed.time_msc)] = 8589203 mcs. 3つのEAが、それぞれ独自のチャートで、すべて1つのシンボルで、CopyTicksRangeを介して前のティックから古いティックを要求しています。しかも、ラグは9秒近くあります。そして、その限界はないようです。ほとんどの場合、tickストアは共有リソースで、アクセスは同期されていますが、非常にひどい同期でも、そのような時間は発生しないはずです。 一過性の不具合だと言う人もいるだろう。この12時間の監視の間に、残念ながら100回以上1秒の退場がありました。そして、これらはもはや一過性のものには見えません。同時に複数のティックが入ることが多かったようで、それがこのようなスパイクの原因になっているようです。 3つのEAが共通のリソースを巡って争ったという事実に目をつぶったとしても、もう1つのモニタリングに目を向けてみましょう。 ProcessTicks: CopyTicksRange(_Symbol,OldTicks,COPY_TICKS_INFO,LastTickParsed.time_msc)] = 1401285 mcs. シンボルのExpert Advisorは1つだけでした。そして、まだ1秒半。これだけでなく、他のシンボルのEAもありましたが、マルチスレッドではないのですか?あるいは、異なるシンボルのためのティックは、やはりお互いを遅くすることができるのでしょうか? これは、基本的なEAの基本機能です。アルゴリズム取引プラットフォームとして位置づけられる。とはいえ、基本的な機能には強い疑問が残ります。もう一度見てほしいという大きな要望。どこかに改善の余地があるのはほぼ 間違いない。または、以下のように、関数が呼び出されてからの最後のティックを取得できると非常にありがたいです。 トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム MT5とスピードの関係 fxsaber, 2021.03.01 07:28 そんな機能をぜひ考えてみてください。 int SymbolInfoTicks( const string Symb, MqlTick &Ticks[] ); // Возвращает свежие тики (не более сотни), пришедшие с предыдущего вызова этой функции. スキップなしでNEWテロップを取得する問題は、CopyTicks*によってのみ解決されるようになりました。このように広範囲に渡る作業を行うには、非常に面倒な仕組みになっています。大砲で鳥を撃つようなものです。 したがって、ブレーキ、巨大なキャッシュの保持など。 fxsaber 2021.03.05 18:44 #886 SymbolInfoTickとCopyTicksRangeの呼び出し回数を最小化しました。 SymbolInfoTickスナップショット - 100µsに1回以上呼び出されない。 新しいティック用の CopyTicksRange は、実際に新しいティックが Market Watch に到着した場合にのみ呼び出されます。 この負荷がかかった端末とマシン(スワップファイル無効)。 その結果、通常の機能のラグメッセージを大幅に減らす(呼び出し回数を減らす)ことができた。 ログイン 50分 2021.03.05 19:31:45.429 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 154 mcs. 2021.03.05 19:32:58.939 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 161 mcs. 2021.03.05 19:33:01.583 ::SymbolInfoTick(_Symbol,Tick)] = 158 mcs. 2021.03.05 19:36:01.682 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 143 mcs. 2021.03.05 19:36:31.229 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 234 mcs. 2021.03.05 19:36:31.229 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 913 mcs. 2021.03.05 19:39:08.716 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 139 mcs. 2021.03.05 19:39:30.994 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 315 mcs. 2021.03.05 19:39:32.858 ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 114 mcs. 2021.03.05 19:40:41.437 ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 101 mcs. 2021.03.05 19:42:26.104 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 116 mcs. 2021.03.05 19:42:28.849 ::SymbolInfoTick(_Symbol,Tick)] = 109 mcs. 2021.03.05 19:43:10.977 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 481 mcs. 2021.03.05 19:43:53.945 ::SymbolInfoTick(_Symbol,Tick)] = 130 mcs. 2021.03.05 19:49:20.352 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 101 mcs. 2021.03.05 19:51:31.242 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 102 mcs. 2021.03.05 19:51:44.986 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 107 mcs. 2021.03.05 19:52:05.590 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 219 mcs. 2021.03.05 19:53:56.013 ::SymbolInfoTick(_Symbol,Tick)] = 236 mcs. 2021.03.05 19:55:41.453 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 105 mcs. 2021.03.05 19:55:47.109 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 148 mcs. 2021.03.05 19:55:47.110 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 265 mcs. 2021.03.05 19:59:26.011 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 186 mcs. 2021.03.05 20:00:01.569 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 117 mcs. 2021.03.05 20:01:19.704 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 109 mcs. 2021.03.05 20:02:07.285 ::SymbolInfoTick(_Symbol,Tick)] = 177 mcs. 2021.03.05 20:02:07.286 ::SymbolInfoTick(_Symbol,Tick)] = 198 mcs. 2021.03.05 20:02:07.286 ::SymbolInfoTick(_Symbol,Tick)] = 202 mcs. 2021.03.05 20:04:40.170 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 364 mcs. 2021.03.05 20:04:45.905 ::SymbolInfoTick(_Symbol,Tick)] = 143 mcs. 2021.03.05 20:04:45.906 ::SymbolInfoTick(_Symbol,Tick)] = 158 mcs. 2021.03.05 20:04:45.907 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 504 mcs. 2021.03.05 20:04:48.259 ::SymbolInfoTick(_Symbol,Tick)] = 104 mcs. 2021.03.05 20:04:54.727 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 104 mcs. 2021.03.05 20:05:39.642 ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 101 mcs. 2021.03.05 20:07:40.189 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 101 mcs. 2021.03.05 20:09:21.844 ::SymbolInfoTick(_Symbol,Tick)] = 115 mcs. 2021.03.05 20:09:32.422 ::SymbolInfoTick(_Symbol,Tick)] = 107 mcs. 2021.03.05 20:10:02.423 ::SymbolInfoTick(_Symbol,Tick)] = 128 mcs. 2021.03.05 20:15:48.838 ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 149 mcs. 2021.03.05 20:16:36.001 ::SymbolInfoTick(_Symbol,Tick)] = 105 mcs. 2021.03.05 20:17:51.499 ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 480 mcs. 2021.03.05 20:17:51.638 ::SymbolInfoTick(_Symbol,Tick)] = 342 mcs. 2021.03.05 20:17:52.802 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 429 mcs. 2021.03.05 20:17:53.340 ::SymbolInfoTick(_Symbol,Tick)] = 142 mcs. 2021.03.05 20:19:21.512 ::SymbolInfoTick(_Symbol,Tick)] = 122 mcs. 2021.03.05 20:20:35.836 ::CopyTicks(_Symbol,Tick,COPY_TICKS_ALL,0,1)] = 116 mcs. 悪くないと思うのですが。貿易取引はありませんでした。彼らはどうなんだろう、見てみたい。 しかし、ハイライトされた部分は、3つのEA(異なるキャラクター)がほぼ同時にラグを受けたことを示しています。つまり、ラグがあるのは端末共通なのです。 fxsaber 2021.03.05 18:58 #887 Slava:Symbol()、_Symbolの項目は、NULLと同等です(シンボル名の代わりにNULLが許される場合)。この場合、カレントノードのプロパティはキャッシュされているため、カレントシンボルの存在、マーケットウォッチでのカレントシンボルの存在、カレントシンボルの不要な呼び出しプロパティについての余分なチェックは行われないつまり、Symbol()、_Symbol、NULLではなく、単純な文字列パラメータを指定した場合、プログラム全体のチェックと、より多くのリクエストプロパティが存在するのです フォーラムユーザーとは言葉の解釈が異なるので、もう一度説明してください。 fxsaber 2021.03.05 21:50 #888 1つのEA/チャート/シンボルでターミナルで。 2021.03.05 23:02:02.860 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 189 mcs. 2021.03.05 23:02:24.152 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 339 mcs. 2021.03.05 23:02:53.540 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 915 mcs. 2021.03.05 23:05:35.325 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 223 mcs. 2021.03.05 23:05:41.398 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 245 mcs. 2021.03.05 23:05:44.585 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 376 mcs. 2021.03.05 23:06:35.210 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 173 mcs. 2021.03.05 23:07:38.298 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 290 mcs. 2021.03.05 23:08:50.342 ::CopyTicksRange(_Symbol,Ticks,COPY_TICKS_INFO,From)] = 102 mcs. 2021.03.05 23:14:58.216 ::SymbolInfoTick(_Symbol,Tick)] = 447 mcs. そんなログを15分で。やはりWindowsが遅いことが問題なようです。この場合、それは 2021.03.05 23:49:20.792 Terminal MetaTrader 5 x64 build 2815 started for MetaQuotes Software Corp. 2021.03.05 23:49:20.792 Terminal Windows Server 2019 build 17763, Intel Core i7-7700 K @ 4.20 GHz, 17 / 31 Gb memory, 3698 / 3725 Gb disk, IE 11, RDP, UAC, GMT+2 fxsaber 2021.03.10 13:53 #889 Market Watchが引き起こすブレーキの分かりやすい例。 Processorの欄の値を見てください(右から2番目)。 fxsaber 2021.03.12 10:05 #890 サーバーの遅延に、端末の遅延が加わる。 トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム インジケーター:Ping fxsaber, 2021.03.12 10:56 この素晴らしい指標を思い出しただけです。 Pingがゼロのマシンからの画像です。その結果、端末の内部遅延は平均で2ms程度であることがわかりました。0〜9msの間で推移する。 例えば、サーバーが2つのティックを受信した場合、最初のティックと、10ms後の2番目のティックを受信しました。つまり、「ターミナル」では、2回目のティックを受信できるのは、1回目のティックの10ms後ではなく、10-19ms後なのです。平均すると、12ms遅れている。 マーケットからの取引(マーケットマートや現在値でのペンディングオーダー)の場合、特に管理が難しくなります。ここでデベロッパーが何かを改善できるかというと、難しいところです。 モスクワの取引所を見てみても、同じような状況です。実際、MT5アルゴを使った取引では、残念ながら良いものを拾う時間がなく、実行キューの最後にいることがほぼ確実です。 Акцептирование SL/TP-ордеров 2020.11.24www.mql5.com В этой ветке пойдет речь об ордерах, которые создаются в результате срабатывания SL/TP-уровней открытых позиций... 1...82838485868788899091929394 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
何度かテストをすれば、疑問がなくなるかも?
そうかもしれませんね。もっと時間があれば、自分でテストができるのに :(
何度かテストをすれば、疑問がなくなるかも?
テストでは、最初に始めたときだけ差が出ます。
Symbol()、_Symbolの項目は、NULLと同等です(シンボル名の代わりにNULLが許される場合)。
この場合、現在のシンボルのプロパティはキャッシュされているため、現在のシンボルの存在、マーケットウォッチでの現在のシンボルの存在、現在のシンボルの不要な呼び出しプロパティについての余分なチェックは行われません。
つまり、Symbol()、_Symbol、NULLの代わりに通常の文字列パラメータが指定された場合、プログラム全体のチェックと、さらにプロパティを呼び出すチェックが行われます
質問です。
- この2つの場合のSymbolInfoXXX コールの動作は、チェック以上の違いがあるのでしょうか?
?
ちなみに、本日のMT5最新リリース版のフレッシュログより。
1つのシンボルに3つのEAがそれぞれ独自のチャートでホバリングしていました。そして、リクエストは刻々と 続く。このようなスパイクはもちろんまれですが、実際、最後のティックから来る新しいティックの要求が1回、700ミリ秒で実行されました。
12時間ほどモニターしていますが、すでにラグがすべての限界を超えているのがわかります。
3つのEAが、それぞれ独自のチャートで、すべて1つのシンボルで、CopyTicksRangeを介して前のティックから古いティックを要求しています。しかも、ラグは9秒近くあります。そして、その限界はないようです。ほとんどの場合、tickストアは共有リソースで、アクセスは同期されていますが、非常にひどい同期でも、そのような時間は発生しないはずです。
一過性の不具合だと言う人もいるだろう。この12時間の監視の間に、残念ながら100回以上1秒の退場がありました。そして、これらはもはや一過性のものには見えません。同時に複数のティックが入ることが多かったようで、それがこのようなスパイクの原因になっているようです。
3つのEAが共通のリソースを巡って争ったという事実に目をつぶったとしても、もう1つのモニタリングに目を向けてみましょう。
シンボルのExpert Advisorは1つだけでした。そして、まだ1秒半。これだけでなく、他のシンボルのEAもありましたが、マルチスレッドではないのですか?あるいは、異なるシンボルのためのティックは、やはりお互いを遅くすることができるのでしょうか?
これは、基本的なEAの基本機能です。アルゴリズム取引プラットフォームとして位置づけられる。とはいえ、基本的な機能には強い疑問が残ります。もう一度見てほしいという大きな要望。どこかに改善の余地があるのはほぼ 間違いない。または、以下のように、関数が呼び出されてからの最後のティックを取得できると非常にありがたいです。
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
MT5とスピードの関係
fxsaber, 2021.03.01 07:28
そんな機能をぜひ考えてみてください。
スキップなしでNEWテロップを取得する問題は、CopyTicks*によってのみ解決されるようになりました。このように広範囲に渡る作業を行うには、非常に面倒な仕組みになっています。大砲で鳥を撃つようなものです。
したがって、ブレーキ、巨大なキャッシュの保持など。
SymbolInfoTickとCopyTicksRangeの呼び出し回数を最小化しました。
この負荷がかかった端末とマシン(スワップファイル無効)。
その結果、通常の機能のラグメッセージを大幅に減らす(呼び出し回数を減らす)ことができた。
ログイン 50分
悪くないと思うのですが。貿易取引はありませんでした。彼らはどうなんだろう、見てみたい。
しかし、ハイライトされた部分は、3つのEA(異なるキャラクター)がほぼ同時にラグを受けたことを示しています。つまり、ラグがあるのは端末共通なのです。
Symbol()、_Symbolの項目は、NULLと同等です(シンボル名の代わりにNULLが許される場合)。
この場合、カレントノードのプロパティはキャッシュされているため、カレントシンボルの存在、マーケットウォッチでのカレントシンボルの存在、カレントシンボルの不要な呼び出しプロパティについての余分なチェックは行われない
つまり、Symbol()、_Symbol、NULLではなく、単純な文字列パラメータを指定した場合、プログラム全体のチェックと、より多くのリクエストプロパティが存在するのです
フォーラムユーザーとは言葉の解釈が異なるので、もう一度説明してください。
1つのEA/チャート/シンボルでターミナルで。
そんなログを15分で。やはりWindowsが遅いことが問題なようです。この場合、それは
Market Watchが引き起こすブレーキの分かりやすい例。
Processorの欄の値を見てください(右から2番目)。
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
インジケーター:Ping
fxsaber, 2021.03.12 10:56
この素晴らしい指標を思い出しただけです。
Pingがゼロのマシンからの画像です。その結果、端末の内部遅延は平均で2ms程度であることがわかりました。0〜9msの間で推移する。
例えば、サーバーが2つのティックを受信した場合、最初のティックと、10ms後の2番目のティックを受信しました。つまり、「ターミナル」では、2回目のティックを受信できるのは、1回目のティックの10ms後ではなく、10-19ms後なのです。平均すると、12ms遅れている。
マーケットからの取引(マーケットマートや現在値でのペンディングオーダー)の場合、特に管理が難しくなります。ここでデベロッパーが何かを改善できるかというと、難しいところです。
モスクワの取引所を見てみても、同じような状況です。実際、MT5アルゴを使った取引では、残念ながら良いものを拾う時間がなく、実行キューの最後にいることがほぼ確実です。