Estrategia de seguimiento cruzado de la EMA

El autor:¿ Qué pasa?, Fecha: 2023-10-25 17:44:35
Las etiquetas:

img

Resumen general

La estrategia de cruce de EMA genera señales de compra y venta mediante el seguimiento del cruce entre dos líneas de EMA de períodos diferentes. Cuando el EMA de período más corto cruza el EMA de período más largo, se genera una señal de compra. Cuando el EMA de período más corto cruza por debajo del EMA de período más largo, se genera una señal de venta. Esta estrategia también incorpora el indicador SuperTrend para filtrar falsas rupturas.

Estrategia lógica

Esta estrategia se basa principalmente en la cruz de oro y la cruz de muerte de las líneas EMA. Las líneas EMA pueden suavizar los datos de precios y filtrar el ruido. El cruce entre las líneas EMA indica cambios en la tendencia de precios. Cuando el EMA de período más corto (20 períodos) cruza el EMA de período más largo (50 períodos), significa que el precio a corto plazo ahora está por encima del precio a largo plazo, lo que implica una tendencia al alza y genera una señal de compra. Cuando el EMA de período más corto cruza por debajo del EMA de período más largo, significa que el precio a corto plazo se rompe por debajo del precio a largo plazo, lo que implica una tendencia bajista y genera una señal de venta.

Además, esta estrategia utiliza el indicador de SuperTrend para filtrar las señales falsas generadas por los cruces de la EMA. El indicador de SuperTrend se calcula en base al ATR para trazar bandas superiores e inferiores que definen mejor la tendencia real. Cuando el precio se rompe por encima de la banda superior de la SuperTrend, se genera una señal de compra. Cuando el precio se rompe por debajo de la banda inferior de la SuperTrend, se genera una señal de venta. Las señales de cruce de la EMA solo son válidas cuando se confirman por las señales de la SuperTrend. Esto ayuda a eliminar las señales falsas causadas por las fluctuaciones de precios.

Específicamente, la lógica de entrada de la estrategia se define de la siguiente manera:

  1. Cuando 20EMA cruza por encima de 50EMA, y el precio rompe por encima de la banda superior de SuperTrend, genera una señal de compra.

  2. Cuando 20EMA cruza por debajo de 50EMA, y el precio rompe por debajo de la banda inferior de SuperTrend, genera una señal de venta.

El uso de cruces EMA para determinar la dirección de tendencia principal combinado con el filtro SuperTrend podría mejorar la precisión de las señales de negociación.

Ventajas

La estrategia cruzada de la EMA tiene las siguientes ventajas:

  1. Simple de implementar, sólo requiere calcular dos cruces de EMA.

  2. Proporciona un cierto efecto de filtro de ruido.

  3. La combinación con SuperTrend reduce aún más las señales falsas causadas por las fluctuaciones de precios.

  4. Los períodos de EMA se pueden ajustar a diferentes entornos de mercado.

  5. Se puede personalizar para operaciones de dirección larga o corta.

  6. Se puede implementar en diferentes plazos para varios estilos comerciales.

Los riesgos

También existen algunos riesgos asociados con la estrategia de cruce de la EMA:

  1. Las señales cruzadas de la EMA pueden retrasarse durante las fluctuaciones extremas de precios, al no reflejar los cambios de precios a tiempo.

  2. Las líneas EMA tienen un efecto de retraso, lo que podría generar señales incorrectas.

  3. Una configuración inadecuada de los períodos de EMA podría dar lugar a señales falsas excesivas.

  4. El crossover por sí solo no puede determinar la tendencia real, todavía muy rezagado.

  5. La gestión adecuada del riesgo como el stop loss es necesaria para controlar los riesgos.

Algunas maneras de reducir los riesgos:

  1. Optimizar los períodos de EMA para adaptarse mejor a las líneas rápidas y lentas.

  2. Acortar el período de retención y aplicar el stop loss oportuno.

  3. Combina con otros indicadores como promedios móviles, patrones de velas para un juicio completo.

  4. Ajuste la frecuencia de las operaciones a un menor número de operaciones.

Mejoras

Esta estrategia puede reforzarse y optimizarse en los siguientes aspectos:

  1. Optimizar los períodos de EMA para diferentes ciclos y entornos de mercado.

  2. Prueba diferentes indicadores de promedio móvil como SMA, KWMA.

  3. Incorporar más indicadores técnicos para formar modelos multivariados, como MACD, RSI. Aplicar algoritmos de aprendizaje automático para optimizar parámetros y pesos.

  4. Agregue técnicas de stop loss como el stop loss de seguimiento, el stop loss porcentual para controlar los riesgos.

  5. Introduzca filtros de volumen que trabajen con indicadores de volumen para evitar señales falsas.

  6. Optimice las salidas estableciendo reglas de salida, combinando con patrones de gráficos, breakouts, etc.

  7. Confirmar la tendencia en un marco de tiempo más largo, entrar en operaciones en un marco de tiempo más corto para seguir las tendencias.

Conclusión

La estrategia de cruce de la EMA es un sistema de seguimiento de tendencias simple y práctico. Puede identificar tendencias a medio plazo y generar señales de tiempo. Combinar con el filtro SuperTrend podría reducir las operaciones falsas de manera efectiva. Pero aún existen riesgos como retraso y señales erróneas. La estrategia se puede mejorar a través de optimización de parámetros, stop loss, combinación de indicadores, etc. La estrategia de cruce de la EMA es fácil de usar, adecuada para el seguimiento de tendencias a medio y largo plazo y efectiva para los operadores novatos.


/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © alokbothra

//@version=5
strategy("Ema Crossover", overlay=true, initial_capital = 1000)
start = timestamp(2021,1,1,0,0)
end = timestamp(2023,10,30,0,0)
plot (ta.ema(close,20), title = "Ema 20", color = color.green , linewidth = 2)
plot (ta.ema(close,50), title = "Ema 50", color = color.red, linewidth = 2 )

//supertrend 1
Periods = input(title='ATR Period', defval=11)
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3)
changeATR = input(title='Change ATR Calculation Method ?', defval=true)
showsignals = input(title='Show Buy/Sell Signals ?', defval=true)
highlighting = input(title='Highlighter On/Off ?', defval=true)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = close - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn =close+ Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title='Up Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title='UpTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0))
dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title='DownTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0))
mPlot = plot(ohlc4, title='', style=plot.style_circles, linewidth=0)
changeCond = trend != trend[1]

longonly = input.bool(defval = true, title = 'Long Only')
shortonly = input.bool(defval = true, title = 'Short Only')

longCondition = (ta.ema(close, 20) >= ta.ema(close, 50)) 
shortCondition = (ta.ema(close, 20) <= ta.ema(close, 50))
long = (trend == 1)
short = (trend == -1)
sell= short
cover= long
if time >= start and time < end
    if longonly
        if ((longCondition) and (long))
            strategy.entry ("Long Entry", strategy.long, comment ="Long Entry")
        if strategy.position_size > 0
            strategy.close("Long Entry", when = sell, comment = "Long Exit")
    if shortonly
        if ((shortCondition) and (short))
            strategy.entry("Short Entry", strategy.short, comment = "Short Entry")
        if strategy.position_size < 0
            strategy.close("Short Entry", when = cover, comment = "Short Exit")


Más.