Estrategia de conversión de media móvil MACD alcista-bajista


Fecha de creación: 2023-12-08 15:29:41 Última modificación: 2023-12-08 15:29:41
Copiar: 0 Número de Visitas: 772
1
Seguir
1621
Seguidores

Estrategia de conversión de media móvil MACD alcista-bajista

Descripción general

La estrategia de conversión de la línea media del MACD a la línea media del MACD calcula el DIFF y la línea media del DEA para determinar si la tendencia del mercado está cambiando, lo que genera una señal de negociación. Cuando el DIFF atraviesa el DEA, haga más; cuando el DIFF atraviesa el DEA, haga vacío.

Principio de estrategia

La estrategia se basa principalmente en el promedio DIFF y DEA del indicador MACD. El MACD representa el diferencial del promedio móvil del índice, compuesto por las líneas DIFF, DEA y MACD. Dentro de ellas, la línea DIFF representa el diferencial entre el promedio de la EMA a corto plazo y el promedio de la EMA a largo plazo.

Cuando el DIFF sube por encima de la DEA, la media corta comienza a fortalecerse y el mercado entra en una posición más alta, y cuando el DIFF baja por encima de la DEA, la media corta comienza a debilitarse y el mercado entra en una posición baja. Por lo tanto, la estrategia hace más en el DIFF al atravesar la DEA y hace más en la baja.

Al mismo tiempo, la estrategia también combina la línea media de EMA del precio para filtrar brechas falsas. Solo se hace más cuando DIFF rompe DEA hacia arriba y el precio está por debajo del precio más alto de la última vez; solo se hace vacío cuando DIFF rompe DEA hacia abajo y el precio está por encima del precio más bajo de la última vez.

Análisis de las ventajas

La estrategia de conversión de la línea media del MACD a la línea media del MACD y a la línea media del precio EMA evita las falsas señales generadas solo por el indicador del MACD y mejora la eficacia de la negociación. La estrategia juzga que la tendencia del mercado cambia rápidamente y es adecuada para operaciones de línea corta.

Las ventajas se reflejan principalmente en:

  1. El indicador MACD se utiliza para determinar los puntos de cambio de tendencia y capturar el momento en que el mercado cambia
  2. Filtrado en combinación con la línea media del precio EMA para reducir la posibilidad de falsas rupturas
  3. Las señales de negociación se generan rápidamente y son adecuadas para operaciones de línea corta.
  4. El seguimiento de la tendencia permite obtener ganancias a medio plazo
  5. El uso de una estrategia de cambio de tendencia que se ajusta a la mentalidad de la mayoría de los operadores

Análisis de riesgos

La estrategia de conversión de la línea media del MACD a un toro o a un oso también tiene algunos riesgos, como:

  1. Los indicadores MACD son propensos a generar señales erróneas que requieren una verificación de los filtros de precios EMA, pero también se pierden parte de los movimientos
  2. Tenga en cuenta la línea media de DIFF y DEA, si los parámetros no se ajustan correctamente, la señal de error aumentará
  3. Las señales de ruptura solo juzgan una línea K, lo que puede ocasionar un fenómeno de trampa.
  4. La estrategia utiliza el cruce DIFF y DEA como su principal señal de negociación, y si la situación no es clara, la señal de cruce se genera con frecuencia, lo que aumenta la frecuencia de la negociación

Estos riesgos pueden ser optimizados principalmente en los siguientes aspectos:

  1. Ajuste de los parámetros MACD para reducir las señales falsas
  2. Aumentar la intensidad de los filtros para reducir la probabilidad de ser atrapados
  3. Aumentar los filtros de tenencia de posiciones y limitar la frecuencia de las transacciones

Dirección de optimización

La estrategia de conversión de la línea media del MACD a un toro y un oso también tiene espacio para optimización, que se puede optimizar desde las siguientes dimensiones:

  1. Optimización de los parámetros MACD y ajustabilidad de los ciclos DIFF y DEA.
  2. En la actualidad, el mercado de divisas de la India está en pleno apogeo.
  3. Aumentar las estrategias de detención de pérdidas y controlar las pérdidas individuales.
  4. En combinación con otros indicadores de filtración, como BOLL en el tren, KD, etc.;
  5. En la actualidad, el comercio de divisas en el mundo se ha convertido en un mercado de divisas.
  6. Se puede desarrollar una estrategia de salida o una plantilla de estrategia de parada basada en el marco de la estrategia.

Resumir

La estrategia de conversión de la línea media del MACD a la línea media del MACD a través de DIFF, DEA para determinar el momento en que el mercado entra en el mercado y los puntos vacíos, y en combinación con el precio de la línea media de la EMA para filtrar las señales falsas, para lograr el efecto de determinar rápidamente la conversión de la tendencia del mercado. La estrategia utiliza una lógica de negociación simple y clara, para determinar rápidamente los puntos de conversión, para la línea corta y la línea media.

Código Fuente de la Estrategia
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("macd_strategy", 
          shorttitle="macd", 
          overlay=true, 
          pyramiding=1, 
          max_bars_back=5000, 
          calc_on_order_fills = false, 
          calc_on_every_tick=true, 
          default_qty_type=strategy.percent_of_equity, 
          default_qty_value=100, 
          commission_type =strategy.commission.percent, 
          commission_value=0.00075)
[diff, dea, _] = macd(close, 12, 26, 7)
dea_close = ema(diff, 3)
price = ema(close, 9)
plot(price)
cross_over_price = na
cross_over_signal = na
cross_over_price := cross_over_price[1]
cross_over_signal := cross_over_signal[1]

cross_under_price = na
cross_under_signal = na
cross_under_price := cross_under_price[1]
cross_under_signal := cross_under_signal[1]
if (crossover(diff,dea))
    cross_over_price := price[1]
    cross_over_signal := diff
if (crossunder(diff,dea))
    cross_under_price := price[1]
    cross_under_signal := diff
if dea > 0
    cross_over_price = na
    cross_over_signal = na
else
    cross_under_price = na
    cross_under_signal = na
if diff > 0
    if cross_under_price > cross_under_price[1]*1 and cross_under_signal < cross_under_signal[1]*0.95
        strategy.entry("S", strategy.short,  comment="S")
else
    if cross_over_price < cross_over_price[1]*1 and cross_over_signal > cross_over_signal[1]*0.95
        strategy.entry("B", strategy.long,  comment="B")
// strategy.exit("exit_s", "S", stop = strategy.position_avg_price*1.05, when=strategy.position_size < 0)
// strategy.exit("exit_b", "B", stop = strategy.position_avg_price*0.95, when=strategy.position_size > 0)
strategy.close_all(when=(strategy.position_size < 0 and (dea < 0 or diff > cross_under_signal*1 or crossover(diff, dea)) or (strategy.position_size > 0 and (dea > 0 or diff < cross_over_signal*1 or crossunder(diff, dea)))))