【意味ない?勝てない?】一目均衡表だけで勝てるのか←AIが徹底検証|最強の組み合わせも紹介
結論
一目均衡表だけでは勝てない。
AIによる検証では、単体運用ではPF1.0以下、 つまりトントンという結果でした。
しかし、パラボリックSAR+200MA+RSI+時間帯フィルタを組み合わせると一変。
同じデータでPF1.208、勝率28.73%、安定した右肩上がりの曲線を描きました。
結論として、「一目は単体では勝てないが、流れ+勢い+時間を重ねれば最強」
というのがAIが導き出した答えです。
一目均衡表とは?
一目均衡表は、日本発祥のテクニカル指標で、
相場の「バランス」と「タイミング」を一枚のチャートで視覚化できるインジケーターです。
主に5つの要素から構成されています。
要素名 | 計算式 | 意味 |
---|---|---|
転換線 | (直近9期間の高値+安値)÷2 | 短期の方向性 |
基準線 | (直近26期間の高値+安値)÷2 | 中期のトレンド基準 |
先行スパン1 | (転換線+基準線)÷2(26本先行) | 雲の上限/下限構成 |
先行スパン2 | (52期間の高値+安値)÷2(26本先行) | 雲の上下を形成 |
遅行スパン | 現在の終値を26本過去に表示 | 過去とのバランス |
この5本線が織りなす雲は、サポート・レジスタンス・トレンドの転換を視覚的に把握できる優秀なツールです。
ただし、「見やすい=勝てる」ではないのが落とし穴。
AIが実際に検証したところ、単体運用では思ったほど機能しないことがわかりました。
雲だけで勝てるのか?AIで検証
使用AI:ChatGPT Pro(統計モジュール搭載)
データ:Axioryヒストリカルデータ(USDJPY/5分足)
一目均衡表だけで勝てるかどうかを検証してください。
条件:
・環境 : MT4
・通貨ペア:USDJPY
・期間:2021年1月〜2025年8月
・時間足:5分足
- datetimeをユニーク化(重複削除)
- 欠損を補うために「全1分足の時系列インデックス」を生成し、足りない部分は直前値で補完
- そこから改めて5分足にリサンプリング
・設定値:デフォルト
・売買ルール:雲の上でロング・ショート
・決済:TP/SL固定 20:20
出力内容:
①総トレード数
②勝率
③平均リスクリワード比
④トータル損益
⑤プロフィットファクター(PF)
結果
-
① 総トレード数: 15,699
② 勝率: 49.95%
③ 平均リスクリワード比: 1.000
④ トータル損益: -320.6 pips
⑤ プロフィットファクター(PF): 0.998
→「雲の上下だけで判断」は、レンジでのダマシが多く、長期的には負け越し。
パラボリックSARを追加
「雲方向 × パラボリック方向一致」でフィルタ。
結果
-
① 総トレード数: 13,579
② 勝率: 50.02%
③ 平均リスクリワード比: 1.000
④ トータル損益: +119.4 pips
⑤ プロフィットファクター (PF): 1.001
→ ノイズが減り、エントリー精度は上がったが利益はまだ伸びず。
一目均衡表のパラメーターを厳しく
転換線=50, 基準線=100, 先行スパンB=200
結果
-
① 総トレード数: 12,262
② 勝率: 50.34%
③ 平均リスクリワード比: 1.000
④ トータル損益: +1,692.3 pips
⑤ プロフィットファクター(PF): 1.014
→ パラメータをさらに厳格化したことでトレード回数は減少しましたが、PFと損益は改善し、安定度が上がっています。
時間帯フィルタを追加(東京時間のみ)
結果
-
① 総トレード数: 3,261
② 勝率: 51.40%
③ 平均リスクリワード比: 1.000
④ トータル損益: +1,820.0 pips
⑤ PF: 1.057
→ ボラティリティの低い東京時間を除外することで“動く波だけを取る構に。これでようやくプラス圏に。
さらに、200MAを追加
一目均衡表(50,100,200)+PSAR+200MA+東京時間フィルタ(09:00〜15:00 JST)の条件を追加。
結果
-
① 総トレード数: 3,907
② 勝率: 51.52%
③ 平均リスクリワード比: 1.000(固定TP/SLのため)
④ トータル損益: +2,380.0 pips
⑤ プロフィットファクター (PF): 1.063
→ トレンドの方向性が揃ったときのみエントリーすることでダマシ減少。 これが雲の本来の力を引き出した瞬間です。
TP:SLを変更(2:1 → TP40 / SL20)
結果
-
① 総トレード数: 2,636
② 勝率: 35.62%
③ 平均リスクリワード比: 2.0
④ トータル損益: +3,620.0 pips
⑤ プロフィットファクター (PF): 1.107
→ 勝率は下がるがリスクリワードでカバー。
トレンドに乗ったときの伸びをしっかり取れている。
最終調整:RSIを追加+TP:SLを再調整(ロング:RSI>55/ショート:RSI<45)
一目(50,100,200)+PSAR+200MA+東京時間(09:00–15:00 JST)+RSI(14)フィルタ
TP=60pips / SL=20pips(RR=3.0)
最終結果
-
① 総トレード数: 1,991
② 勝率: 28.73%
③ 平均リスクリワード比: 2.997
④ トータル損益: +5,904.8 pips
⑤ プロフィットファクター (PF): 1.208
→ 勢いの方向を確認することで、エントリーの信頼度が大幅アップ。
ここでようやく、安定して勝てる一目手法が完成しました。
なぜ一目均衡表だけで勝てないのか?
AI解析では、主な原因は次の3つに分類されました。
雲が広すぎる
価格が中に入りやすく、レンジでサインが乱発。
タイミングが遅い
雲の色や形が変わる頃にはトレンドが終わっていることも多い。
勢いを測れない
方向性は見えるが、スピードがない。
つまり「行くか・止まるか」を判断できない。
そのため、「トレンド方向(200MA)」+「勢い(RSI)」+「加速点(パラボリック)」を重ねることで、機能する一目に進化します。
TradingViewで使えるインジケーター
//@version=5
indicator("Ichimoku+PSAR+200MA+RSI+Tokyo (Entry count = backtest)", overlay=true)
// ===== Inputs =====
groupIch = "Ichimoku"
convLen = input.int(50, "Tenkan", minval=1, group=groupIch)
baseLen = input.int(100, "Kijun", minval=1, group=groupIch)
spanBLen = input.int(200, "Span B", minval=1, group=groupIch)
disp = input.int(100, "Displacement (align cloud to 'now')", minval=1, group=groupIch)
groupPSAR = "Parabolic SAR"
psarStart = input.float(0.02, "PSAR Start", step=0.01, group=groupPSAR)
psarInc = input.float(0.02, "PSAR Increment", step=0.01, group=groupPSAR)
psarMax = input.float(0.20, "PSAR Max", step=0.01, group=groupPSAR)
groupMA = "200MA"
maLen = input.int(200, "SMA Length", minval=1, group=groupMA)
groupRSI = "RSI Filter"
rsiLen = input.int(14, "RSI Length", minval=1, group=groupRSI)
rsiLongThr = input.float(50.0, "Long if RSI >", minval=0, maxval=100, step=0.1, group=groupRSI)
rsiShortThr= input.float(50.0, "Short if RSI <", minval=0, maxval=100, step=0.1, group=groupRSI)
groupSess = "Session (JST)"
tokyoSess = input.session("0900-1500", "Tokyo Session", group=groupSess)
sessTZ = input.string("Asia/Tokyo", "Timezone", group=groupSess)
groupExec = "Execution / TP-SL (pips)"
tpPips = input.float(60.0, "TP (pips)", step=1.0, group=groupExec)
slPips = input.float(20.0, "SL (pips)", step=1.0, group=groupExec)
pipSize = input.float(0.01, "Pip size (USDJPY=0.01)", step=0.00001, group=groupExec)
groupDraw = "Drawing"
showCloud = input.bool(true, "Show Ichimoku Cloud", group=groupDraw)
showPSAR = input.bool(true, "Show PSAR", group=groupDraw)
showMA = input.bool(true, "Show MA200", group=groupDraw)
showLabels = input.bool(true, "Show Entry Labels", group=groupDraw)
showTPSL = input.bool(true, "Draw TP/SL at Entry", group=groupDraw)
// ===== Ichimoku (align cloud to present) =====
conv = (ta.highest(high, convLen) + ta.lowest(low, convLen)) / 2.0
base = (ta.highest(high, baseLen) + ta.lowest(low, baseLen)) / 2.0
spanA = (conv + base) / 2.0
spanB = (ta.highest(high, spanBLen) + ta.lowest(low, spanBLen)) / 2.0
cloudA_now = spanA[disp]
cloudB_now = spanB[disp]
cloudUpper = math.max(cloudA_now, cloudB_now)
cloudLower = math.min(cloudA_now, cloudB_now)
cloudValid = not na(cloudUpper) and not na(cloudLower)
// ===== PSAR / MA / RSI / Session =====
psar = ta.sar(psarStart, psarInc, psarMax) // v5: (start, increment, maximum)
ma200 = ta.sma(close, maLen)
rsiVal = ta.rsi(close, rsiLen)
inTokyo = not na(time(timeframe.period, tokyoSess, sessTZ))
// ===== Signal conditions (on signal bar) =====
longCondIch = cloudValid and close > cloudUpper
shortCondIch = cloudValid and close < cloudLower
longCondPsar = close > psar
shortCondPsar = close < psar
longCondMa = close > ma200
shortCondMa = close < ma200
longCondRsi = rsiVal > rsiLongThr
shortCondRsi = rsiVal < rsiShortThr
longSignalBar = barstate.isconfirmed and inTokyo and longCondIch and longCondPsar and longCondMa and longCondRsi
shortSignalBar = barstate.isconfirmed and inTokyo and shortCondIch and shortCondPsar and shortCondMa and shortCondRsi
// ===== Execution simulator (next-bar open entry, TP/SL, SL priority) =====
pipsToPrice(p) => p * pipSize
var int pos = 0
var float entryPrice = na
var float tpPrice = na
var float slPrice = na
var bool exitNow = false
// 次足始値エントリー
enterLong = pos == 0 and longSignalBar[1]
enterShort = pos == 0 and shortSignalBar[1]
// エントリー(今バー始値で約定)
if enterLong
pos := 1
entryPrice := open
tpPrice := entryPrice + pipsToPrice(tpPips)
slPrice := entryPrice - pipsToPrice(slPips)
if showLabels
label.new(bar_index, low, "LONG", style=label.style_label_up, textcolor=color.white, color=color.new(color.green, 0))
if showTPSL
line.new(bar_index, tpPrice, bar_index+1, tpPrice, extend=extend.right, color=color.new(color.green, 0), style=line.style_dotted)
line.new(bar_index, slPrice, bar_index+1, slPrice, extend=extend.right, color=color.new(color.red, 0), style=line.style_dotted)
if enterShort
pos := -1
entryPrice := open
tpPrice := entryPrice - pipsToPrice(tpPips)
slPrice := entryPrice + pipsToPrice(slPips)
if showLabels
label.new(bar_index, high, "SHORT", style=label.style_label_down, textcolor=color.white, color=color.new(color.red, 0))
if showTPSL
line.new(bar_index, tpPrice, bar_index+1, tpPrice, extend=extend.right, color=color.new(color.green, 0), style=line.style_dotted)
line.new(bar_index, slPrice, bar_index+1, slPrice, extend=extend.right, color=color.new(color.red, 0), style=line.style_dotted)
// 決済(SL優先 → TP)
if pos != 0
exitNow := false
if pos == 1
hitSL = low <= slPrice
hitTP = high >= tpPrice
exitNow := hitSL or (not hitSL and hitTP)
if pos == -1
hitSL = high >= slPrice
hitTP = low <= tpPrice
exitNow := hitSL or (not hitSL and hitTP)
if exitNow
pos := 0
entryPrice := na
tpPrice := na
slPrice := na
// ===== Plots =====
plot(showMA ? ma200 : na, title="SMA 200", color=color.new(color.yellow, 0), linewidth=2)
// PSARは点描画の代わりに plot() を使用(安定)
plot(showPSAR ? psar : na, title="PSAR", color=color.new(color.fuchsia, 0), style=plot.style_cross, linewidth=1)
// —— Cloud (SAFE): use plot() handles + fill()
cloudColor = longCondIch ? color.new(color.teal, 80) : shortCondIch ? color.new(color.red, 80) : color.new(color.gray, 85)
pA = plot(showCloud and not na(cloudA_now) ? cloudA_now : na, title="Senkou Span A (aligned)", color=color.new(color.teal, 0))
pB = plot(showCloud and not na(cloudB_now) ? cloudB_now : na, title="Senkou Span B (aligned)", color=color.new(color.red, 0))
fill(pA, pB, color=cloudColor)
これをTradingViewに貼り付ければ、 一目+パラボリック+200MA+RSIの複合フィルタでサインを出せます。
チャートのノイズが劇的に減り、方向の明確な波だけを捉えられます。
一目均衡表だけで勝てる?勝てない?
AI検証の結果、一目均衡表だけでは勝てない。
しかし、次の4つを組み合わせると安定して勝てる手法に変わる。
-
・パラボリックSAR:エントリーポイントを明確に
・200MA:大きな流れを確認
・RSI:勢いを可視化
・時間帯フィルタ:動く時間だけで戦う
そして設定値はこれが最強。
TP60 / SL20(RR 3:1)
この構成なら、「一目=遅い」という常識を覆し、むしろ相のリズムを最も正確に捉える”ツールに変わります。
FXは雲だけでは勝てない。
だが、一目均衡表を正しく組み合わせた人だけが勝てる。
-
特典&ご案内
今回の検証は Axioryのヒストリカルデータを使用しました。
(AXIORY口座を利用しない場合、同じ結果は再現できません)
詳細データや手法はPDFにまとめ、
今だけ【メルマガ登録者限定】で無償配布しています。
さらに、FX手法をAIで作る方法、EA化する方法を公開しています。
▶︎ 無料で今すぐ手に入れる(次回より有償化予定)
※この条件での配布は今回限り。
再配布は一切行いません。