MT4-テスター VS MT5-テスター - ページ 2

 
fxsaber:

オーバーキル(開始時10万ドル)

テスト条件を説明する概念がおかしい。

このような細部へのこだわりは、その後のすべての結論に大きな影を落とします。

 
fxsaber:

MT4では現在動作しません。

MT4で動作するようになりました。

どのように実現されているかを証明し、技術的に説明する。


MT5を否定する意図はありません。あくまでも再現性のある比較をしているのです。確かにMT5のテスターは実現不可能な面もありますが、MT4のチューニングもMT5にはない、でも本当に求められているものを出せるようになったんです。MT4の実際のカスタムティックでの正確なテストは100%正しいことが確認されています。まあ、それとテスターの 各種設定(手数料、インデント、保留注文の有効化ルールなど)の規制はある。一般的に、MT5にはまだ実装されていないものがあります。

スリップとアクティベーションのルールは、記載されたとおりの仕組みであるという正確な根拠はあるのでしょうか、あるのでしょうか。

MT4テスターエンジンの注文トリガー条件を外部プログラムが変更できることを技術的に証明・説明できますか?このエンジンにディープインジェクションではなく?

 
Renat Fatkhullin:

テスト条件を記述する概念がおかしいのでは?

このような細部へのアプローチは、その後のすべての結論に大きな影を落とします。

もし私が何かを伝えなかったとしても、それはわざとではありません。先ほど、すべてのデータをお渡ししたと思います。しかし、もう一度だけ繰り返します。

  • 完全にやりすぎです。
  • 10万ドルからスタートです。
  • 範囲はスクリーンショットでご確認ください。
  • 峠を強制的に突破する条件は設定されていない。
  • リアルEURUSD M1 ticks 2017.04.10〜2017.04.16(週)。
  • 1つのローカルエージェント(1コア)のみ有効です。

 
あるMT5のテストにおいて、何パーセントが起因しているかを実際に測定する方法はありますか?
テストパラメータ(結果)の暗号化⇒ループバックへの送信⇒テストパラメータ(結果)の復号化

天井から50msとすると、260 * 2 * 50 / 1000 = 26秒となる。
どちらが少ないということはありません。
実際の数字が分かれば面白いですね。
 

Renat Fatkhullin:
Докажите и объясните технически, как это достигается.

技術的にどのように実現されているのか、私にはわかりません。証明する - すぐには無理(寝てからにします)。

スリッページやアクティベーションルールが記載通りであるという正確な根拠はあるのでしょうか、またあるのでしょうか?

外部プログラムがMT4テスターのエンジンの注文トリガー条件を変更する可能性があることを技術的に証明し、説明できますか?このエンジンにディープインジェクションではなく?

スプレッドが何年も固定されていないという事実だけでも、インジェクションの深さが伺えます。このMT4の機能は、多くのフォーラムで非常に人気があります。ただ、無料でないことが唯一の落胆点です。しかし、トライアルは本格的なものなので、誰でも試すことができます。実は、このスレッドを作成するために、数時間前にトライアル自体をインストールしたのです。

建設的なのは、少し休んでからサポートすることです。実は、希望すれば、誰でも今すでに明細を確認することができるのです。

 
最初の20/260のパス
QR      0       03:29:37.031    Tester  0 : passed in 0:37:27.366
HK      0       03:30:36.307    Tester  1 : passed in 0:00:58.406
MM      0       03:30:40.510    Tester  2 : passed in 0:00:04.196
OF      0       03:30:41.731    Tester  3 : passed in 0:00:01.217
IH      0       03:30:42.538    Tester  4 : passed in 0:00:00.811
MQ      0       03:30:44.880    Tester  5 : passed in 0:00:00.764
LK      0       03:30:45.577    Tester  6 : passed in 0:00:00.687
PL      0       03:30:46.255    Tester  7 : passed in 0:00:00.671
MF      0       03:30:46.929    Tester  8 : passed in 0:00:00.671
GO      0       03:30:47.602    Tester  9 : passed in 0:00:00.671
CO      0       04:15:27.776    Tester  10 : passed in 0:44:40.160
ND      0       04:17:28.477    Tester  11 : passed in 0:01:59.450
HM      0       04:17:34.594    Tester  12 : passed in 0:00:06.099
CK      0       04:17:36.172    Tester  13 : passed in 0:00:01.575
QP      0       04:17:37.080    Tester  14 : passed in 0:00:00.905
LN      0       04:17:37.840    Tester  15 : passed in 0:00:00.765
NG      0       04:17:38.555    Tester  16 : passed in 0:00:00.702
ML      0       04:17:39.244    Tester  17 : passed in 0:00:00.687
RJ      0       04:17:39.925    Tester  18 : passed in 0:00:00.670
CS      0       04:17:40.603    Tester  19 : passed in 0:00:00.671

入力パラメータ

Shift = 1のとき、野生のブレーキがあることがわかります。例えば、MT4がゼロパスに対処する方法は以下の通りです。

2017.05.08 04:47:13.779 EURUSD,M1: 1865415 tick events (7292 bars, 1865515 bar states) processed in 0:00:33.541 (total time 0:00:34.289)

つまり、60倍以上の速さです。


エスゼット

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

バグ、バグ、質問

fxsaber さん 2017.04.26 15:08

オプティマイザーのログに、最適化されたパラメータの範囲とステップを表示してください。

また、エージェントのログには次のような行があります。

NS      0       14:11:00.853    Tester  756 : passed in 0:00:04.789
MJ      0       14:11:03.447    Tester  757 : passed in 0:00:02.574
RM      0       14:11:05.860    Tester  758 : passed in 0:00:02.340

関連するランの情報(EA名とその入力パラメータ)を添付してください。

 
fxsaber:

Shift = 1のときに乱暴なブレーキがかかることがわかる。例えば、MT4がゼロパスに対処する方法は以下の通りです。

最適化が終わるのを待つのは無意味になったので、やめました。

ゼロのシングルパスを実行すると(完了を待たずに)、パスが実行されるにつれて、テスターの性能が非常に低下することが示されました。

履歴機能は関係ありません。

 
fxsaber:

言い方が悪かったら、本気じゃなかったんだ。詳細は先ほどお伝えしたと思います。でも、もう一度言います。

  • 完全にやりすぎです。
  • 100 000 USDからスタート。
  • 範囲はスクリーンショットでご確認ください。
  • 峠を強制的に突破する条件は設定されていない。
  • リアルEURUSD M1 ticks 2017.04.10〜2017.04.16(週)。
  • ローカルエージェント(1コア)のみ有効。

さて、同じ(Alpari-MT5-Demoサーバのみ)サーバでの結果は以下の通りです。

  • Windows 10 Pro、Intel Xeon E5-2690 @ 2.60GHz

  • 1コア:27分55秒
    2017.05.08 05:13:09.636 Tester          optimization finished, total passes 260
    2017.05.08 05:13:09.647 Statistics      optimization done in 27 minutes 55 seconds
    2017.05.08 05:13:09.647 Statistics      local 260 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    

  • 8コア:6分11秒
    2017.05.08 04:38:18.663 Tester          optimization finished, total passes 260
    2017.05.08 04:38:18.674 Statistics      optimization done in 6 minutes 11 seconds
    2017.05.08 04:38:18.674 Statistics      local 260 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    
  • 24コア。3分33秒
    2017.05.08 05:17:40.990 Tester          optimization finished, total passes 260
    2017.05.08 05:17:41.000 Statistics      optimization done in 3 minutes 33 seconds
    2017.05.08 05:17:41.000 Statistics      local 260 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
    

MT5では、シングルコアで最適化する意味がないことは明らかで、8コアでもすべてが非常に速く進みます。MT4で14分というのは、コアあたりのパワーが近いCPUでやっているのでしょうから、時間は比較できると思います。1コアあたりの周波数が2.6Ghzしかないくらいですからね。

なぜ、時間のリニアな短縮ができないのか?トレードの数が 多いため、タスクが偏ってしまうからです。トレード数が100のパス(計算時間は1秒)もあれば、23万トレードのパス(最大50秒)もある。計算速度は、誰がどのようにロングパスを配分するかで完全に決まるため、パッケージにおけるクリティカルパスは大きく短縮されない。


あなたの遅延は、リリース版のトランザクション履歴のスキャンが非効率的であることに起因しています。スローダウンのケースは、取引数が20万件以上のパスです。

Expert Advisorの例全体は、たった一つのことだけを行うように書かれています - それは、ひどく非効率的な方法で、すべてのティックで取引の全履歴をスキャンします。これは、1回のパスで180万回の全履歴の再スキャンになります。しかも、MT5セレクションのコードはネイティブではなく、MT4スタイルのラッパーというカタチで、さらに出費を増やしているのです。


先ほど示したように、大規模な取引履歴の操作やサンプリングを大幅に書き換え、今では履歴の深さに差はありません。

最新のビルド1598を添付して確認したところ、すべてが高速に動作しています。MetaTrader 5のディレクトリにあるファイルを置き換えるだけです。

以下はパスのログです。

OK      0       04:45:17.505    History EURUSD,M1: history cache allocated for 484457 bars and contains 473528 bars from 2016.01.04 00:00 to 2017.04.07 23:59
IR      0       04:45:17.540    History EURUSD,M1: history begins from 2016.01.04 00:00
RF      0       04:45:24.469    Tester  0 : passed in 0:00:07.188
KO      0       04:45:26.727    Tester  1 : passed in 0:00:02.188
CQ      0       04:45:27.857    Tester  2 : passed in 0:00:01.109
QJ      0       04:45:28.758    Tester  3 : passed in 0:00:00.890
NL      0       04:45:29.525    Tester  4 : passed in 0:00:00.750
ME      0       04:45:30.237    Tester  5 : passed in 0:00:00.688
LO      0       04:45:30.923    Tester  6 : passed in 0:00:00.671
RP      0       04:45:31.612    Tester  7 : passed in 0:00:00.672
NJ      0       04:45:32.363    Tester  8 : passed in 0:00:00.734
RS      0       04:45:33.065    Tester  9 : passed in 0:00:00.687
MK      0       04:45:42.777    Tester  10 : passed in 0:00:09.703
HP      0       04:45:45.928    Tester  11 : passed in 0:00:03.094
EN      0       04:45:47.354    Tester  12 : passed in 0:00:01.406
HG      0       04:45:48.313    Tester  13 : passed in 0:00:00.953
LL      0       04:45:49.110    Tester  14 : passed in 0:00:00.781
QJ      0       04:45:49.828    Tester  15 : passed in 0:00:00.703
NS      0       04:45:50.523    Tester  16 : passed in 0:00:00.688
MH      0       04:45:51.215    Tester  17 : passed in 0:00:00.672
DF      0       04:45:51.901    Tester  18 : passed in 0:00:00.672
FO      0       04:45:52.646    Tester  19 : passed in 0:00:00.735
NE      0       04:46:04.884    Tester  20 : passed in 0:00:12.219

216kトレードのゼロパス(Shift=1, Limit=5パラメータ)は7秒で成功しました。

ファイル:
MetaTester64.zip  7571 kb
terminal64.zip  14201 kb
 
Renat Fatkhullin:

Expert Advisorの例全体は、1つのことしかしないように書かれています - それは、毎ティックで取引履歴全体をスキャンする恐ろしく非効率的なものです。これは、1回のパスで取引の全履歴を180万回フルスキャンしたことになります。また、MT5のコードはネイティブではなく、MT4風のラッパーという形で松葉杖をついているため、さらに出費がかさみます。

プルーフ
bool Func1( datetime, datetime ){ return false; };
bool Func2( long ){ return false; };

#define HistorySelect Func1
#define HistorySelectByPosition Func2

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

MT4-テスター VS MT5-テスター

fxsaber さん 2017.05.08 01:11

もし、MT5の動作が遅くなる原因がサードパーティのライブラリを使っていることにあるのなら、やる気のある人はこのEAの簡単なMT4のロジックをMQL5で自分なりに書き換えて、仮説を検証することができるはずです。
 
Renat Fatkhullin:

先ほど示したように、大口取引履歴の操作やサンプリングを大幅に書き換え、今では履歴の深さに差はありません。

最新のビルド1598を添付して確認したところ、すべてすぐに動作するようになりました。MetaTrader 5ディレクトリのファイルを変更するだけです。

1598は1596よりはるかに高速に動作します。しかも、ヒストリー機能がまったく使われていない場所でも使えるのです。どうやら、走行中に端末がその内臓の機能を低下させたようだ。


MT4の最適化

2017.05.08 02:35:33.074 Lucky: optimization started
2017.05.08 02:49:51.431 Lucky: optimization finished in 0:14:18
2017.05.08 02:49:51.436 There were 260 passes done during optimization


MT5の最適化

2017.05.08 07:40:38.429 Tester  Experts\MT4Orders\Lucky.ex5 on EURUSD,M1 from 2017.04.10 00:00 to 2017.04.16 00:00
2017.05.08 07:40:38.597 Tester  EURUSD: preliminary downloading of history ticks started, it may take quite a long time
2017.05.08 07:40:39.600 Tester  EURUSD: preliminary downloading of history ticks completed, 100.38 Kb in 0:01.170 (85.80 Kb/sec)
2017.05.08 07:40:39.600 Tester  EURUSD: ticks data begins from 2016.11.01 00:00
2017.05.08 07:40:39.600 Tester  complete optimization started
2017.05.08 07:40:39.600 Tester  size of initial task batch is 260
2017.05.08 07:40:39.612 Core 1  agent process started
2017.05.08 07:40:39.612 Core 1  connecting to 127.0.0.1:3000
2017.05.08 07:40:41.620 Core 1  connected
2017.05.08 07:40:41.622 Core 1  authorized (agent build 1598)
2017.05.08 07:40:42.771 Core 1  common synchronization completed
2017.05.08 07:40:42.797 Core 1  EURUSD: ticks synchronized already [43 bytes]
2017.05.08 08:04:54.332 Tester  optimization finished, total passes 260
2017.05.08 08:04:54.342 Statistics      optimization done in 24 minutes 16 seconds
2017.05.08 08:04:54.342 Statistics      local 260 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2017.05.08 08:04:54.342 Core 1  connection closed


今、MT5はMT4の1.7倍遅いです。


ZS すべてのランが完璧にマッチしているわけではありません。つまり、3つのうちどれかが嘘をついているのは間違いない(MT4+TDS、MT5、MT4Orders)。検索します。