エラー、バグ、質問 - ページ 1883

 

最新の 1596 リリースにおける関数による CopyXXX チャートキャッシュのリフティングの速度について、以前の議論と比較したテストを繰り返した結果: https://www.mql5.com/ru/forum/1111/page1871#comment_4867939

コンディション説明
MetaTrader 4 ビルド 1065
MetaTrader 5 x64 build 1580
ビルド1596
ハードウェアとオペレーションシステム
Windows 10 Pro x64、Intel Xeon E5-2690 v3 @ 2.60GHz、RAM: 32GB、SSD Disk
トレードサーバー
MetaQuotes-デモ
MetaQuotes-デモ
設定でチャートにバーを制限する
10 000
10 000
設定から履歴のバーを制限する 10 000 000
制限なし
EURUSDの実際のバー数(M1)
3.382百万円
6,538百万円
検証済みシンボルとピリオド
EURUSD, M1
オープンチャート
GBPUSD、M1のみ、スクリプトも投げています。
結果は端末起動後のコールド状態
#0 pass, 1000 records in 680 msc
#1 pass, 1000 records in 2 msc
#2 pass, 1000 records in 2 msc
#0 pass, 1000 records in 113497 msc
#1 pass, 1000 records in 3 msc
#2 pass, 1000 records in 3 msc
#0 pass, 1000 records in 18288 msc
#1 pass, 1000 records in 7 msc
#2 pass, 1000 records in 2 msc
結果はウォームアップ、1本目の直後に2本目を実行
#0 pass, 1000 records in 13 msc
#1 pass, 1000 records in 2 msc
#2 pass, 1000 records in 2 msc
#0 pass, 1000 records in 14 msc
#1 pass, 1000 records in 2 msc
#2 pass, 1000 records in 2 msc
#0 pass, 1000 records in 13 msc
#1 pass, 1000 records in 2 msc
#2 pass, 1000 records in 2 msc

テストスクリプトはソースコメントに添付しています。

チャートディスクからのリフト時間(ディスク上のバー650万本、1万本のバーをリフトし、最後のバー1000本を要求、コールドスタート)を113ミリ秒から18ミリ秒に短縮した。その後のリクエストは、すでに2マイクロ秒で実行されている。
 
Renat Fatkhullin:

最新の 1596 リリースにおける関数による CopyXXX チャートキャッシュのリフティングの速度について、以前の議論と比較したテストを繰り返した結果: https://www.mql5.com/ru/forum/1111/page1871#comment_4867939

コンディション説明
MetaTrader 4 ビルド 1065
MetaTrader 5 x64 build 1580
ビルド1596
ハードウェアとオペレーションシステム
Windows 10 Pro x64、Intel Xeon E5-2690 v3 @ 2.60GHz、RAM: 32GB、SSD Disk
トレードサーバー
MetaQuotes-デモ
MetaQuotes-デモ
設定でチャートにバーを制限する
10 000
10 000
設定から履歴のバーを制限する 10 000 000
制限なし
EURUSDの実際のバー数(M1)
3.382百万円
6,538百万円
検証済みシンボルとピリオド
EURUSD, M1
オープンチャート
GBPUSD、M1のみ、スクリプトも投げています。
結果は端末起動後のコールド状態
結果はウォームアップ、1本目の直後に2本目を実行

テストスクリプトはソースコメントに添付しています。

チャートディスクからのリフト時間(ディスク上のバー650万本、1万本のバーをリフトし、最後のバー1000本を要求、コールドスタート)を113ミリ秒から18ミリ秒に短縮した。その後のリクエストは、すでに2マイクロ秒で実行されている。

よくぞ言ってくれました。
 
Renat Fatkhullin:

最新1596リリースのCopyXXXチャートキャッシュ引き上げ機能の速度を前回の議論と比較した再テストhttps://www.mql5.com/ru/forum/1111/page1871#comment_4867939

SymbolsTotalで より良いやり直しができる。
 
fxsaber:
SymbolsTotalに 変更するのがよいでしょう。

スクリプトとExpert Advisorでは、CopyTicksは非同期ではありません。実際、この場合、これらの関数の非同期性について厳密に語ることはできない。CopyXXXのインジケータでは、「あるものを遅延なく一気に出力し、並行してバックグラウンドスワップモードを設定する」というモードで機能が動作します。

MQL_MEMORY_USEDは、使用メモリが1Mbと表示されるので、嘘はついていません。プログラム自体は2000個の要素に対してMqlTick Ticks[]しかないので、52バイト×2000=〜100kbのデータがあることになります。さらに残りの小さなデータも合わせると、約1メガバイトになります。そして、忘れてはならないのが、メガバイトへの切り上げです。

上昇したキャッシュは、MQL5プログラムではなく、ターミナルに属します。
 
Renat Fatkhullin:

スクリプトやEAではCopyTicksは非同期ではありません。

SDのそのコードは解析され、すべてがスムーズにいくとは限らないからです。

Copy-functionを1つのシンボルだけでなく、Market Watchから全て確認するのが良いという意味です。

 

Alpari-MT5トレーディングサーバー

FOREXシンボルのティック履歴で、ティックが重複しているのはなぜですか(bidとaskは同じです)?

テスターがEAを重複して追いかけると、半分くらいはあるんですよ。対応する性能が半減してしまうのは仕方がないことなのでしょうか?

 
MT5テスターのシングルランレポートにも、「ポジション」表示モードを追加してください。
 
このトピックに関係のないコメントは、「シグナルズサービスに関するFAQ」に移動しました。
 

再現方法は分かりませんが、1598で何度か遭遇しています。

CTRL+F5でデバッグを開始する。DebugBreakに なり、変数値を見ながら、何かを夢見ながら、まったく時間をかけています。そして、しばらくするとビジュアライザーが「反応しない」、さらにエディターが「反応しない」。TaskManagerで強制終了させなければならない。

 
fxsaber:

再現方法は分かりませんが、1598で何度か遭遇しています。

CTRL+F5でデバッグを開始する。DebugBreakになり、変数値を見ながら、何かを夢見ながら、まったく時間をかけています。そして、しばらくするとビジュアライザーが「反応しない」、さらにエディターが「反応しない」。TaskManagerで強制終了させなければならない。

整理する必要がありますね。