
La estrategia es un sistema de seguimiento de tendencias basado en múltiples índices de promedios móviles (EMA) y promedios móviles deslizantes (SMMA). Utiliza cruces de EMA a corto y largo plazo para generar señales de negociación, mientras utiliza SMMA como un indicador de confirmación de tendencias e introduce líneas de EMA adicionales como referencia de puntos de soporte y resistencia. Este método capta las tendencias del mercado y controla eficazmente el riesgo de falsas rupturas.
La estrategia utiliza EMAs de 10 y 22 días como líneas principales, SMMAs de 200 días como filtros de tendencia, y EMAs de 50, 100 y 200 días como juzgamientos auxiliares. Cuando un EMA corto sube por encima de un EMA largo y el precio está por encima de un SMMA, el sistema genera una señal múltiple. Cuando un EMA corto baja por encima de un EMA largo y el precio está por debajo de un SMMA, el sistema genera una señal de vacío.
Se trata de una estrategia de seguimiento de tendencias que combina un sistema de múltiples medias y captura las tendencias y controla el riesgo mediante el uso combinado de diferentes medias periódicas. La principal ventaja de la estrategia radica en su mecanismo de confirmación múltiple, pero también requiere atención en el rendimiento en mercados convulsionados.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover with SMMA and Additional EMAs", overlay=true)
// Input parameters for EMAs and SMMA
emaShortLength = input.int(10, title="Short EMA Length")
emaLongLength = input.int(22, title="Long EMA Length")
smmaLength = input.int(200, title="SMMA Length")
// Additional EMA lengths
ema1Length = input.int(50, title="EMA 1 Length")
ema2Length = input.int(100, title="EMA 2 Length")
ema3Length = input.int(200, title="EMA 3 Length")
// Calculate EMAs and SMMA
emaShort = ta.ema(close, emaShortLength)
emaLong = ta.ema(close, emaLongLength)
smma = ta.sma(ta.sma(close, smmaLength), 2) // SMMA approximation
ema1 = ta.ema(close, ema1Length)
ema2 = ta.ema(close, ema2Length)
ema3 = ta.ema(close, ema3Length)
// Plot EMAs and SMMA on the chart
plot(emaShort, color=color.blue, linewidth=2, title="Short EMA")
plot(emaLong, color=color.red, linewidth=2, title="Long EMA")
plot(smma, color=color.white, linewidth=2, title="SMMA")
plot(ema1, color=color.green, linewidth=1, title="EMA 1")
plot(ema2, color=color.purple, linewidth=1, title="EMA 2")
plot(ema3, color=color.yellow, linewidth=1, title="EMA 3")
// Buy condition: Short EMA crosses above Long EMA and price is above SMMA
buyCondition = ta.crossover(emaShort, emaLong) and close > smma
// Sell condition: Short EMA crosses below Long EMA and price is below SMMA
sellCondition = ta.crossunder(emaShort, emaLong) and close < smma
// Execute Buy order
if (buyCondition)
strategy.entry("Buy", strategy.long)
alert("Buy Signal: Short EMA crossed above Long EMA and price is above SMMA.", alert.freq_once_per_bar_close)
// Execute Sell order
if (sellCondition)
strategy.entry("Sell", strategy.short)
alert("Sell Signal: Short EMA crossed below Long EMA and price is below SMMA.", alert.freq_once_per_bar_close)