Web Lukes
📄

🥇【衝撃】ゴールドロールオーバーにSL/TPつけたら97%の設定で悪化!441パターン検証で判明した真実

公開日: 2025/12/17更新日: 2025/12/17

🤔 よくある質問

ゴールドロールオーバー戦略について、こんな質問が多い。

「ゴールドはボラが大きいからSL必須でしょ?」

「TPつけないと利益取り逃しませんか?」

いい質問だ。俺も気になってた。


💡 私の仮説

「ゴールドロールオーバーにSL/TPをつけると、期待値が下がる」

理由はシンプル。

ゴールドは長期上昇トレンド。


考えてみてください。

ゴールドロールオーバー戦略は「JST 04:00〜14:00のロング」。

この時間帯、ゴールドは基本的に上昇傾向(前回の時間帯分析で証明済み)。

でもSL/TPを設定すると...

Code
SLに引っかかる = 上昇途中で強制的にショート(売り)
TPに引っかかる = 上昇途中で強制的にショート(売り)

どっちも「上昇中にショートを建てる」のと同じじゃね? 🤔


これが本当なら...

SL/TPをつけるほど、アノマリーの恩恵を潰してしまう。

でも本当にそうなのか?

441パターン検証するしかない! 🔥

🎯 検証内容

「SL/TPの全組み合わせを総当たりで検証」

  • SL: 0〜200pips(10pips刻み)= 21パターン
  • TP: 0〜200pips(10pips刻み)= 21パターン
  • 総組み合わせ: 441パターン 🤯

※ゴールドのpipsは $0.1 = 1pip なので、100pips = $10 の変動

🔬 検証環境

Code
📈 銘柄: 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設定後の結果

SL/TP別 平均pips ヒートマップ

設定ベースライン比割合
ベースラインより良い+0.05〜+4.35 pips13/441 (2.9%)
ベースラインより悪い-0.05〜-39.47 pips427/441 (96.8%)

ちょっと待って。

97%の設定でベースラインより悪化!? 😱

仮説ドンピシャじゃん!!! 🎉


ベスト設定 vs ワースト設定

設定平均pipsベースライン比勝率
ベースライン(SL/TPなし)+20.01基準58.4%
ベスト: SL0/TP190+24.37+4.3561.0%
ワースト: SL100/TP10-19.46-39.4771.1%

ベスト設定でも+4.35pipsしか改善しない。

でもワースト設定だと-39.47pipsも悪化する!


SL/TPつけるリスク、デカすぎない? 😰

🔥 発見①:SL単体の影響

SL/TP影響比較チャート

TPなしでSLだけ変えた場合の結果:

SL設定平均pipsベースライン比SL発動率
なし+20.01基準-
10pips+4.93-15.0986.4%
20pips+6.37-13.6575.1%
30pips+11.94-8.0861.6%
50pips+11.30-8.7247.4%
100pips+15.07-4.9425.2%
140pips+20.74+0.7215.9%
200pips+21.43+1.419.2%

SL10pipsは地獄! 😱

86.4%の確率で狩られて、期待値-15pips!


なぜ狭いSLが危険なのか

ゴールドはボラティリティが高い。

平均的なトレードでも、期間中の最大損失は84.4 pips。

Code
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.7392.8%
20pips+5.64-14.3786.1%
50pips+8.09-11.9260.5%
100pips+13.97-6.0433.9%
150pips+20.06+0.0521.5%
190pips+24.37+4.3516.8%
200pips+22.88+2.8715.0%

TP10pipsは最悪! 😱

92.8%の確率で発動して、期待値-17.73pips!


なぜ狭いTPが期待値を下げるのか

ゴールドは10時間で大きく動く。

平均的なトレードでは、期間中の最大利益は107.5 pips。

Code
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も悪化!


なぜ組み合わせが最悪なのか

Code
SL: 下方向の動きでカット → ロング機会を失う
TP: 上方向の動きでカット → 伸びしろを失う
SL+TP: 上下両方向でカット → 何も残らない 💀

「安全策」のつもりが「期待値破壊」になっている。

🔥 発見④:曜日別で差が出る

曜日ベースラインSL/TPで改善できる設定
火曜日+14.02 pips7.3% (32/441)
水曜日+30.06 pips0.7% (3/441)
木曜日+4.75 pips17.5% (77/441)
金曜日+31.22 pips0.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悪化)

「決済=ショート」理論の結論

Code
【決済=ショート理論】
ゴールドロールオーバー(強い上昇トレンド):
→ SL/TPは「上昇途中でショートを建てる」のと同じ
→ 97%の設定で期待値減少 ✅
唯一の例外:
→ 超ワイドなTP(150pips以上)
→ 発動率20%以下なら改善の余地あり

💡 実践への示唆

戦略①:SL/TPなしが正解

Python
# ゴールドロールオーバー
entry_long(
time="JST 04:00",
exit="JST 14:00",
sl=None, # つけない!
tp=None # つけない!
)

97%の設定で悪化するなら、つけない方が無難。

戦略②:つけるなら超ワイドに

Python
# どうしてもつけたいなら
entry_long(
time="JST 04:00",
exit="JST 14:00",
sl=None, # SLはつけない
tp=190 # TP190pipsで+4.35改善
)

TP190pipsでベースライン+4.35pips。でもこれ、ほぼ時間決済と変わらない。

戦略③:曜日で戦略を変える

Python
# 水・金は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が唯一改善でも時間決済とほぼ同じ

⚡ 今日からやること

  1. 🚫 SL/TPは基本つけない
  2. 🎯 JST 14:00の時間決済を信じる
  3. 📅 水・金は絶対に伸ばす(SL/TPなし)
  4. ❓ 木曜日はトレード自体を見送る選択肢も

😎 最後に:「安全策」の落とし穴

「SL必須」「利確は早めに」

FXの常識を疑え。


ゴールドロールオーバーは10時間のロングポジション。

この時間帯はゴールドが上がりやすいというアノマリーがある。


SLをつける = 「上がる前提のトレード」を「上がっても下がっても切られる」に変える

TPをつける = 「大きく上がる可能性」を「小さな利益で満足」に変える


「安全策」のつもりが、「期待値を潰す行為」になっている。


🔥 この記事の本質

「常識」を検証しろ。

「みんなやってる」は根拠じゃない。

データで確認しろ。


567トレード × 441パターン = 25万通りのシミュレーション。

その結果が「SL/TPつけるな」。


これがデータの力。

これが検証の力。 💪


🛠️ 検証コード

441パターンの総当たり検証に使ったコードを公開します。

Python
"""
ゴールドロールオーバー × SL/TP検証
戦略: JST 04:00 ロング → JST 14:00 決済
検証: SL/TPの各組み合わせで期待値がどう変わるか
"""
import MetaTrader5 as mt5
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
# 設定
SYMBOL = "XAUUSDm"
ENTRY_HOUR_JST = 4
EXIT_HOUR_JST = 14
# SL/TP範囲(ゴールド用に広め)
SL_RANGE = list(range(0, 201, 10)) # 0-200pips
TP_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回だけ

Python
# 各日の「最高値」「最安値」「決済価格」を事前計算
# → SL/TPの判定は単純な比較演算で済む

② NumPyでベクトル化

Python
# forループではなく、配列演算で一気に処理
pips = np.where(sl_hit, -sl_pips,
np.where(tp_hit, tp_pips, no_sltp))

③ 441パターンが数秒で完了

Python
# 21 × 21 = 441パターンを高速検証
# オーバーフィットを避けて全体傾向を把握

📚 関連記事:


📬 感想お待ちしてます

記事作成者:ホソノP (@hosono_p) on X

「SL外したら調子良くなった!」

「木曜休んだら精神的に楽になった!」

そんな報告、待ってる! 🥇✨

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

FX自動売買VPSなら50%OFF

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

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

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

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

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

🔮
MEMBERSHIP

量子相場謀略|ホソノP

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

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

📚あわせて読みたい

📄

☀️ ゴールドロールオーバー、夏時間にナーフされる?|566トレード・3年分データで完全検証

ゴールドロールオーバー(JST 4:00→14:00ロング)は米国サマータイムで弱体化するのか?566トレード・3年分のデータを夏時間vs冬時間で徹底比較。月別・PF・累計損益カーブから真実を解明します。

FX自動売買2026/3/6
📄

🥇【徹底対決】ゴールドロールオーバー vs 年末アノマリー!どっちが儲かる?11年データで完全比較

「毎日$2のロールオーバー(年間$500)」vs「年末1ヶ月のアノマリー(年間$71)」、勝者はロールオーバーの圧勝!勝率・リターン・効率…すべての角度から徹底比較。

FX自動売買2025/12/19
📄

🔬【検証】ゴトー日にSL/TPつけたら期待値下がる?961パターン総当たりした結果...

「決済=ショート建てだからSL/TPは逆効果」という仮説を961パターンで検証。結果:25日では92%の設定で悪化、でも他のゴトー日では逆に改善...!?この差は一体何なのか

FX自動売買2025/12/16
📄

🥇【完全検証】ゴールド時間帯分析!566回のトレードで判明した「勝てる時間」と「地獄の時間」

「ゴールドは何時に買えばいいの?」2年半・566トレードで完全検証。結論:JST04時ロング→14時決済で勝率58.3%、+13,639pips、シャープ2.79の異次元結果!金曜日は+33pipsで最強曜日!

FX自動売買2025/12/15
📄

🥇 ゴールドRO改、決済を14時→11時に短縮する|『午後の尻尾』は金ブル限定のボーナスだった

RO改の決済を14:00から11:00へ変更します。トレードを04-11(本体)と11-14(尻尾)に分解したら、本体は毎年プラス(2026は+131pips/回)、尻尾は金ブル(2024-25)だけ稼ぎ・チョッピーや下落局面(2023・2026)ではマイナスと判明。金が崩れた今、午後の尻尾は直近30回で-55pips/回の出血源。頑健な朝の本体だけ残し、レジーム依存の午後を切る——年別decompで検証した決済時刻の最適化。

FX自動売買2026/6/25
📄

🥇 ゴールドRO改、明日から9月まで停止する|月別データで検証した5ヶ月休止の合理性

明日(4/20)から9月末までゴールドロールオーバー改を停止します。3年・566トレードの月別データで停止判断の妥当性を検証。5月は確定で地雷、6-9月は利益は出ているがPF効率が冬期の6分の1以下。資金効率の観点では合理的な選択です。

FX自動売買2026/4/18