Estrategia de cruce entre el MACD y la EMA

El autor:¿ Qué pasa?, Fecha: 2023-12-28 15:22:14
Las etiquetas:

img

Resumen general

Esta estrategia utiliza el cruce de las líneas rápidas y lentas del indicador MACD para determinar entradas y salidas. El indicador EMA también se utiliza para juzgar la dirección de la tendencia. Se hace largo cuando la línea rápida rompe la línea lenta desde abajo y el valor MACD está por debajo de 0; se hace corto cuando la línea rápida rompe la línea lenta desde arriba y el valor MACD está por encima de 0.

Principio de la estrategia

Cuando la línea rápida del MACD rompe la línea lenta desde abajo y el valor del MACD está por debajo de 0, indica que la media móvil a corto plazo del precio comienza a subir y el impulso comienza a fortalecerse, por lo que se puede tomar una posición larga.

El indicador EMA juzga la dirección general de la tendencia. Los valores más altos de la EMA indican una tendencia al alza mientras que los valores más bajos indican una tendencia a la baja. La estrategia solo es larga cuando la EMA indica una tendencia al alza y corta cuando la EMA indica una tendencia a la baja para evitar la negociación contra tendencia.

El stop loss se establece en el valor de la EMA cuando se generó la señal. La EMA puede juzgar bien la tendencia. Establecerlo como el valor de la EMA puede reducir la probabilidad de que la stop loss sea tomada por puntos bajos o altos anteriores. El take profit se establece en 2 veces el precio de entrada, dando una relación de recompensa por riesgo de 2.

Análisis de ventajas

Esta estrategia combina los indicadores MACD y EMA para determinar mejor el momento de entrada y la dirección de la tendencia. El método de stop loss evita perseguir subidas y caídas de ventas. La relación de recompensa por riesgo de 2 es un parámetro relativamente conservador. Los parámetros del indicador MACD se pueden ajustar para adaptarse flexiblemente a los cambios del mercado.

Análisis de riesgos

El indicador MACD tiene un retraso promedio, los giros del indicador tienden a retrasar los giros de precios. La estrategia no puede determinar puntos de entrada específicos, hay cierta ceguera. El stop loss tiende a ser desencadenado por la acción de precios volátiles. Los puntos de toma de ganancias pueden alcanzarse prematuramente o con retraso.

Direcciones de optimización

  1. Optimizar los parámetros del MACD para hacerlo más sensible o estable.
  2. Incorporar otros indicadores para determinar puntos de entrada más precisos.
  3. Ajuste dinámicamente los parámetros de stop loss y take profit.
  4. Optimizar la gestión del dinero para determinar un tamaño de posición más adecuado.

Resumen de las actividades

Esta estrategia combina los indicadores MACD y EMA para determinar el momento de entrada y la dirección de la tendencia. Utiliza métodos simples y razonables para detener la pérdida y obtener ganancias. Se pueden hacer optimizaciones adicionales en el retraso del MACD, los parámetros de stop loss y take profit, etc. para obtener mejores resultados de estrategia.


/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MACD & EMA 200 Strategy", overlay=true)

// MACD Settings
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
src = close

[macdLine, signalLine, _] = ta.macd(src, fastLength, slowLength, signalLength)

// 200 EMA
ema200 = ta.ema(src, 200)
plot(ema200, title="200 EMA", color=color.red)

// Long Condition
longCondition = ta.crossover(macdLine, signalLine) and macdLine < 0 and close > ema200
if (longCondition and strategy.position_size <= 0)
    strategy.entry("Long", strategy.long)
    longStopLoss = ema200
    longTakeProfit = close + 2 * (close - ema200)
    strategy.exit("Exit Long", "Long", stop=longStopLoss, limit=longTakeProfit)

// Short Condition
shortCondition = ta.crossunder(macdLine, signalLine) and macdLine > 0 and close < ema200
if (shortCondition and strategy.position_size <= 0)
    strategy.entry("Short", strategy.short)
    shortStopLoss = ema200
    shortTakeProfit = close - 2 * (ema200 - close)
    strategy.exit("Exit Short", "Short", stop=shortStopLoss, limit=shortTakeProfit)


Más.