
Strategi ini adalah sistem perdagangan lengkap yang menggabungkan grafik keseimbangan pertama (Ichimoku Cloud) dan purata keluasan pergerakan sebenar (ATR). Ia mengenal pasti trend pasaran melalui komponen grafik awan, sambil menggunakan ATR untuk menyesuaikan kedudukan hentian secara dinamik, mewujudkan gabungan organik untuk mengesan trend dan pengurusan risiko. Strategi ini menggabungkan maklumat pasaran dalam dua dimensi dinamika dan turun naik, memberikan kerangka analisis yang komprehensif untuk keputusan perdagangan.
Logik teras strategi ini dibina di atas lima garis pada carta keseimbangan pertama dan indikator ATR. Sistem ini mencetuskan isyarat perdagangan melalui persilangan garis peralihan ((Tenkan-Sen) dan garis rujukan ((Kijun-Sen), sambil meminta harga berada di sisi yang betul dari awan ((Senkou Span A dan B) dan disahkan oleh garis penangguhan ((Chikou Span). Secara khusus:
Strategi penutupan ATR trend gelombang dinamik adalah sistem perdagangan lengkap yang menggabungkan alat analisis teknikal klasik. Ia mengenal pasti trend melalui mekanisme pengesahan berganda pada carta keseimbangan pertama, dan menggunakan ATR untuk mengawal risiko dinamik, memberikan kerangka keputusan yang sistematik kepada peniaga. Walaupun terdapat beberapa masalah keterbelakangan dan kepekaan parameter dalam strategi, tetapi dengan pengoptimuman dan pengurusan risiko yang munasabah, ia dapat mencapai prestasi yang stabil di pasaran trend.
/*backtest
start: 2024-09-01 00:00:00
end: 2025-02-18 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"TRB_USDT"}]
*/
//@version=5
strategy("Ichimoku Cloud + ATR Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === Inputs ===
conversionPeriods = input.int(9, title="Tenkan-sen Period", minval=1)
basePeriods = input.int(26, title="Kijun-sen Period", minval=1)
laggingSpan2Periods = input.int(52, title="Senkou Span B Period", minval=1)
displacement = input.int(26, title="Displacement", minval=1)
atrLength = input.int(14, title="ATR Period", minval=1)
atrMultiplier = input.float(1.5, title="ATR Multiplier for Stop-Loss", minval=0.1, step=0.1)
// === Indicator Calculations ===
// Ichimoku Cloud
tenkan = (ta.highest(high, conversionPeriods) + ta.lowest(low, conversionPeriods)) / 2
kijun = (ta.highest(high, basePeriods) + ta.lowest(low, basePeriods)) / 2
senkouSpanA = ta.sma((tenkan + kijun) / 2, 1)
senkouSpanB = (ta.highest(high, laggingSpan2Periods) + ta.lowest(low, laggingSpan2Periods)) / 2
chikouSpan = close[displacement]
// ATR
atr = ta.atr(atrLength)
// === Entry Conditions ===
longCondition = ta.crossover(tenkan, kijun) and close > senkouSpanA and close > senkouSpanB and chikouSpan > close
shortCondition = ta.crossunder(tenkan, kijun) and close < senkouSpanA and close < senkouSpanB and chikouSpan < close
// === Entry Signals with Stop-Loss ===
if (longCondition)
longStop = close - (atrMultiplier * atr)
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", from_entry="Long", stop=longStop)
if (shortCondition)
shortStop = close + (atrMultiplier * atr)
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", from_entry="Short", stop=shortStop)
// === Exit Conditions ===
exitLongCondition = ta.crossunder(tenkan, kijun) or chikouSpan < close
exitShortCondition = ta.crossover(tenkan, kijun) or chikouSpan > close
if (exitLongCondition)
strategy.close("Long")
if (exitShortCondition)
strategy.close("Short")
// === Plotting Indicators on the Chart ===
// Ichimoku Cloud
plot(senkouSpanA, color=color.green, title="Senkou Span A")
plot(senkouSpanB, color=color.red, title="Senkou Span B")
fill(plot(senkouSpanA, color=color.green), plot(senkouSpanB, color=color.red), color=close > senkouSpanA ? color.new(color.green, 90) : color.new(color.red, 90), title="Ichimoku Cloud")
// Tenkan-sen and Kijun-sen
plot(tenkan, color=color.blue, title="Tenkan-sen")
plot(kijun, color=color.red, title="Kijun-sen")
// Chikou Span
plot(chikouSpan, color=color.purple, title="Chikou Span", offset=-displacement)
// ATR (hidden)
plot(atr, color=color.orange, title="ATR", linewidth=1, display=display.none)
// === Signal Visualization ===
// Markers for Long and Short entries
plotshape(series=longCondition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.labelup, text="Long")
plotshape(series=shortCondition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.labeldown, text="Short")
// Markers for Long and Short exits
plotshape(series=exitLongCondition, title="Long Exit", location=location.abovebar, color=color.red, style=shape.labeldown, text="Exit Long")
plotshape(series=exitShortCondition, title="Short Exit", location=location.belowbar, color=color.green, style=shape.labelup, text="Exit Short")