
Стратегия представляет собой целостную торговую систему, объединяющую первичный балансовый график (Ichimoku Cloud) и среднее значение реальной колебания (ATR). Она идентифицирует рыночные тенденции с помощью компонентов облачных графиков и одновременно использует ATR для динамической корректировки стоп-позиций, реализуя органическое сочетание отслеживания тенденций и управления рисками. Стратегия объединяет рыночную информацию о динамике и волатильности в двух измерениях, обеспечивая всестороннюю аналитическую основу для торговых решений.
Центральная логика стратегии основана на пяти линиях на первичном равновесном графике и показателях ATR. Система запускает торговый сигнал через пересечение линии конверсии (Tenkan-Sen) и базовой линии (Kijun-Sen), требуя, чтобы цена находилась на правильной стороне облака (Senkou Span A и B) и была подтверждена линией задержки (Chikou Span). В частности:
Стратегия ATR Stop Loss является полной торговой системой, объединяющей классические инструменты технического анализа. Она идентифицирует тенденции с помощью многочисленных механизмов подтверждения на первичном балансовом графике и использует ATR для динамического контроля риска, предоставляя трейдерам систематизированную рамку для принятия решений. Хотя у стратегии есть определенные проблемы с отсталостью и чувствительностью к параметрам, благодаря разумной оптимизации и управлению рисками она может добиться стабильной производительности на трендовых рынках.
/*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")