
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: 1. Conversion Line (9 periods): Reflects short-term price momentum 2. Base Line (26 periods): Reflects medium-term price trends 3. Leading Spans 1 and 2: Form the Cloud area, providing support and resistance references 4. Lagging Span: Confirms trend persistence
Trade signal triggers: - Buy Signal: Conversion Line crosses above Base Line - Sell Signal: Conversion Line crosses below Base Line
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)