
Se trata de una estrategia de seguimiento de tendencias que combina el uso de 3 indicadores: el promedio móvil (EMA), el indicador de tendencia (DMI) y el indicador de concentración de promedio móvil (MACD) para determinar la dirección de la tendencia y generar señales de compra y venta. Los componentes clave incluyen la señal de cruce de oro de la EMA, el DMI para determinar la fuerza de la tendencia y la confirmación de la dinámica del MACD.
La lógica central se basa en tres EMA calculados en el ciclo M5 - 34, 89 y 200 - para identificar la tendencia general. Los EMA de ciclo 34 proporcionan la dirección a corto plazo, mientras que los EMA de ciclo 89 y 200 definen la tendencia a medio y largo plazo.
Cuando se compra el disparo de la señal:
Cuando se genera la señal de venta:
Los indicadores MACD también proporcionan una confirmación adicional antes de la admisión.
La estrategia tiene varias ventajas clave:
Los principales riesgos:
La respuesta es simple:
Más mejoras en la estrategia:
En general, se trata de un sistema de seguimiento de tendencias de gran alcance, que combina el uso de una serie de indicadores simples pero prácticos para determinar tendencias en múltiples marcos de tiempo, DMI y MACD para examinar oportunidades de entrada y probabilidades de ganancias. Junto con la optimización adecuada y la gestión de riesgos, puede convertirse en una herramienta eficaz para los operadores de tendencias.
/*backtest
start: 2023-01-18 00:00:00
end: 2024-01-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("2 EMA di+ Buy Sell, strategy ", overlay=true)
// Define the EMA calculation function
ema(src, length) =>
ta.ema(src, length)
// Calculate and plot EMA on M5
ema34_M5 = ema(close, 34)
ema89_M5 = ema(close, 89)
ema200_M5 = ema(close, 200)
// Plot EMAs
plot(ema34_M5, color=color.green, title="EMA 34 M5", linewidth=2)
plot(ema89_M5, color=color.blue, title="EMA 89 M5", linewidth=2)
plot(ema200_M5, color=color.black, title="EMA 200 M5", linewidth=2)
// Define DMI parameters
len = input(14, title="DI Length")
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, len)
plusDI = 100 * ta.rma(plusDM, len) / trur
minusDI = 100 * ta.rma(minusDM, len) / trur
// Calculate ADX
adxValue = 100 * ta.rma(math.abs(plusDI - minusDI) / (plusDI + minusDI == 0 ? 1 : plusDI + minusDI), len)
// Define MACD parameters
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)
// Create buy/sell conditions
buyCondition = close > ema34_M5 and plusDI > 17 and adxValue > minusDI
sellCondition = close < ema34_M5 and minusDI > 17 and adxValue > plusDI
// Strategy logic
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)
// Create alerts for buy/sell signals
alertcondition(buyCondition, title="Buy Signal", message="Buy Signal")
alertcondition(sellCondition, title="Sell Signal", message="Sell Signal")
// Plot buy/sell arrows on the price chart
bgcolor(buyCondition ? color.new(color.green, 90) : sellCondition ? color.new(color.red, 90) : na)
plotarrow(buyCondition ? 1 : sellCondition ? -1 : na, colorup=color.new(color.green, 0), colordown=color.new(color.red, 0), offset=-1)