バランスビームトレード手法:ローソク足チャートとクラウドチャートが出会う完璧なダンス

HEIKEN ASHI ICHIMOKU EMA ATR
作成日: 2025-10-20 13:19:44 最終変更日: 2025-10-20 13:19:44
コピー: 0 クリック数: 136
2
フォロー
329
フォロワー

バランスビームトレード手法:ローソク足チャートとクラウドチャートが出会う完璧なダンス バランスビームトレード手法:ローソク足チャートとクラウドチャートが出会う完璧なダンス

この戦略は何をしているのか?

この策略は,平衡の木の上を跳ね上がるようなものです! 普通のK線図を,より滑らかなHeiken Ashi に変えて,Ichimoku 雲図の基準線と組み合わせて,技術分析界の”二人組の花輪滑り”です. 重点を絞りましょう! これは,複雑なロケット科学ではありません. 市場の騒音をフィルタリングして,本当のトレンドの方向を見ることができます.

🔍 核心論理: 三重フィルタリングの知恵

この戦略の本質は”三重フィルターシステム”であり,あなたが心計対象者を選ぶように厳格である! まず,ヘイケン・アシヒはイチモク基准線の正しい側に立つ必要があります (これは基本的門檻です); 次に,200周期EMAは,あなたが大トレンドに沿って進むことを保証します (逆流ではなく上流); 最後に,イチモクはフィルターから背を向けて動力の方向を正しく確保します (偽の突破穴を避ける).

車の運転と同じで,緑の信号が点灯した (HA信号),道路は良好 (トレンドフィルター),前方には逆行車がなく (裏切り確認) 3つの条件が同時に満たされれば,取引信号が発信されます!

リスク管理:ATR 動的ストップ・ストップ・損失

この戦略の最も賢明なところは,ATR (平均リアル波幅) を使って,ストップ・ローズを設定することです.それは,車の自律巡航システムのように,市場の変動に自動的に調整されます.市場が波動すると,ストップ距離は自動的に放大し,波動が小さいとき,ストップ・ローズは緊縮されます.

さらに素晴らしいことに,複数の時間枠が使われています. 高時間枠のATRは,止まるために使われます (利潤を充分に走らせます), 低時間枠のATRは,止まるために使われます (迅速に止まるための保護資金).

の実戦用化:いつ使うべきか?

この戦略は,傾向が顕著な市場環境に特に適しています.市場が横軸に振動するときは,一時的に見張ることをお勧めします,なぜなら,ハイケン・アシは,振動する市場で偽信号を生じやすいからです.最良の使用シナリオは,主要通貨ペアの4時間または周期的なグラフです.特に,重要な経済データの発表後の傾向確認段階です.

この戦略の強みは,中長期のトレンドを捉えることです.もし,急進で急進のショートラインを好むトレーダーなら,パラメータを調整したり,他の戦略を探したりする必要があるかもしれません.

ストラテジーソースコード
/*backtest
start: 2024-10-20 00:00:00
end: 2025-10-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":500000}]
*/

// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © MahdiSalari8
//@version=6
strategy("Heiken Ashi Bas", overlay=true, 
     default_qty_type=strategy.fixed, 
     default_qty_value=0.1, 
     commission_type=strategy.commission.percent, 
     commission_value=0.07,
     initial_capital=10000000,
     pyramiding=0)  // Changed to 0

// Inputs
useTrendFilter = input.bool(true, "Use 200 EMA Trend Filter", group="Filters")
showSignals = input.bool(true, "Show Buy/Sell Signals", group="Visuals")
showEma = input.bool(false, "Show 200 EMA", group="Visuals")
atrPeriod = input.int(14, "ATR Period", minval=1, group="Risk Management")
htf = input.timeframe("5", "Higher Timeframe for TP", group="Timeframes")
ltf = input.timeframe("1", "Lower Timeframe for SL", group="Timeframes")
tpMultiplier = input.float(2.0, "TP Multiplier", minval=0.1, group="Risk Management")
slMultiplier = input.float(1.0, "SL Multiplier", minval=0.1, group="Risk Management")

// Ichimoku Divergence Settings
useDivergenceFilter = input.bool(true, "Use Ichimoku Divergence Filter", group="Ichimoku Divergence")
showDivergenceLine = input.bool(true, "Show Divergence Line", group="Ichimoku Divergence")
divergenceLookback = input.int(2, "Divergence Lookback (bars)", minval=1, maxval=20, group="Ichimoku Divergence")
divergenceLineWidth = input.int(5, "Divergence Line Width", minval=1, maxval=5, group="Ichimoku Divergence")

// Heiken Ashi Calculation
var float haOpen = na
var float haClose = na
var float haHigh = na
var float haLow = na

haClose := (open + high + low + close) / 4
haOpen := na(haOpen[1]) ? (open + close) / 2 : (haOpen[1] + haClose[1]) / 2
haHigh := math.max(high, math.max(haOpen, haClose))
haLow := math.min(low, math.min(haOpen, haClose))

// Ichimoku Baseline (Kijun-sen)
kijunPeriod = 26
kijunSen = (ta.highest(high, kijunPeriod) + ta.lowest(low, kijunPeriod)) / 2

// Ichimoku Baseline Divergence Calculation
currentBaseline = kijunSen
pastBaseline = kijunSen[divergenceLookback]

// Calculate slope (divergence)
baselineSlope = (currentBaseline - pastBaseline) / divergenceLookback

// Determine bullish/bearish divergence (exclude when slope is 0)
bullishDivergence = baselineSlope > 0
bearishDivergence = baselineSlope < 0
slopeIsZero = baselineSlope == 0

// Trend Filter (200 EMA)
ema200 = ta.ema(close, 200)

// ATR Calculation for different timeframes
htfAtr = request.security(syminfo.tickerid, htf, ta.atr(atrPeriod))
ltfAtr = request.security(syminfo.tickerid, ltf, ta.atr(atrPeriod))

// Enhanced Entry Conditions with Divergence Filter (exclude when slope is 0)
longCondition = haClose > kijunSen and 
              haClose[1] >= kijunSen[1] and 
              haClose > haOpen and 
              (haHigh - haClose) >= (haClose - haOpen) * 0.3 and 
              (not useTrendFilter or close > ema200) and
              (not useDivergenceFilter or (bullishDivergence and not slopeIsZero))

shortCondition = haClose < kijunSen and 
               haClose[1] <= kijunSen[1] and 
               haClose < haOpen and 
               (haClose - haLow) >= (haOpen - haClose) * 0.3 and 
               (not useTrendFilter or close < ema200) and
              (not useDivergenceFilter or (bearishDivergence and not slopeIsZero))

// Dynamic TP/SL based on ATR
longTp = close + (htfAtr * tpMultiplier)
longSl = close - (ltfAtr * slMultiplier)
shortTp = close - (htfAtr * tpMultiplier)
shortSl = close + (ltfAtr * slMultiplier)

// Strategy Execution
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", "Long", limit=longTp, stop=longSl)

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", "Short", limit=shortTp, stop=shortSl)

// Plotting
plot(kijunSen, color=color.blue, title="Ichimoku Baseline", linewidth=2, display=display.all)

// Plot Divergence Line (gray when slope is 0)

plot(showEma ? ema200 : na, color=color.purple, title="200 EMA", linewidth=1, display=display.all)

// Heiken Ashi Candles with 25% opacity
candleColor = haClose > haOpen ? color.new(color.green, 75) : color.new(color.red, 75)
plotcandle(haOpen, haHigh, haLow, haClose, title="Heiken Ashi", color=candleColor, wickcolor=candleColor, bordercolor=candleColor, display=display.all)

// Plot Buy/Sell Signals with labelup/labeldown shapes
plotshape(showSignals and longCondition, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), size=size.small, title="Buy Signal", display=display.all)
plotshape(showSignals and shortCondition, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), size=size.small, title="Sell Signal", display=display.all)

// Plot TP/SL levels - TP as lines with breaks, SL hidden by default
plot(strategy.position_size > 0 ? longTp : na, "Long TP", color=color.green, style=plot.style_linebr, linewidth=1, display=display.all)
plot(strategy.position_size > 0 ? longSl : na, "Long SL", color=color.red, style=plot.style_linebr, linewidth=1, display=display.none)
plot(strategy.position_size < 0 ? shortTp : na, "Short TP", color=color.green, style=plot.style_linebr, linewidth=1, display=display.all)
plot(strategy.position_size < 0 ? shortSl : na, "Short SL", color=color.red, style=plot.style_linebr, linewidth=1, display=display.none)

// Alerts
alertcondition(longCondition, "Long Signal", "HA Cross Above Kijun-sen with Bullish Divergence")
alertcondition(shortCondition, "Short Signal", "HA Cross Below Kijun-sen with Bearish Divergence")