テストと評価
MT5 EA バックテストが遅い理由: ソースコードのチェックリスト
迅速なテストは、コストのかかる作業を特定することから始まります。非視覚的な実行では、アニメーション チャートが表示されない場合でも、計算の繰り返し、ログ出力、タイマー イベントに時間がかかることがあります。
スタートアップを定常状態の作業から分離する
履歴 - ダウンロード時間、初期化時間、および短い反復可能な間隔の速度を記録します。最初の実行はデータを待機している間、後の実行は実際のシミュレーションを実行している可能性があります。速度の変化がコードに起因するかどうかを判断する前に、同じコンパイル済みファイル、入力、モデル、日付を使用して実行を比較します。
繰り返しの動作を検査する
繰り返し作成されたインジケーターハンドル、不必要に大きな履歴コピー、ティックごとの過去のすべての取引のスキャン、およびタイトなループ内の冗長な Print 呼び出しを探してください。安定した情報をキャッシュし、実際に必要なデータのみをリクエストすることを検討してください。基礎となる環境が変更される可能性がある場合は、キャッシュされた値を更新します。
表示作業を取引決定から分離する
表示パネルは、適切なタイマーで更新することも、内容が変更された場合にのみ更新することもできます。チャートの再描画をすべての決定に結び付ける必要はありません。ただし、単にテストを速くするために、トレーリングストップ、取引ポジション保護、またはティックに敏感なエントリーを新価格ローソクゲートの後ろに移動しないでください。それによって戦略が変わります。
意図した動作が生き残ったことを証明する
- 一定の間隔でベースラインを実行し続けます。
- 測定されたボトルネックを 1 つ変更します。
- エントリ、イグジット、ボリューム、およびサマリーメトリクスを比較します。
- 速度の向上を受け入れる前に、相違点を確認してください。
- 代表的な長い間隔で繰り返します。
MQLume で自分のものにしましょう
ここで、編集可能なソースが特に価値を持ちます。 MQLume プロジェクトでは、EA 内の作業を検査し、焦点を絞った改善を構築できます。探検するThe Gold Reaper MT5開始プロジェクトとして。