Web Lukes
📄

【読者リクエスト】ブレイクアウト3手法を徹底比較!ZigZag vs 3日高値安値 vs 20本高値安値

公開日: 2025/12/21

読者リクエストに応えます!🙌

先日、読者さんから熱いリクエストをいただきました:

「ブレイクアウト手法について整理がつかないのでリクエストお願いします。ZigZag、3日高値安値、20本高値安値を比較してほしい。通貨によって結果が真逆になるようなので、ドル円・ビットコイン・ゴールドでお願いします」

これは面白いテーマですね!通貨によって最適な手法が違うという仮説、データで検証してみましょう。

検証条件

項目設定
期間2021年7月〜2024年12月(約3.5年)
対象USDJPY、BTCUSD、XAUUSD(ゴールド)
時間足1時間足(エントリー)/ 日足(レベル計算)
SL/TPUSDJPY: 30/50pips、BTC: $1000/$2000、Gold: $10/$20
スプレッドUSDJPY: 0.3pips、BTC: $50、Gold: $0.3

3つの手法の定義

Python
# 1. ZigZag風ブレイクアウト
# 5日間のスイングハイ/ローを検出し、そのレベルをブレイクでエントリー
df['swing_high'] = df['high'].rolling(5, center=True).max()
df['swing_low'] = df['low'].rolling(5, center=True).min()
# 2. 3日高値安値ブレイクアウト
# 過去3日間の高値/安値をブレイクでエントリー
df['high_3d'] = df['high'].rolling(3).max().shift(1)
df['low_3d'] = df['low'].rolling(3).min().shift(1)
# 3. 20本高値安値ブレイクアウト(1時間足)
# 過去20本の高値/安値をブレイクでエントリー
df['high_20'] = df['high'].rolling(20).max().shift(1)
df['low_20'] = df['low'].rolling(20).min().shift(1)

結果サマリー

USDJPY(ドル円)

USDJPY 3手法比較

手法勝率平均pips累計pips取引回数
ZigZag58.3%+14.99+8,349557回
3日高値安値58.9%+14.77+10,825733回
20本高値安値57.4%+14.13+17,8591,264回

💡 USDJPYの結論: 3手法ともほぼ同等のパフォーマンス!取引回数が多い「20本高値安値」が累計では最強。


BTCUSD(ビットコイン)

BTC 3手法比較

手法勝率平均$累計$取引回数
ZigZag44.8%+143+53,966377回
3日高値安値47.0%+153+74,048483回
20本高値安値42.1%+48+62,1221,301回

💡 BTCの結論: 「3日高値安値」が最強!ボラティリティが高いBTCでは、より長い期間でのレベル設定が効果的。


XAUUSD(ゴールド)

ゴールド 3手法比較

手法勝率平均$累計$取引回数
ZigZag93.5%+17.75+10,080568回
3日高値安値91.4%+17.12+12,363722回
20本高値安値92.9%+17.56+25,3771,445回

💡 ゴールドの結論: 驚異の勝率90%超え!どの手法でも利益が出るが、取引回数で「20本高値安値」が圧勝。


時間帯別分析

読者さんが「東京時間が意外と良い結果だった」と言っていたので、時間帯別にも検証しました。

USDJPY 時間帯×手法

USDJPY 時間帯別

時間帯ZigZag3日高値安値20本高値安値
東京59.3% / +15.2p58.6% / +14.2p58.2% / +13.6p
ロンドン58.6% / +16.0p58.7% / +15.0p60.6% / +16.9p
NY55.2% / +14.3p53.5% / +11.3p56.4% / +13.8p

発見: ロンドン時間×20本高値安値の組み合わせが最強(勝率60.6%、平均+16.9pips)!

BTC 時間帯×手法

BTC 時間帯別

BTCは24時間市場なので時間帯の差は小さいですが、3日高値安値がどの時間帯でも安定しています。

ゴールド 時間帯×手法

ゴールド 時間帯別

ゴールドはどの時間帯でも勝率90%超えという驚異的な結果。特に東京時間が安定しています。


通貨横断まとめ

読者さんの仮説「通貨によって結果が真逆になる」を検証した結果:

最適手法は通貨で異なる!

通貨最適手法理由
USDJPY20本高値安値取引機会が多く、累計利益が最大
BTC3日高値安値高ボラでも安定、平均利益が最大
ゴールド20本高値安値圧倒的な取引回数で累計利益が最大

スプレッドコストの影響

スプレッドコストを考慮すると:

  • USDJPY: 0.3pips × 1,264回 = 379pipsのコスト
  • BTC: $50 × 483回 = $24,150のコスト
  • ゴールド: $0.3 × 1,445回 = $434のコスト

重要: スプレッドの安い業者を選ぶことで利益率は大きく改善します。


検証コード(高速版)

読者さんからの質問が多いので、検証コードも公開します。

高速化のポイント:

  1. ベクトル化処理(NumPy/Pandas)
  2. ブレイクアウトレベルを事前計算
  3. 最大有利幅/逆行幅を一括計算
Python
import MetaTrader5 as mt5
import pandas as pd
import numpy as np
def find_breakouts_vectorized(df_h1, levels, direction, max_hours=24):
"""
ブレイクアウトをベクトル化で高速検出
"""
results = []
df_h1 = df_h1.copy()
df_h1['date'] = df_h1.index.date
df_h1['hour'] = df_h1.index.hour
dates = sorted(set(df_h1['date']) & set(levels.keys()))
for date in dates:
level = levels[date]
if pd.isna(level):
continue
mask = df_h1['date'] == date
day_data = df_h1[mask]
# ブレイクアウト検出
if direction == 'long':
hit_mask = day_data['high'] > level
else:
hit_mask = day_data['low'] < level
if not hit_mask.any():
continue
# 最初のブレイク時点を特定
entry_idx = hit_mask.idxmax()
entry_pos = df_h1.index.get_loc(entry_idx)
after_data = df_h1.iloc[entry_pos:entry_pos + max_hours]
# 最大有利幅・逆行幅を一括計算(SL/TP判定用)
if direction == 'long':
max_favorable = after_data['high'].max() - level
max_adverse = level - after_data['low'].min()
else:
max_favorable = level - after_data['low'].min()
max_adverse = after_data['high'].max() - level
results.append({
'date': date,
'max_favorable': max_favorable,
'max_adverse': max_adverse,
})
return results
def calc_sltp_result(max_favorable, max_adverse, sl, tp, pip_unit):
"""SL/TP結果を高速計算"""
if max_favorable >= tp * pip_unit:
return tp * pip_unit, 'tp'
if max_adverse >= sl * pip_unit:
return -sl * pip_unit, 'sl'
return None, 'time'

全コードはGitHubリポジトリで公開予定です。


まとめ

読者リクエストにお答えして、3つのブレイクアウト手法を徹底検証しました。

結論

  1. 通貨によって最適手法は異なる(読者さんの仮説は正しかった!)
  2. 20本高値安値は取引機会が多く、累計利益で有利
  3. 3日高値安値はBTCのような高ボラ銘柄で威力を発揮
  4. 時間帯フィルターはUSDJPYで効果的(ロンドン時間がベスト)
  5. ゴールドは驚異の勝率90%超え(どの手法でも勝てる!)

次回予告

ATRフィルターの効果検証も実施予定です。お楽しみに!


質問・リクエストがあればコメントください! データ駆動型の検証で、トレード戦略を一緒に磨いていきましょう 📊

🎁おすすめツール・サービス

FX自動売買VPSなら50%OFF

キャンペーンで月1,790円〜。MT4/MT5プリインストール済み、自動復旧機能付き。14日間無料お試し。

シンクラウドデスクトップ for FX
ゴトー日EAを探しているならソースコード付

4年で資金4.7倍のバックテスト実績。ソースコード付きで自由にカスタマイズ可能。

ゴトー日EA Ultimate版(3,980円)

※上記リンクにはプロモーション(広告)が含まれています

🔮
MEMBERSHIP

量子相場謀略|ホソノP

ブログでは書けない本音のトレード戦略とEA開発の裏側を公開。 データに基づいた検証で、再現性のある手法だけをお届けします。

✓EAソースコード公開
✓バックテスト生データ共有
✓リアルタイム相場分析
✓メンバー限定記事
メンバーシップに参加する※ noteアカウントで簡単登録

📚あわせて読みたい

📄

【ブレイクアウト続編】ATRフィルターは本当に効果があるのか?3通貨で徹底検証

前回のブレイクアウト3手法比較に続き、ATRフィルターの効果を検証。高ボラ時のみトレードすべき?ATR期間・倍率の最適解をUSDJPY・BTC・ゴールドで分析!

fx2025/12/21
📄

😲 Pythonで30通貨ペア×1万通りを全探索!スプレッド拡大を考慮したら結果が激変した話

FXアノマリー自動探索装置で保有期間1〜10時間を検証。最初は『朝6時ショート最強!』と思ったら、スプレッド拡大を考慮したら全部消えた...本当に使える戦略はゴールドのロングだった

fx2026/1/20
📄

【残酷な真実】ボリンジャーバンド2σタッチで逆張り、本当に勝てる?5年検証の結果…

『2σにタッチしたら逆張り!』という定番手法を5年分のデータで検証。結論から言うと、単純な逆張りは危険。でも、ある条件を加えると…?

fx2025/12/21
📄

【指標トレード】発表後に遅れてエントリーしたら勝てるのか?NFP・FOMC・CPIで徹底検証

経済指標発表後、何分遅れでエントリーすべき?順張りvs逆張り、どちらが有利?NFP・FOMC・CPIの3大指標で遅延エントリー戦略をバックテスト検証!

fx2025/12/21
📄

【保存版】移動平均線クロス、結局どの組み合わせが最強?5年分のデータで徹底検証

ゴールデンクロス・デッドクロスのパラメータを総当たり検証!5MA×25MA、20MA×75MA、25MA×200MA…結局どれが一番儲かるのか、USDJPY5年分のデータで決着をつけます。

fx2025/12/21
📄

😤「複利で資金増えたのにDD耐えられず停止」←これ俺だ。ゴトー日EA複利vs単利を本気で検証した話

ゴトー日EAで複利運用したら精神的に耐えられずEA停止してしまった実体験から、複利と単利どちらを採用すべきか2年間152トレードのデータで徹底検証。DD金額の真実が明らかに。

fx2024/12/19