MetaTrader 5 Strategy Tester: バグ、不具合、改善のための提案 - ページ 59

 
Sergey Chalyshev:

最適化結果行のパラメータは正しく、テスターのログにあるパラメータと一致していますが、Expert Advisorは全く異なるパラメータでテスト用に実行されています。

Expert Advisor 自身から入力パラメータの設定を解除しています。一致した。

 
fxsaber:

ただ、元のシンボルのデータとカスタムのデータが完全に一致するんです。しかし、カスタムの方はエラーなく通過し、オリジナルの方はエラーなく通過します。

どうやら、要領を得なかったようです。スクリプトはcsvを書き出すだけです。どのようにテストを実行するのですか?

 
Andrey Khatimlianskii:

どうやら、要領を得なかったようです。スクリプトはcsvを書き込むだけです。試奏の様子はいかがですか?

スクリプトは、これらのcsvからカスタムシンボルと オリジナルシンボル(サーバー側でインポート)を作成 します。

つまり、2つのシンボルはバーとティックの両方で同一の気配値履歴を持っています。

 
fxsaber:

スクリプトは、これらのcsvからカスタムシンボルとオリジナルシンボル(サーバー側でインポート)を作成します。

すなわち、2つのシンボルはバーとティックの両方で同一の気配値履歴を持っています。

これは言及されるべきでした。

MT5サーバーが履歴と連動する仕組みがわからない。

 
フレームモードのAdvisorがAbnormal Terminationで終了し、その後1GBのmqdファイルの読み出しが拒否されました。Terminalを閉じ ると、mqdが2GBに増えていました。つまり、TerminalはmqdのFileCloseを行わなかったのです。
 

ジェネティクス中に、FrameNextからの パス番号とoptファイルからのパス番号が一致しない。

例えば、FrameNextは10041014291を、optは2465を返します。

その差の理由は何でしょうか?どのように合わせればいいのでしょうか?

GUIテーブルでは、パス番号の代わりに2つの番号が表示されます。しかし、Optimization後にoptファイルを再度開くと、すぐにパス番号が空値になってしまいます。


GAのために明確にしてください。


GA対シングルGAのミスマッチを再現する方法を習得した。保存されたGAは、フレームの統計情報を通過します。しかし、1万本のパスの中から気になる1本を特定することはできない。Pass in FrameNextとPass in optは異なる値であるため。

 
fxsaber:

ジェネティクス中に、FrameNextからのパス番号とoptファイルからのパス番号が一致しない。

例えば、FrameNextは10041014291を、optは2465を返します。

その差の理由は何でしょうか?どのように合わせればいいのでしょうか?

GUIテーブルでは、パス番号の代わりに2つの番号が表示されます。しかし、最適化後にoptファイルを再度開くと、すぐにパス番号が空の値になってしまいます。


GAのために明確にしてください。


GA対シングルGAのミスマッチを再現する方法を習得した。保存されたGAは、フレームの統計情報を通過します。しかし、1万本のパスの中から気になる1本を特定することはできない。Pass in FrameNextとPass in optは異なる値であるため。

2つの番号 - 世代番号、個人番号

空の場合、optファイルから結果をロードする(つまり、以前の遺伝的最適化の結果)

遺伝子の種類は2つあります

1.パラメータ空間は64ビット数に制限されます。この場合、遺伝子型番号によるパラメータ構成計算は、単純な算術演算の 集合に還元される。

2. パラメータ空間は、下から最大64ビット、上から最大1024ビットに制限されています。遺伝子型をより複雑なパラメータに変換したもの。フレームにはパス番号の下位64ビットしか含まれないので、番号の不一致と思われます。

最適化に新しいパラメータが追加されたり、既存のパラメータの開始-停止が変更されたりすると、すぐに全体の番号が変更されます。したがって、パス番号で判断するのではなく、パラメータの構成で判断してください

Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
  • www.mql5.com
Операция инкремента и декремента применяются только к переменным, к константам не применяются. Префиксныe инкремент (++i) и декремент (--k) применяются к переменной непосредственно перед использованием этой переменной в выражении. Могут возникнуть вычислительные проблемы при переносе вышеуказанного выражения из одной среды программирования в...
 
Slava:

2つの番号 - 世代番号、個人番号

空の場合,optファイルから結果がロードされます(つまり,前回の遺伝的最適化からの結果です)

遺伝子の種類は2つあります

1.パラメータ空間は64ビット数に制限されます。この場合、遺伝子型番号によるパラメータ構成計算は、単純な算術演算の 集合に還元される。

2. パラメータ空間は、下から最大64ビット、上から最大1024ビットに制限されています。遺伝子型をより複雑なパラメータに変換したもの。フレームには最大64ビットのパス番号しか含まれないため、番号の不一致と思われます。

最適化に新しいパラメータが追加されたり、既存のパラメータの開始停止が変更されたりすると、すぐに全体のナンバリングが変更されます。だから、パス番号で判断しないで、パラメータの構成で判断してください

ありがとうございます。では、FrameNext_Passとopt-Passはどのようにマッチングさせるのでしょうか?

 
fxsaber:

GAとシングルの不一致を再現するために学習。GAがフレームのスタッツを通過するのを保存。しかし、10Kパスの中から気になるものを特定することができない。Pass in FrameNextとPass in optは異なる値であるため。

矛盾の原因を発見!


GA最適化の際にフレームを通して得られたスタックを比較した。そして、1枚のパスの積み重ね。


フレームステートでは、履歴にないティックに基づいて実行されます:私はすぐに、ちょうど1秒で実行される多くの取引/注文があることに気づきました。

例えば、履歴のシングルパスには2019.06.04 02:00:00.206の エントリーがありますが、フレームパスは2019.06.04 02:00:00.000(ティック履歴にはその時間のティックはありません)です。


GA最適化は、シングルパスとは異なるティック履歴で進むのですそして、この歴史は常に異なるものではありません。例えば、GAを小さい間隔でやると、そこそこいいんですよ。


タイマー使用に対するZZYの疑惑が払拭される。EAにタイマーはありません。

 
fxsaber:

矛盾の原因を発見!


GA最適化時のフレームごとの統計情報を比較した。そして、1枚のパスの積み重ね。


フレームステートでは、履歴にないティックに基づいて実行されます:私はすぐに、ちょうど1秒間に実行される多くの取引/注文があることに気づきました。

例えば、履歴のシングルパスには2019.06.04 02:00:00.206の エントリーがありますが、フレームパスは2019.06.04 02:00:00.000(ティック履歴にはその時間のティックはありません)です。


GA最適化は、シングルパスとは異なるティック履歴で進むのですそして、この歴史は常に異なるものではありません。例えば、GAを小さい間隔でやると、そこそこいいんですよ。


タイマー使用に対するZZYの疑惑が払拭される。EAにタイマーはありません。

実際のティックでのテスト/最適化?

エージェントは自社製ですか、それともクラウドからですか?

カスタムシンボルでの テストの場合、クラウドエージェントは対象外です。つまり、エージェントが社内にいて、そのログを引き、履歴がどのように同期されたかをログで確認することができるのです