This strategy is a trend-following trading system based on the Ichimoku Cloud indicator. It generates trading signals through the crossover of the Conversion Line and Base Line, while utilizing the Cloud’s support and resistance zones to confirm trend direction. The core concept is to identify trend reversal points through dynamic crossovers of multiple-period moving averages and execute trades when trends are established.
The strategy is based on several key components:
Trade signal triggers:
The strategy provides a systematic framework for trading decisions through multi-dimensional Ichimoku Cloud analysis. Its strength lies in comprehensive trend capture, though it faces certain limitations in terms of lag and market environment dependency. The strategy’s practicality and reliability can be further enhanced by introducing supplementary indicators and optimizing signal confirmation mechanisms. In practical application, it is recommended to optimize parameters based on specific market characteristics and combine with other technical indicators to enhance strategy stability.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Ichimoku Cloud Strategy", overlay=true) // Ichimoku Settings conversionPeriods = input(9, title="Conversion Line Period") basePeriods = input(26, title="Base Line Period") laggingSpan2Periods = input(52, title="Lagging Span 2 Period") displacement = input(26, title="Displacement") // Ichimoku Calculation conversionLine = (ta.highest(high, conversionPeriods) + ta.lowest(low, conversionPeriods)) / 2 baseLine = (ta.highest(high, basePeriods) + ta.lowest(low, basePeriods)) / 2 leadLine1 = (conversionLine + baseLine) / 2 leadLine2 = (ta.highest(high, laggingSpan2Periods) + ta.lowest(low, laggingSpan2Periods)) / 2 laggingSpan = ta.valuewhen(close, close, 0)[displacement] // Plot Ichimoku Cloud plot(conversionLine, title="Conversion Line", color=color.blue) plot(baseLine, title="Base Line", color=color.red) plot(leadLine1, title="Lead Line 1", color=color.green) plot(leadLine2, title="Lead Line 2", color=color.orange) plot(laggingSpan, title="Lagging Span", color=color.purple) // Cloud Fill plot(leadLine1, color=color.new(color.green, 90)) plot(leadLine2, color=color.new(color.red, 90)) // Signals buySignal = ta.crossover(conversionLine, baseLine) sellSignal = ta.crossunder(conversionLine, baseLine) // Execute Trades if buySignal strategy.entry("Long", strategy.long) if sellSignal strategy.entry("Short", strategy.short) // Debugging Plots plotshape(buySignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)