
Esta estratégia é um sistema de negociação baseado em múltiplos indicadores de média móvel ((EMA) de sinais de cruzamento, combinando diferentes períodos de EMA indicadores e ATR mecanismo de stop-loss dinâmico. A estratégia usa 10 ciclo, 39 ciclo, 73 ciclo EMA como indicador de sinal principal, ao mesmo tempo em que introduz 143 ciclo de alta periodicidade EMA como um filtro de tendência, e através do ATR indicador de stop-loss dinâmico e meta de ganho.
A lógica central da estratégia é baseada em sinais de cruzamento de múltiplos EMAs e confirmação de tendências. Quando a EMA curta (de 10 ciclos) atravessa a EMA média (de 39 ciclos) e o preço está acima da EMA de longo prazo (de 73 ciclos) e do EMA de período mais longo (de 143 ciclos), o sistema produz um sinal de multiplicação. Ao contrário, quando a EMA curta atravessa a EMA média (de 73 ciclos) e o preço está abaixo da EMA de longo prazo e do EMA de período mais longo, o sistema produz um sinal de ruptura.
A estratégia utiliza a multiplicação dos EMAs em combinação com a paralisação dinâmica do ATR para construir um sistema de negociação com acompanhamento de tendências e gerenciamento de risco. A principal vantagem da estratégia reside no mecanismo de confirmação de múltiplos períodos de tempo e no gerenciamento dinâmico de posições, mas também é necessário prestar atenção aos riscos de mercados horizontais e de atraso.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Enhanced EMA Crossover Strategy", overlay=true)
// Define the EMA lengths
ema_short_length = 10
ema_long_length = 39
ema_filter_length = 73
ema_higher_tf_length = 143
// Calculate the EMAs
ema_short = ta.ema(close, ema_short_length)
ema_long = ta.ema(close, ema_long_length)
ema_filter = ta.ema(close, ema_filter_length)
ema_higher_tf = request.security(syminfo.tickerid, "D", ta.ema(close, ema_higher_tf_length))
// Calculate ATR for volatility-based stop loss and take profit
atr_length = 14
atr = ta.atr(atr_length)
// Plot the EMAs
plot(ema_short, title="EMA 10", color=color.blue)
plot(ema_long, title="EMA 35", color=color.red)
plot(ema_filter, title="EMA 75", color=color.orange)
plot(ema_higher_tf, title="EMA Higher TF", color=color.purple)
// EMA crossover conditions with EMA 75 and higher timeframe EMA filter
longCondition = ta.crossover(ema_short, ema_long) and close > ema_filter and close > ema_higher_tf
shortCondition = ta.crossunder(ema_short, ema_long) and close < ema_filter and close < ema_higher_tf
// Execute long trade with dynamic stop loss and take profit
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit/Stop Loss", "Long", limit=close + 2 * atr, stop=close - 1 * atr)
// Execute short trade with dynamic stop loss and take profit
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Take Profit/Stop Loss", "Short", limit=close - 2 * atr, stop=close + 1 * atr)
// Plot signals on the chart
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")