
Стратегия представляет собой систему обратного трейдинга, основанную на ATR (средняя реальная волновая величина), которая используется для выявления возможностей перенапряжения цены, в основном путем вычисления динамического порога ATR. Стратегия объединяет несколько технических показателей, включая ATR, EMA и SMA, в целостную торговую рамку. Система ищет возможности для обратного трейдинга, чтобы захватить движение цены к среднему значению, когда цена пробивает динамический порог ATR и соответствует условиям фильтрации EMA.
Основная логика стратегии основана на следующих ключевых шагах:
Это хорошо разработанная стратегия дисконтирования, которая создает надежную торговую систему с помощью фильтрации динамических понижений ATR и тенденций EMA. Преимущества стратегии заключаются в ее адаптивности и хорошем контроле риска, но в то же время необходимо учитывать риски, связанные с изменениями в рыночной среде. Благодаря постоянной оптимизации и совершенствованию управления рисками, стратегия может стабильно работать в различных рыночных условиях.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("[SHORT ONLY] ATR Sell the Rip Mean Reversion Strategy", overlay=true, initial_capital = 1000000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, process_orders_on_close = true, margin_long = 5, margin_short = 5, calc_on_every_tick = true, fill_orders_on_standard_ohlc = true)
//#region INPUTS SECTION
// ============================================
// ============================================
// Strategy Settings
// ============================================
atrPeriod = input.int(title="ATR Period", defval=20, minval=1, group="Strategy Settings")
atrMultInput = input.float(title='ATR Multiplier', defval=1.0, step=0.25, group="Strategy Settings")
smoothPeriodInput = input.int(title='Smoothing Period', defval=10, minval=1, group="Strategy Settings")
//#endregion
// ============================================
// EMA Filter Settings
// ============================================
useEmaFilter = input.bool(true, "Use EMA Filter", group="Trend Filter")
emaPeriodInput = input.int(200, "EMA Period", minval=1, group="Trend Filter")
//#region INDICATOR CALCULATIONS
// ============================================
// Calculate ATR Signal Trigger
// ============================================
atrValue = ta.atr(atrPeriod)
atrThreshold = close + atrValue * atrMultInput
signalTrigger = ta.sma(atrThreshold, smoothPeriodInput)
plot(signalTrigger, title="Smoothed ATR Trigger", color=color.white)
// ============================================
// Trend Filter
// ============================================
ma200 = ta.ema(close, emaPeriodInput)
plot(ma200, color=color.red, force_overlay=true)
//#region TRADING CONDITIONS
// ============================================
// Entry/Exit Logic
// ============================================
shortCondition = close>signalTrigger
exitCondition = close<low[1]
// Apply EMA Filter if enabled
if useEmaFilter
shortCondition := shortCondition and close < ma200
//#endregion
if shortCondition
strategy.entry("Short", strategy.short)
if exitCondition
strategy.close_all()