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

 

テストを開始する際(Strategy Testerの "Start "をクリックする)、Testerエージェントは必要なファイル(DLLを含む)を内部のMQL{Librariesフォルダにコピーしていないようです。 2つの事象を確認しました。

EAに「Test.dll」ファイルがある場合。

1) Strategy Tester が Test.dll.ex5 ファイルが見つからないと文句を言う。

2) テストエージェントが Test.dll を内部フォルダにコピーしないため、Strategy Tester は Test.dll が見つからないと文句を言う。

% appdata% ♪ Roaming ♪ MetaQuotes ♪ Tester ♪ <MT5 ID> ♪ Agent-127.0.0.1-3000 ♪ MQL5 ♪ Libraries

 
Rashid Umarov:

禁止事項はなかった

深刻なIP遮断があり、サーバーが利用できない状態でした。パスワードが間違っているはずなので、アノニマイザーでログインすることは不可能でした。

一般的に、悪意のあるユーザーから自動的に保護する標準的なものです。

 
Luis:

テストを開始する際(Strategy Testerの "Start "をクリックする)、Testerエージェントは必要なファイル(DLLを含む)を内部のMQL{Librariesフォルダにコピーしていないようです。2つの事象を確認しました。

EAに「Test.dll」ファイルがある場合。

1) Strategy Tester が Test.dll.ex5 ファイルが見つからないと文句を言う。

2) テストエージェントが Test.dll を内部フォルダにコピーしないため、Strategy Tester は Test.dll が見つからないと文句を言う。

% appdata% ♪ Roaming ♪ MetaQuotes ♪ Tester ♪ <MT5 ID> ♪ Agent-127.0.0.1-3000 ♪ MQL5 ♪ Libraries

Strategy Testerでも 同じエラーが発生しました!?

2020.02.25 02:03:35.725 Tester ファイル ***.dll.ex5 オープンエラー [2]。

ライブラリの名前を変更(拡張子.ex5を追加)すると、別のエラーが発生します。

2020.02.25 02:09:32.567 2020.02.18 00:00:00 'Receive_Information' を呼び出せない、 '***.dll' はロードされていない。

2020.02.25 02:09:32.568 2020.02.18 00:00:00 未解決のインポート関数コール



 
Slava:

停止ボタンを押した状態で正確に再現。

責任を持って最適化を行う必要がある場合は、Stopボタンを押さずにTerminalを再起動してから行った方がよいでしょう。

 
fxsaber:

責任を持って最適化を行う必要がある場合は、Stopボタンを押さずにTerminalを再起動してから行った方がよいでしょう。

可能性がある。しかし、それに頼ってはいけない。

この動作(停止ボタンを押したときの動作)は修正されており、最新リリースに修正版が含まれています

 
Slava:

可能性がある。しかし、それに頼ってはいけない。

この(停止ボタンでの)動作は修正され、最新リリースに修正版が含まれています

そうすると、最適化パスがシングルパスと同じでない理由をもう一度探さなければなりません。

 
fxsaber:

そうすると、最適化パスがシングルパスと同じでない理由をもう一度探さなければならない。

テストの専門家がミリ秒単位の刻みをカウントして矛盾を与えていないか?

これで問題を捕らえ、同じExpert Advisorで確認したところ

 
Slava:

テスト用EAでミリ秒単位のティックをカウントすると矛盾が生じるのか?

その上で問題を捕らえ、同じ専門家によるチェックを受ける

2340のこのEAでは、それ以上の乖離は見られませんでした。


ライブEAで発生したパスミスマッチ。前回証明された方法を使うことにします。

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

MetaTrader 5 Strategy Tester: バグ、不具合、改善のための提案

fxsaber, 2020.02.20 08:57

GA最適化の際に得られた時間軸の統計データを比較してみました。そして、シングルパスのステイタスを。


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

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


そのためには、かなりの時間がかかるのですが...。

 
実験環境

MT5 ビルド2342ベータ版
成行注文を行わないEA(保留注文のみ)
16487771 ticks カスタムシンボルデータ
現地テストエージェント4社
物理CPU4コア、32GRAM、Windows 7 x64


実験方法

各リアルトレーディング業務に対応するバーチャルトレーディング業務を設定する。

FrameAdd () と FrameNext () 関数を使用して、最適化プロセスからいくつかの情報を出力し、ローカルのテキストファイル (Excel A to T) にログを記録します。


実験結果

最適化タスクが完璧に完了し、1回のテストと同じ正しい結果が得られる確率は20%以下です。

しかし、大半の場合、最適化タスクが返す結果はすべて間違っている。



1回のテストと最適化テストの成功の間、実取引と仮想取引操作の結果はすべて同じです。

失敗した最適化テストでは、仮想取引だけが正しい取引結果を返すことができ、実際の取引オペレーションが返すデータ(取引回数や利益額など)はすべて間違っているのです。

(通常の場合、実際の取引業務では、OrderSend()関数が正しく呼び出され、OnTradeTransaction()とOnTrade()で取引状況情報がフィードバックされます)。

B:オーダーパス番号
D:ダニ処理量
F: 全てのアスク価格の合計
H:全入札価格の合計
J:仮想保留注文の数量
L:バーチャルトレードの数量
N:バーチャルトレーディングの純利益

P: 実際の保留注文の数量
R:実質取引量
T:実物取引の純利益


D列からN列までのすべての値が正しい(緑のボックス)ことは、最適化タスクにおけるティックデータ処理が常に正しく行われることを意味します。


赤枠の値が間違っている。

1.Pについて
PはJと全く同じであるべきです。なぜなら、バーチャルもリアルも同じ前提条件のもとで保留されている注文の数を数えるべきだからです。
前提条件を満たしている場合は、保留のコードブロック、P ++を直ちに入力してください。 その後、OrderSend()を入力します。
Pの結果が極端に異常なのは、同じ条件でプログラムを実行したときに、後続の命令が正しくジャンプする(J)ときと、正しくジャンプしないときがあることを意味しています。

2.Rについて
RはOnTradeTransaction()でカウントされる。
Pのオーダーは、トリガーされた場合、Rにカウントされるはずです。
すべてのRゼロは、EA実行中の実際の取引活動がOnTradeTransaction()に入らなかったことを意味します。
おそらく、現在のPの結果はランダムエラーに過ぎず、意味のあるペンディングではないからではないでしょうか?

3.Tについて。
Tの損益はRのポジションから発生するはずです。
Rのポジションカウンターが全てゼロの場合、Tの損益計算はどこから行うのでしょうか?


4.最後に一言。
Pの値はストラテジーテスターが返す "Total Trades "の値に非常に近いですが、全く同じではありません。
複数回テストした結果、「Total Trades」の値は、EAの入力最適化パラメータと常に同じ算術順序で、同じステップ値になっているようです。
入力パラメータが等差数列になるのは当たり前ですが、意味が全く関係ない変数の値も同じような等差数列になるのですか?

 

なぜモデレーターがここに駆けつけ、代わりに 投稿を削除して放置 しないのでしょうか。

<DELETED>

このフォーラムは英語のフォーラムです

英語で投稿する

?ダブルスタンダード?