
A estratégia é um sistema de negociação de reversão de curto prazo baseado no ATR (Average True Range), que identifica oportunidades de prolongamento excessivo de preços principalmente por meio do cálculo do limiar ATR dinâmico. A estratégia integra vários indicadores técnicos, incluindo ATR, EMA e SMA, formando uma estrutura de decisão de negociação completa. Quando o preço supera o limiar ATR dinâmico e atende às condições de filtragem EMA, o sistema procura oportunidades de curto prazo, com o objetivo de capturar o movimento de retorno do preço ao valor médio.
A lógica central da estratégia é baseada nas seguintes etapas principais:
Trata-se de uma estratégia de negociação de curto prazo bem projetada, que estabelece um sistema de negociação confiável através da filtragem de tendências de depreciação e EMA do ATR. A vantagem da estratégia reside na sua adaptabilidade e no bom controle de risco, mas também na necessidade de ter em mente os riscos trazidos por mudanças no ambiente de mercado.
/*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()