Esta estratégia é um sistema de negociação de tendência baseado em múltiplas médias móveis exponenciais (EMA) e média verdadeira (ATR). Ele usa três EMAs (20, 50 e 100 períodos) em conjunto com ATR para gerenciamento dinâmico de riscos e segmentação de lucros. Esta abordagem garante negociação sistemática mantendo o controle de risco dinâmico.
A lógica central baseia-se na interação entre o preço e múltiplas EMAs:
Esta estratégia combina múltiplas EMAs e controle de risco dinâmico baseado em ATR para criar um sistema de negociação que apresenta características tanto de tendência como de negociação de swing. Seus pontos fortes estão na abordagem sistemática e no risco controlável, mas a aplicação prática requer atenção à adaptabilidade do mercado e otimizações específicas com base nas condições reais. Através de configurações adequadas de parâmetros e controle de risco rigoroso, a estratégia tem o potencial de alcançar resultados comerciais estáveis na maioria dos ambientes de mercado.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-18 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("EMA Swing Strategy with ATR", overlay=true) // Inputs emaShort = input.int(20, "Short EMA") emaMid = input.int(50, "Mid EMA") emaLong = input.int(100, "Long EMA") rrRatio = input.float(1.5, "Risk-Reward Ratio") contracts = input.int(5, "Number of Contracts") // Calculations ema20 = ta.ema(close, emaShort) ema50 = ta.ema(close, emaMid) ema100 = ta.ema(close, emaLong) atr = ta.atr(14) // Conditions longCondition = ta.crossover(close, ema20) and close > ema50 shortCondition = ta.crossunder(close, ema20) and close < ema50 // Variables for trades var float entryPrice = na var float stopLoss = na var float takeProfit = na // Long Trades if (longCondition) entryPrice := close stopLoss := close - atr takeProfit := close + atr * rrRatio strategy.entry("Long", strategy.long, contracts) strategy.exit("Exit Long", from_entry="Long", stop=stopLoss, limit=takeProfit) // Short Trades if (shortCondition) entryPrice := close stopLoss := close + atr takeProfit := close - atr * rrRatio strategy.entry("Short", strategy.short, contracts) strategy.exit("Exit Short", from_entry="Short", stop=stopLoss, limit=takeProfit) // Plot EMAs plot(ema20, color=color.green, title="EMA 20") plot(ema50, color=color.red, title="EMA 50") plot(ema100, color=color.white, title="EMA 100") // Visualization for Entries plotshape(series=longCondition, style=shape.labelup, color=color.green, location=location.belowbar, title="Long Entry") plotshape(series=shortCondition, style=shape.labeldown, color=color.red, location=location.abovebar, title="Short Entry")