記事"MQL5でExpert Advisorを書くための初心者向けステップバイステップガイド"についてのディスカッション - ページ 31

 

MQL5のコーディングを学びたかったので、この記事を読み、コードをコピーしました。現在7つのEAといくつかのインジケーターを書きました。だから、自分のアイデアをコード化できる程度まで、MQL5を学ぶ道は順調に進んでいると感じています。


さらに。ストラテジーテスターに とても興味を持ちました。最初は、あまりにも基本的すぎて、うまくいくはずがないと思っていました。そんなことはない。機能する。しかし。私の場合、それは非常に忍耐力のある人にしか機能しなかった。そこで私はUSDCADの日足でテストし、利食い、損切り、ADXの期間を最適化した。簡単に言うとADXを真ん中に置くだけ。29以上60以下。それで大丈夫です。利食い。できるだけ高く。300と500の間。損切り。確実にもっと低く。155か30が繰り返された。それからが大きな問題だ。私は2019年から2025年初めまでテストした。最も高いADX設定の場合、75回から45回までの取引があった。これらのテストのうち5つのグラフを見た。2024年までは0付近で推移している。そして、すべての利益は最後の年にもたらされる。プロフィットファクターは1.77から2.61まで。全体に問題が多い。ショートはすべて損失。ロングの86%は利益を上げている。多くの取引は期間が長かった。一般的に10日以上。最長保有時間は3440時間だったと思う。平均は846時間だった。ペイオフも非常に高くなる可能性があると感じたが、6年後に20回以下のトレードに制限されたい人はいるだろうか?


私は何日もかけて33000通りもの組み合わせを試した。今、私はさらにテストし、タスクを大幅に減らすつもりだ。55以上のADX値は必要ない。ストップロスが30では、たとえそれで多くの収益性を見たとしても、低すぎます。最後のポイントとして。複数のPC/ノートPCをLANで接続して速度を上げることができるそうです。それをお勧めする。

 

検証は、単に最適な最適化結果 を選定するだけにとどまるべきではないという点には同意します。私がもう一つ懸念しているのは、検証手順そのものが過学習に陥る可能性があるということです。

例えば、結果を確認した後に、ウォークフォワードのウィンドウやモンテカルロの仮定、パラメータの摂動範囲、あるいは取引コストの仮定を繰り返し変更してしまうと、最終的には検証プロセスそのものを最適化してしまう恐れがあります。

より堅牢なアプローチとしては、最終的なOOS結果を確認する前に検証プロトコルを定義し、一度しか使用しない最終期間を完全に手付かずのまま残しておくことだと思います。

適応型EAについては、レジーム検出パラメータを取引パラメータとは別に検証すべきかどうかについても疑問に思っています。このアプローチを試した方はいらっしゃいますか?

 

これは、ストラテジーテスターを使った初期の体験について、非常に詳細なまとめですね。

いくつか提案をさせていただければと思います:

ステップ#1では、まずブローカー・ディーラーのティックデータの品質を確認すべきです。そのプロセスを自動化する非常に優れたスクリプトが、以下のURLにあります:

Code Base

ティック監査 - 実際のティック履歴を確認し、月ごとのバックテストの品質を検証する

Ayaz、2026年9月5日 06:13

対象銘柄に実際にティックデータが存在するか、それともバーデータのみかについて、月ごとにレポートを出力します。これにより、バックテストの結果を信頼する前に、どの部分が生成されたティックデータに基づいて実行されたかを把握できます。ストラテジーテスターはテスト終了後に「ヒストリー品質」という数値を1つ表示するのみであり、どの月に問題があったかは決して示しません。このスクリプトは、まずその点を確認します。

ステップ2では、お使いのブローカー・ディーラーの履歴データを用いて、「実際のティックに基づく全ティック」でテストを行うべきです(まだそうしていない場合のために)。お使いのPCのスペックによっては、特に古いマシンでは、処理を分割して行う必要があるかもしれません。

ステップ #3 では、すでに開始しているテスターレポートの評価を行うべきです。連続損失の平均回数と最大回数に細心の注意を払ってください。リアルタイムでの連続損失回数が平均連続損失回数を上回った場合は、ポジションサイズを縮小することを検討した方が良いでしょう(詳しい説明は私のプロフィールページに掲載しています)。 また、EAが利益を上げている時間帯(時間、日、月)にも注目してください。エントリー時間はネイティブではサポートされていないため、補助レポートを生成するユーティリティを作成しました(https://www.mql5.com/en/blogs/post/774010)。 取引時間フィルター(https://www.mql5.com/en/blogs/post/770147)を導入することをお勧めします。

余談ですが、利益を上げているポジショナル(長期)トレーダーは数多く存在します。もしあなたの個人的な目標がその取引スタイルと合致しているなら、取引頻度についてはあまり気にする必要はないでしょう。私見ですが、HFTやMFT戦略よりも、利益を出すLFT戦略を構築するほうがはるかに簡単だと思います。

Profit By Deal-Entry-In Per Hour Report for MT5 (unlike deal-entry-out in the native Tester Report)
Profit By Deal-Entry-In Per Hour Report for MT5 (unlike deal-entry-out in the native Tester Report)
  • 2026.08.12
  • www.mql5.com
As the MT5 Tester does not natively support reporting hourly profit and loss by deal-entry-in (only deal-entry-out), I created this MQL5 Service to to generate custom backtest reports limited to, and