
A estratégia de acompanhamento de volume do EMA MACD é uma estratégia de negociação quantitativa que combina a média móvel do índice (EMA) e o indicador de dispersação de tendência da média móvel (MACD). A estratégia é aplicada em gráficos de 5 minutos e visa capturar tendências de preços e mudanças de volume em curto prazo, permitindo negociações de alta taxa de vitória.
O princípio central da estratégia baseia-se em dois indicadores técnicos-chave: EMA e MACD. Primeiro, o uso de EMAs de dois períodos diferentes (os períodos 9 e 21) para identificar a tendência de preço. Quando uma EMA rápida atravessa uma EMA lenta abaixo, é considerada um sinal potencial de alta; o contrário é um sinal de queda.
A estratégia também incorpora a configuração de stop loss e gain dinâmico, usando a média real range (ATR) para se adaptar à volatilidade do mercado. Esta abordagem permite ajustar os parâmetros de gerenciamento de risco em diferentes condições de mercado, aumentando a adaptabilidade e robustez da estratégia.
A estratégia de acompanhamento de dinâmica do EMA MACD é uma estratégia de negociação quantitativa que combina análise técnica e gestão de risco dinâmico. Através da integração de vários indicadores técnicos, a estratégia visa capturar tendências de mercado e mudanças de dinâmica no curto prazo, enquanto o ATR é usado para controlar o risco. Embora a estratégia mostre boa adaptabilidade e potencial, é necessário ter cuidado com riscos como o excesso de negociação e mudanças nas condições de mercado.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-09-24 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA and MACD Strategy for 5-Min Chart", overlay=true)
// Inputs for EMAs
fastLength = input.int(9, title="Fast EMA Length")
slowLength = input.int(21, title="Slow EMA Length")
// Inputs for MACD
macdShortLength = input.int(12, title="MACD Short Length")
macdLongLength = input.int(26, title="MACD Long Length")
macdSignalLength = input.int(9, title="MACD Signal Length")
// Inputs for ATR
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.float(1.5, title="ATR Multiplier")
// Calculate EMAs
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
// Calculate MACD
[macdLine, signalLine, macdHist] = ta.macd(close, macdShortLength, macdLongLength, macdSignalLength)
// Calculate ATR
atrValue = ta.atr(atrLength)
// Plot EMAs
plot(fastEMA, color=color.green, title="Fast EMA")
plot(slowEMA, color=color.red, title="Slow EMA")
// Plot MACD
hline(0, "Zero Line", color=color.gray)
plot(macdLine - signalLine, color=color.blue, title="MACD Histogram", style=plot.style_columns)
plot(macdLine, color=color.green, title="MACD Line")
plot(signalLine, color=color.orange, title="Signal Line")
// Entry conditions
longCondition = ta.crossover(fastEMA, slowEMA) and ta.crossover(macdLine, signalLine)
shortCondition = ta.crossunder(fastEMA, slowEMA) and ta.crossunder(macdLine, signalLine)
// Execute trades
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Dynamic Stop Loss and Take Profit based on ATR
longSL = strategy.position_avg_price - atrValue * atrMultiplier
longTP = strategy.position_avg_price + atrValue * atrMultiplier * 2
shortSL = strategy.position_avg_price + atrValue * atrMultiplier
shortTP = strategy.position_avg_price - atrValue * atrMultiplier * 2
if (strategy.position_size > 0)
strategy.exit("Take Profit/Stop Loss", "Long", stop=longSL, limit=longTP)
if (strategy.position_size < 0)
strategy.exit("Take Profit/Stop Loss", "Short", stop=shortSL, limit=shortTP)
// Alert conditions
alertcondition(longCondition, title="Long Alert", message="Long Entry Signal")
alertcondition(shortCondition, title="Short Alert", message="Short Entry Signal")