strategy · on price · open source

Ichimoku Cloud Breakout

Deepwick · @deepwickv1Updated 2 Oct 2026▲ 0 users
Running…
Loading chart…

About

Ichimoku Kinko Hyo cloud breakout: long when Tenkan-sen crosses above Kijun-sen AND price is above the cloud (SpanA and SpanB), exit on a cloud re-entry.

  • The cloud (SpanA/SpanB) is plotted as a filled band.
  • Combine with a higher-timeframe trend for confirmation.
  • 9/26/52 is the canonical Ichimoku setting.

Source code

//@version=5
strategy("Ichimoku Cloud Breakout", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.05)
conv = input.int(9, "Tenkan Length", minval=5, maxval=50, step=1)
base = input.int(26, "Kijun Length", minval=10, maxval=100, step=1)
span = input.int(52, "Senkou Span Length", minval=20, maxval=200, step=1)
stopPct = input.float(2, "Stop Loss %", minval=0.5, maxval=10, step=0.1)
tpPct = input.float(6, "Take Profit %", minval=0, maxval=20, step=0.1)
tenkan = (ta.highest(high, conv) + ta.lowest(low, conv)) / 2
kijun = (ta.highest(high, base) + ta.lowest(low, base)) / 2
spanA = (tenkan + kijun) / 2
spanB = (ta.highest(high, span) + ta.lowest(low, span)) / 2
cloudTop = math.max(spanA, spanB)
cloudBot = math.min(spanA, spanB)
longSignal = strategy.position_size == 0 and ta.crossover(tenkan, kijun) and close > cloudTop
exitSignal = strategy.position_size > 0 and close < cloudBot
if longSignal
    strategy.entry("Long", strategy.long)
if strategy.position_size > 0
    strategy.exit("Risk", stop=stopPct > 0 ? strategy.position_avg_price * (1 - stopPct / 100) : na, limit=tpPct > 0 ? strategy.position_avg_price * (1 + tpPct / 100) : na)
if exitSignal
    strategy.close("Long", comment="Cloud re-entry")
p_Tenkan = plot(tenkan, "Tenkan", color=color.blue, linewidth=1)
p_Kijun = plot(kijun, "Kijun", color=color.red, linewidth=1)
p_Span_A = plot(spanA, "Span A", color=color.green, linewidth=1)
p_Span_B = plot(spanB, "Span B", color=color.red, linewidth=1)
fill(p_Span_A, p_Span_B, color=color.new(color.green, 80))
plotshape(longSignal, "Long", style=shape.triangleup, location=location.belowbar, color=color.green, text="L")
plotshape(exitSignal, "Exit", style=shape.triangledown, location=location.abovebar, color=color.red, text="X")
alertcondition(longSignal, "Ichimoku long entry", "Tenkan crossed above Kijun above the cloud")
alertcondition(exitSignal, "Ichimoku exit", "Price re-entered the cloud from below")

Comments

No comments yet.

Sign in to comment.