
A estratégia é um sistema de negociação de acompanhamento de tendências baseado em vários indicadores técnicos. Combina a linha média (EMA), o indicador de força relativa (RSI), o volume de transação (Volume) e o indicador de amplitude real (ATR) para determinar o momento de entrada e usa o ATR para definir dinamicamente o ponto de parada e parada. A estratégia também adiciona um mecanismo de confirmação de ruptura da linha K para aumentar a confiabilidade do sinal de negociação.
A estratégia usa um cruzamento de EMAs rápidas (ciclo 9) e lentas (ciclo 21) para capturar as mudanças de tendência. Com base nisso, o RSI é combinado com o indicador (ciclo 14) para filtrar as áreas de sobrevenda, exigindo que os valores do RSI estejam fora das áreas de sobrevenda (ciclo 70) e sobrevenda (ciclo 30).
Introdução de parâmetros de indicadores de adaptação: Pode-se ajustar automaticamente a configuração do ciclo de EMA e RSI de acordo com a volatilidade do mercado, para que a estratégia se adapte melhor a diferentes condições de mercado.
Adicionar filtro de ambiente de mercado: Adicionar indicadores de força de tendência como o ADX, reduzir automaticamente posições ou suspender a negociação em mercados horizontais.
Optimizar o plano de amortização: Pode-se considerar a combinação de resistência de suporte com a configuração de parada de perda para aumentar a eficácia da parada de perda.
Melhorar o gerenciamento de volume: Ajustar o tamanho das posições de acordo com a volatilidade e a dinâmica de liquidez do mercado.
Esta é uma estratégia de acompanhamento de tendências estruturada e rigorosamente lógica. A utilização conjunta de vários indicadores técnicos garante a confiabilidade dos sinais de negociação e permite controlar eficazmente o risco. A configuração de stop loss dinâmica oferece uma boa relação entre risco e ganho.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"TRB_USDT"}]
*/
//@version=6
strategy("15m EMA RSI Strategy with ATR SL/TP and Candle Break Confirmation", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// INPUTS
fastLength = input.int(9, title="Fast EMA Length")
slowLength = input.int(21, title="Slow EMA Length")
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
volLength = input.int(20, title="Volume MA Length")
atrLength = input.int(14, title="ATR Length")
atrMultiplierSL = input.float(1.5, title="ATR Multiplier for Stop Loss")
atrMultiplierTP = input.float(3.0, title="ATR Multiplier for Take Profit")
trailingStopMultiplier = input.float(1.0, title="ATR Multiplier for Trailing Stop")
// INDICATOR CALCULATIONS
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
rsiValue = ta.rsi(close, rsiLength)
volMA = ta.sma(volume, volLength)
atr = ta.atr(atrLength)
// Candle Breakout Conditions for Confirmation
longCandleBreak = close > high[1]
shortCandleBreak = close < low[1]
// Plot EMAs for visual reference
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.orange, title="Slow EMA")
// ENTRY CONDITIONS
longCondition = ta.crossover(fastEMA, slowEMA) and (rsiValue < rsiOverbought) and (volume > volMA) and longCandleBreak
shortCondition = ta.crossunder(fastEMA, slowEMA) and (rsiValue > rsiOversold) and (volume > volMA) and shortCandleBreak
// Plot Buy/Sell Signals on the Chart
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, size=size.normal)
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, size=size.normal)
// TRADE EXECUTION WITH ATR-BASED STOP LOSS, TAKE PROFIT, AND TRAILING STOP
if longCondition
longStop = close - atrMultiplierSL * atr
longTP = close + atrMultiplierTP * atr
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", from_entry="Long", stop=longStop, limit=longTP, trail_points=atr * trailingStopMultiplier)
if shortCondition
shortStop = close + atrMultiplierSL * atr
shortTP = close - atrMultiplierTP * atr
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", from_entry="Short", stop=shortStop, limit=shortTP, trail_points=atr * trailingStopMultiplier)
// OPTIONAL: Plot RSI for reference
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsiValue, color=color.purple, title="RSI")