🥇【衝撃】ゴールドロールオーバーにSL/TPつけたら97%の設定で悪化!441パターン検証で判明した真実
🤔 よくある質問
ゴールドロールオーバー戦略について、こんな質問が多い。
「ゴールドはボラが大きいからSL必須でしょ?」
「TPつけないと利益取り逃しませんか?」
いい質問だ。俺も気になってた。
💡 私の仮説
「ゴールドロールオーバーにSL/TPをつけると、期待値が下がる」
理由はシンプル。
ゴールドは長期上昇トレンド。
考えてみてください。
ゴールドロールオーバー戦略は「JST 04:00〜14:00のロング」。
この時間帯、ゴールドは基本的に上昇傾向(前回の時間帯分析で証明済み)。
でもSL/TPを設定すると...
SLに引っかかる = 上昇途中で強制的にショート(売り)TPに引っかかる = 上昇途中で強制的にショート(売り)どっちも「上昇中にショートを建てる」のと同じじゃね? 🤔
これが本当なら...
SL/TPをつけるほど、アノマリーの恩恵を潰してしまう。
でも本当にそうなのか?
441パターン検証するしかない! 🔥
🎯 検証内容
「SL/TPの全組み合わせを総当たりで検証」
- SL: 0〜200pips(10pips刻み)= 21パターン
- TP: 0〜200pips(10pips刻み)= 21パターン
- 総組み合わせ: 441パターン 🤯
※ゴールドのpipsは $0.1 = 1pip なので、100pips = $10 の変動
🔬 検証環境
📈 銘柄: XAUUSD(ゴールド)⏰ 時間足: 5分足(SL/TP判定用)📅 データ: 約2年10ヶ月分(200,000本)🎯 トレード数: 567回⏰ エントリー: JST 04:00💰 決済: JST 14:00(SL/TPに引っかからなければ)🚨 結果発表:衝撃の97%悪化
ベースライン(SL/TPなし)
| 項目 | 結果 |
|---|---|
| トレード数 | 567回 |
| 勝率 | 58.4% |
| 平均pips | +20.01 |
| 総pips | +11,348 |
そもそもベースラインが強すぎる。
勝率58.4%で平均+20pips。これを超えるのは難しい。
SL/TP設定後の結果
| 設定 | ベースライン比 | 割合 |
|---|---|---|
| ベースラインより良い | +0.05〜+4.35 pips | 13/441 (2.9%) |
| ベースラインより悪い | -0.05〜-39.47 pips | 427/441 (96.8%) |
ちょっと待って。
97%の設定でベースラインより悪化!? 😱
仮説ドンピシャじゃん!!! 🎉
ベスト設定 vs ワースト設定
| 設定 | 平均pips | ベースライン比 | 勝率 |
|---|---|---|---|
| ベースライン(SL/TPなし) | +20.01 | 基準 | 58.4% |
| ベスト: SL0/TP190 | +24.37 | +4.35 | 61.0% |
| ワースト: SL100/TP10 | -19.46 | -39.47 | 71.1% |
ベスト設定でも+4.35pipsしか改善しない。
でもワースト設定だと-39.47pipsも悪化する!
SL/TPつけるリスク、デカすぎない? 😰
🔥 発見①:SL単体の影響
TPなしでSLだけ変えた場合の結果:
| SL設定 | 平均pips | ベースライン比 | SL発動率 |
|---|---|---|---|
| なし | +20.01 | 基準 | - |
| 10pips | +4.93 | -15.09 | 86.4% |
| 20pips | +6.37 | -13.65 | 75.1% |
| 30pips | +11.94 | -8.08 | 61.6% |
| 50pips | +11.30 | -8.72 | 47.4% |
| 100pips | +15.07 | -4.94 | 25.2% |
| 140pips | +20.74 | +0.72 | 15.9% |
| 200pips | +21.43 | +1.41 | 9.2% |
SL10pipsは地獄! 😱
86.4%の確率で狩られて、期待値-15pips!
なぜ狭いSLが危険なのか
ゴールドはボラティリティが高い。
平均的なトレードでも、期間中の最大損失は84.4 pips。
SL10pips: ほぼ確実に刈られる(86.4%)SL50pips: 半分近く刈られる(47.4%)SL140pips: やっとベースライン超えゴールドで狭いSLは自殺行為。
SLで改善する条件
| SL | 発動率 | 判定 |
|---|---|---|
| 140pips以上 | 15.9%以下 | ✅ 改善 |
| 130pips以下 | 19.0%以上 | ❌ 悪化 |
SLをつけるなら140pips以上。
でも発動率15%のSLって、意味ある? 🤔
🔥 発見②:TP単体の影響
SLなしでTPだけ変えた場合の結果:
| TP設定 | 平均pips | ベースライン比 | TP発動率 |
|---|---|---|---|
| なし | +20.01 | 基準 | - |
| 10pips | +2.29 | -17.73 | 92.8% |
| 20pips | +5.64 | -14.37 | 86.1% |
| 50pips | +8.09 | -11.92 | 60.5% |
| 100pips | +13.97 | -6.04 | 33.9% |
| 150pips | +20.06 | +0.05 | 21.5% |
| 190pips | +24.37 | +4.35 | 16.8% |
| 200pips | +22.88 | +2.87 | 15.0% |
TP10pipsは最悪! 😱
92.8%の確率で発動して、期待値-17.73pips!
なぜ狭いTPが期待値を下げるのか
ゴールドは10時間で大きく動く。
平均的なトレードでは、期間中の最大利益は107.5 pips。
TP10pips: +10で利確 → 残り97pipsの伸びしろを捨てるTP50pips: +50で利確 → 残り57pipsの伸びしろを捨てるTP100pips: +100で利確 → まだ7pips残る「早めに利確」= 「大勝ちを捨てる」
TPで改善する条件
| TP | 発動率 | 判定 |
|---|---|---|
| 150pips以上 | 21.5%以下 | ✅ 改善 |
| 140pips以下 | 23.3%以上 | ❌ 悪化 |
TPをつけるなら150pips以上。
TP190pipsが最も期待値が高い(+24.37 pips)。
🔥 発見③:SL+TPの複合効果
SLとTPを両方つけた場合:
| 設定 | 平均pips | ベースライン比 |
|---|---|---|
| SL/TPなし | +20.01 | 基準 |
| SLのみ平均 | +15.72 | -4.29 |
| TPのみ平均 | +14.64 | -5.37 |
| SL+TP平均 | +3.17 | -16.84 |
SL+TPの組み合わせが最悪! 😱
ベースラインから-16.84pipsも悪化!
なぜ組み合わせが最悪なのか
SL: 下方向の動きでカット → ロング機会を失うTP: 上方向の動きでカット → 伸びしろを失う
SL+TP: 上下両方向でカット → 何も残らない 💀「安全策」のつもりが「期待値破壊」になっている。
🔥 発見④:曜日別で差が出る
| 曜日 | ベースライン | SL/TPで改善できる設定 |
|---|---|---|
| 火曜日 | +14.02 pips | 7.3% (32/441) |
| 水曜日 | +30.06 pips | 0.7% (3/441) |
| 木曜日 | +4.75 pips | 17.5% (77/441) |
| 金曜日 | +31.22 pips | 0.9% (4/441) |
水曜日と金曜日が別格! 👑
強い日(水・金)
- ベースラインが+30pips超え
- SL/TPで改善できる設定がほぼない(1%以下)
- → 絶対にSL/TPをつけるな!
弱い日(木曜日)
- ベースラインが+4.75pips
- 17.5%の設定で改善の余地あり
- → SL/TP検討の価値あり?
でもベースライン+4.75pipsの日にわざわざSL/TPつける意味ある?
そもそもトレードしない選択肢もある。
📊 結論:仮説は完全に正しかった
仮説の検証結果
| 仮説 | 結果 | 根拠 |
|---|---|---|
| SLで期待値減少 | ✅ 正しい | SLのみ平均 +15.72 < ベースライン +20.01 |
| TPで期待値減少 | ✅ 正しい | TPのみ平均 +14.64 < ベースライン +20.01 |
| SL+TPで最悪 | ✅ 正しい | SL+TP平均 +3.17(-16.84悪化) |
「決済=ショート」理論の結論
【決済=ショート理論】
ゴールドロールオーバー(強い上昇トレンド): → SL/TPは「上昇途中でショートを建てる」のと同じ → 97%の設定で期待値減少 ✅
唯一の例外: → 超ワイドなTP(150pips以上) → 発動率20%以下なら改善の余地あり💡 実践への示唆
戦略①:SL/TPなしが正解
# ゴールドロールオーバーentry_long( time="JST 04:00", exit="JST 14:00", sl=None, # つけない! tp=None # つけない!)97%の設定で悪化するなら、つけない方が無難。
戦略②:つけるなら超ワイドに
# どうしてもつけたいならentry_long( time="JST 04:00", exit="JST 14:00", sl=None, # SLはつけない tp=190 # TP190pipsで+4.35改善)TP190pipsでベースライン+4.35pips。でもこれ、ほぼ時間決済と変わらない。
戦略③:曜日で戦略を変える
# 水・金はSL/TPなし(絶対)if weekday in ['水', '金']: entry_long(sl=None, tp=None)
# 木曜日は...そもそもやらない?elif weekday == '木': pass # ベースライン+4.75pipsなら休んでもいい強い日は伸ばす。弱い日は休む。シンプル。
🆚 ゴトー日との比較
| 項目 | ゴトー日(25日) | ゴールドロールオーバー |
|---|---|---|
| SL/TPで悪化する割合 | 92% | 97% |
| ベースライン | +7.32 pips | +20.01 pips |
| 結論 | SL/TPつけるな | SL/TPつけるな |
| 理由 | 強い上昇トレンド | 強い上昇トレンド |
どっちも「強いトレンドがある時はSL/TP不要」という同じ結論!
これ、偶然じゃないよね?
「アノマリー+強いトレンド」の時は、SL/TPが逆効果になる。
これ、法則かもしれない。 🤔
🎊 まとめ
この記事で判明した真実
| 発見 | 内容 | 意味 |
|---|---|---|
| ① | 97%の設定で悪化 | SL/TPはほぼ逆効果 |
| ② | SL10pipsは地獄 | 86%で狩られて-15pips |
| ③ | TP10pipsも最悪 | 伸びしろ全部捨てる |
| ④ | SL+TPが最凶 | -16.84pips悪化 |
| ⑤ | TP190pipsが唯一改善 | でも時間決済とほぼ同じ |
⚡ 今日からやること
- 🚫 SL/TPは基本つけない
- 🎯 JST 14:00の時間決済を信じる
- 📅 水・金は絶対に伸ばす(SL/TPなし)
- ❓ 木曜日はトレード自体を見送る選択肢も
😎 最後に:「安全策」の落とし穴
「SL必須」「利確は早めに」
FXの常識を疑え。
ゴールドロールオーバーは10時間のロングポジション。
この時間帯はゴールドが上がりやすいというアノマリーがある。
SLをつける = 「上がる前提のトレード」を「上がっても下がっても切られる」に変える
TPをつける = 「大きく上がる可能性」を「小さな利益で満足」に変える
「安全策」のつもりが、「期待値を潰す行為」になっている。
🔥 この記事の本質
「常識」を検証しろ。
「みんなやってる」は根拠じゃない。
データで確認しろ。
567トレード × 441パターン = 25万通りのシミュレーション。
その結果が「SL/TPつけるな」。
これがデータの力。
これが検証の力。 💪
🛠️ 検証コード
441パターンの総当たり検証に使ったコードを公開します。
"""ゴールドロールオーバー × SL/TP検証
戦略: JST 04:00 ロング → JST 14:00 決済検証: SL/TPの各組み合わせで期待値がどう変わるか"""
import MetaTrader5 as mt5import pandas as pdimport numpy as npfrom datetime import datetime, timedelta
# 設定SYMBOL = "XAUUSDm"ENTRY_HOUR_JST = 4EXIT_HOUR_JST = 14
# SL/TP範囲(ゴールド用に広め)SL_RANGE = list(range(0, 201, 10)) # 0-200pipsTP_RANGE = list(range(0, 201, 10)) # 0-200pips
def extract_trade_data(df): """各日のエントリー価格、最高値・最安値、決済価格を抽出""" trades = [] df['date'] = df.index.date df['hour'] = df.index.hour
for date in df['date'].unique(): day_data = df[df['date'] == date]
# 週末スキップ date_dt = datetime.combine(date, datetime.min.time()) if date_dt.weekday() >= 5: continue
entry_data = day_data[day_data['hour'] == ENTRY_HOUR_JST] exit_data = day_data[day_data['hour'] == EXIT_HOUR_JST]
if len(entry_data) == 0 or len(exit_data) == 0: continue
entry_price = entry_data.iloc[0]['open'] exit_price = exit_data.iloc[-1]['close']
# 期間中のデータ period_mask = (day_data.index >= entry_data.index[0]) & \ (day_data.index <= exit_data.index[-1]) period_data = day_data[period_mask]
# ゴールドは$0.1 = 1pip trades.append({ 'date': date, 'max_profit_pips': (period_data['high'].max() - entry_price) * 10, 'max_loss_pips': (entry_price - period_data['low'].min()) * 10, 'no_sltp_pips': (exit_price - entry_price) * 10, })
return pd.DataFrame(trades)
def simulate_fast(trades_df, sl_pips, tp_pips): """ベクトル化したSL/TP判定""" max_profit = trades_df['max_profit_pips'].values max_loss = trades_df['max_loss_pips'].values no_sltp = trades_df['no_sltp_pips'].values
if sl_pips > 0 and tp_pips > 0: sl_hit = max_loss >= sl_pips tp_hit = max_profit >= tp_pips pips = np.where(sl_hit, -sl_pips, np.where(tp_hit, tp_pips, no_sltp)) elif sl_pips > 0: sl_hit = max_loss >= sl_pips pips = np.where(sl_hit, -sl_pips, no_sltp) elif tp_pips > 0: tp_hit = max_profit >= tp_pips pips = np.where(tp_hit, tp_pips, no_sltp) else: pips = no_sltp
return { 'sl_pips': sl_pips, 'tp_pips': tp_pips, 'avg_pips': pips.mean(), 'win_rate': (pips > 0).sum() / len(pips) * 100, }
def run_analysis(trades_df): """全SL/TP組み合わせを検証""" results = [] for sl in SL_RANGE: for tp in TP_RANGE: r = simulate_fast(trades_df, sl, tp) results.append(r) return pd.DataFrame(results)
# 使い方:# 1. MT5からXAUUSD 5分足を取得# 2. trades = extract_trade_data(df)# 3. results = run_analysis(trades)# 4. baseline = results[(sl==0) & (tp==0)]# 5. 比較分析コードのポイント
① データ抽出は1回だけ
# 各日の「最高値」「最安値」「決済価格」を事前計算# → SL/TPの判定は単純な比較演算で済む② NumPyでベクトル化
# forループではなく、配列演算で一気に処理pips = np.where(sl_hit, -sl_pips, np.where(tp_hit, tp_pips, no_sltp))③ 441パターンが数秒で完了
# 21 × 21 = 441パターンを高速検証# オーバーフィットを避けて全体傾向を把握📚 関連記事:
📬 感想お待ちしてます
記事作成者:ホソノP (@hosono_p) on X
「SL外したら調子良くなった!」
「木曜休んだら精神的に楽になった!」
そんな報告、待ってる! 🥇✨
🎁おすすめツール・サービス
※上記リンクにはプロモーション(広告)が含まれています
量子相場謀略|ホソノP
ブログでは書けない本音のトレード戦略とEA開発の裏側を公開。 データに基づいた検証で、再現性のある手法だけをお届けします。