対象通貨ペア:USDJPY(ドル円) / 使用時間足:5分足専用
今回は、10年間のバックテストを破綻せずに生き抜いた堅牢な「ロンドン初動ブレイクアウト」のロジックをご紹介します。 私たちはEA(自動売買)を設計する上で、24時間常に相場にエントリーし続けるシステムはノイズに巻き込まれやすいと考えています。そこで、1日のうちで最もボラティリティが急増し、トレンドが一方向に伸びやすい時間帯(日本時間16:00〜19:00)のみに特化したEAロジックを設計しました。
まずは、過去10年間にわたるバックテストの「リアルな数値データ」をご覧ください。
※これが過酷な全期間10年の市場変動を破綻せず生き抜いたダッシュボード(長期検証証拠)です。
| 項目 | 実績値 |
|---|---|
| プロフィットファクター (PF) | 1.85 |
| 勝率 | 68.2% |
| 総取引数 | 1,240 回 |
| 純利益 (0.1ロット/1万通貨時) | ¥124,500 |
| 最大ドローダウン | 4.8% |
上のダッシュボード画像の**「時間帯別損益グラフ(左下)」を見ていただくと分かる通り、利益の大半が16時〜18時に集中しており、私たちの仮説通り「ロンドン初動のエネルギー」を的確に捉えられていることが証明されました。また、「月次リターン・ヒートマップ(右上)」**の通り、特定の年(例えばコロナショック時など)に依存することなく、安定してプラスに着地しています。
今回の検証結果の「限界」と「ダメ出し」
しかし、結果を客観的に見ると、PF1.85という数字は立派ですが、勝率は68.2%に留まっています。 これは、ブレイクアウト手法の宿命である「ダマシ(フェイクアウト)」を完全には避けきれていない証拠です。特に、月次ヒートマップを見ると、夏枯れ相場(8月)や年末相場(12月)において、一時的なマイナス月が発生していることが分かります。 ボラティリティが極端に低下する時期は、無理にブレイクを狙うと往復ビンタを食らいやすくなります。
ロジックの技術的詳細
本ロジックのコア部分は以下のようになっています。単に時間を指定するだけでなく、「アジア時間のレンジ幅」を計算し、そこをブレイクした瞬間を狙います。
| 項目 | 設定内容 |
|---|---|
| エントリー時間帯 | サーバー時間 09:00〜12:00(日本時間 16:00〜19:00) |
| 基準レンジ | アジア時間(日本時間 09:00〜15:00)の最高値・最安値 |
| エントリー条件 | アジア高値を上にブレイクでLong、安値を下にブレイクでShort |
| フィルター | ADX(14) > 25 (トレンド発生時のみエントリー許可) |
| 決済ロジック | ATR(14) を用いたトレーリングストップ、または固定T/P |
以下は、判定ロジックのコア部分となるPythonコードの断片です。
# --- アジア時間の高値・安値の算出 ---
asian_mask = (df.index.hour >= 2) & (df.index.hour < 8) # サーバー時間
df['temp_high'] = df['High'].where(asian_mask)
df['asian_high'] = df.groupby(df.index.date)['temp_high'].transform('max')
# --- ロンドン時間でのブレイクアウト判定 ---
current_hour = df.iloc[-1].name.hour
is_trade_window = (current_hour >= 9) and (current_hour < 12)
# トレンドフィルター (ADX)
if is_trade_window and df['ADX'].iloc[-1] > 25:
if current_price > df['asian_high'].iloc[-1]:
execute_long_entry()
どう改善すべきか(次なる展望)
このロジックは、このままでも十分運用に耐えうる堅牢性を持っていますが、さらに勝率を上げるためには**「上位足の環境認識」**を追加することが有効です。 例えば、1時間足の移動平均線(SMA20)の傾きを見て、ロングブレイクはSMA20が上向きの時だけ許可する、といったフィルターを一つ足すだけで、無駄なダマシを半分以下に減らすことができるでしょう。
(ここから先は有料・会員限定エリアとなります)
【続きを見る】フルソースコードとMT5(MQL5)実装版の公開
本手法にご納得いただけた方に向けて、以下の有料枠にて全てのコードを公開いたします。
【有料エリアで提供するもの】
- Pythonフルソースコード(.py):ご自身のPython検証環境ですぐに回せる完全版コード。
- MT5用自動売買プログラム(.mq5 / .ex5):このロジックをMQL5言語に翻訳した完成版ファイルです。MT5に導入すれば、明日からすぐに実運用・フォワードテストが可能です。
このロジックをベースに、上位足フィルターを追加するなど、ご自身のアイデアを加えてカスタマイズする土台としても最適です。
👇 ソースコードのダウンロードはこちらから 👇