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

Vasiliy Sokolov  

MetaTrader 5のストラテジーテスターは、現在MQチームによって徹底的な改訂が行われています。過去2年間に多くの作業が行われたにもかかわらず(MetaQuotesチームに感謝)、このテスターは多くの疑問を投げかけています。残念ながら、最近の変更は、初心者がより簡単に操作できるようにテスターの外観に重点を置いたもので、その一方で、その仕組みについては、より経験豊富なユーザーから疑問の声が上がっているのが現状です。

このスレッドをMetaTrader 5テスターの建設的な批判に捧げ、開発者と連絡を取ることができる場所にすることを提案します。

すべての発言/議論/批判/反論は、明確な論拠と再現性のある結果で裏付けられている必要があります。実行と価格設定メカニズムに焦点を当てた議論を 行うべきである。フリルやアイコン、真空中の球体馬などの欲望(全コアをロードさせたい、1回の実行でマルチスレッドにしたい、など)は、禁止はしないが歓迎はしない。

では、行ってみましょう。


MetaTrader 5のテスターで指値注文の実行がスキップされる。

1.バイナリファイルに配列MqlTiskとしてカスタムティックを与える(投稿に添付)。

2.カスタムデータは専用のスクリプトで処理され、ツールヒストリーにロードされます。スクリプトもメッセージに添付しています。

3) 出来上がったチャートにExpert Advisorを起動し、そのロジックに従って取引を実行する。Expert Advisorは、リアルティクモードで動作します。

4.00:11:05:085の時点で、価格10422.5で指値注文が発注されており、発注した瞬間の現在価格は10422.0である。

5.00:11:06.179の時点では、Last priceは10424.0であった。取引所価格のルールでは、SellLimit注文は10422.5の価格で執行されるはずですが、そうはなりません。指値注文は宙に浮いているようで、完全な降伏を示している:取引は、我々より悪い価格を提示する他の誰かと行われる

6.しかし、奇跡は起こり始める。1024.0から10419まで反転して下落します。すなわち、指値注文の売りレベルが上から下へ貫通している。しかし、指値注文も宙に浮いている。

残念ながら、何が起こっているのかを示すログは見つかっていません。テスターのログが単に消され、printfが効かないという感じはありますね。テスターのログへの出力はOFFになります。

とにかく、今までなかった別の問題が発生したようです。

この関連で、私は何が起こるかはっきりわかるビデオを録画しました(最も興味深いのは約30秒からです。画面上部には、現在時刻がミリ秒単位で表示されます)。



動画では、バーの範囲が指値注文のレベルを突き抜けていることが明確に示されていますが、約定は行われません。

テスターへの質問は他にもあります。しかし、今は対処することが必要だと思います。

ファイル:
Vasiliy Sokolov  

MetaTrader 5 テスターでバーが正しく構築されない

これは前回の記事(同じデータ)のカスタムシンボルです。 シンボル設定で指定されたLast priceでバーが描画 されます。

左はテスターで描かれたバーです。右側には、初期のバーが表示されています。

チャートが完全に一致しないことがおわかりいただけると思います。左のほうにゴミがある。

S.w. Bidで構築されたと思っていたのですが、ディールリストを見てみると、そのような価格はBidにもLastにもAskにもないことがわかりました。以下に、テキスト形式のディールフィードを添付します。

ファイル:
deribit_csv.zip  735 kb
Slava  

ビルド番号を教えて ください。

ログに残る非常に奇妙な時間 0000.00.00 00:00:00.000

お使いのOSは?

テスターのデータフォルダに、拡張子がlogのファイルが保存されていますか?

Slava  

1.ファイル "deribit1.out.bin "が与えられていません。添付のアーカイブ "deribit1.out "内。

2.カスタムキャラクター 設定を行わなかった

fxsaber  
私はBidでバーを作っています。Bid/AskによるLimitの実行が行われる。すべて(正確には2093年、それ以上は確認していない)正しく動作しています。
fxsaber  
Vasiliy Sokolov:

あなたが無視している良い機能

MqlTick tiks[];

if (FileLoad("deribit1.out.bin", ticks))
{
// ....
Vasiliy Sokolov  
fxsaber:

あなたが無視している良い機能です。

知っておいて損はない。

Vasiliy Sokolov  
Slava:

ビルド番号を教えて ください。

ログに残る非常に奇妙な時間 0000.00.00 00:00:00.000

お使いのOSは?

テスターのデータフォルダに拡張子がlogのファイルが保存されていますか?

ビルドは最新のものです。2136.いつも最新のものを使っています。

Windows 7 SP1

ログが保存されます。ログはストラテジーテスターのログに表示されます。しかし、ストラテジーテスターのビジュアライザーのログには何も表示されません。


Slava  
Vasiliy Sokolov:

失礼しました。

ありがとうございます(苦笑)。私たちに任せてください。

Good Beer  

主な提案は、テストの自動化であることは間違いありません。

ウォークフォワード最適化とか、そういうのをやってください。テストは、いくつかの期間と装置で行う必要があります。

それが嫌なら、プログラミング工学(学位?)を持ってない人にMQLツールでやらせればいいしね。

そのためには、テスト期間の開始と終了、フォワード期間の開始、新しいテスト期間でテスターを再開するための読み出しと書き込み(Get__ \Set__)の可能性が必要です。

また、利用可能なフレーム処理設備が正しく動作しない。これについては、すでにここで 十分な説明がなされています。

別のバグ:前進期間を有効にし、以前のパラメータでテスターを再起動すると、ハングアップしてしまいます。インスタンス、タイムフレーム、インストゥルメントを変更したり、Expert Advisorを再コンパイルする必要があります。

最後に公開された ビルドはまだ2085年です。

理由: