Estrategia de seguimiento de tendencias MACD


Fecha de creación: 2024-03-29 15:14:18 Última modificación: 2024-03-29 15:14:18
Copiar: 0 Número de Visitas: 588
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencias MACD

Descripción general

La estrategia de seguimiento de tendencias del MACD es una estrategia de negociación cuantitativa basada en el indicador MACD. La idea principal de la estrategia es utilizar las señales de forks y dead forks del indicador MACD para determinar la dirección de la tendencia y establecer posiciones de encabezado o encabezado en el momento adecuado.

Principio de estrategia

El principio central de la estrategia de seguimiento de la tendencia MACD es el uso del indicador MACD para capturar la formación y la reversión de la tendencia. El indicador MACD se compone de diferencias de dos líneas medias (la media rápida y la media lenta) y se combina con la línea de señal para generar una señal de negociación.

Ventajas estratégicas

  1. La estrategia de seguimiento de tendencias del MACD es capaz de capturar oportunidades de tendencias de manera efectiva, y se puede tomar posiciones en las primeras etapas de la formación de una tendencia, aprovechando al máximo la dinámica de la tendencia.

  2. La estrategia utiliza el MACD Gold Fork Dead Fork y el eje 0 como condiciones de filtración, para filtrar mejor las señales falsas en los mercados convulsivos.

  3. La estrategia utiliza los altos y bajos más recientes como puntos de parada para controlar el margen de riesgo de una sola operación.

  4. La lógica de las estrategias es clara, fácil de entender e implementar, adecuada para los principiantes.

Riesgo estratégico

  1. El MACD es un indicador de retraso en su esencia, y puede sufrir un gran retroceso al comienzo de una reversión de tendencia.

  2. Las estrategias de los mercados en crisis pueden generar transacciones frecuentes, lo que genera mayores costos de operación.

  3. La configuración del punto de parada depende de los puntos altos y bajos más recientes, y en algunos casos puede ocurrir una parada prematura o tardía.

  4. La estrategia no tiene en cuenta la gestión de posiciones y la gestión de fondos, que en la aplicación real necesitan ser optimizadas en combinación con las circunstancias específicas.

Dirección de optimización de la estrategia

  1. Se puede considerar la introducción de otros indicadores técnicos o patrones de comportamiento de los precios como condiciones de filtración para mejorar la fiabilidad y precisión de la señal.

  2. Optimización de la configuración de los puntos de parada, como el uso de ATR o porcentaje de parada, para un mejor control del riesgo.

  3. Introducir un mecanismo de gestión de posiciones y de gestión de fondos para ajustar dinámicamente el tamaño de las posiciones en función de la volatilidad del mercado y la equidad de las cuentas.

  4. Optimización y ajuste de los parámetros para encontrar la combinación de parámetros más adecuada para diferentes mercados y parámetros comerciales.

Resumir

La estrategia de seguimiento de tendencias del MACD es una estrategia de negociación simple y eficaz, cuantificada, para capturar oportunidades de tendencia utilizando las características del indicador MACD. La lógica de la estrategia es clara, fácil de entender y implementar, adecuada para que los principiantes la aprendan.

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

//@version=4
strategy("MACD trendfollow", shorttitle="MACD TF", overlay=true)
// switch = input(true, title="Enable MACD Bar Color")
// X001TK MACD trendfollow Strategy
//
// 
// This strategy combines the non standart approach in MACD strategy to buy once to buy when the MACD value goes above Signal line and a zero line, to sell on the opposite condition.
//
//
// This strategy goes long if the MACD (3,9,5) goes above its Signal and above zero
//
// You can set Stop loss on the recent lowest low when long position is opened and recent highest hugh in short
// 
//
// Exit rule is simple. We close the LONG position once MACD goes below Signal line and close SHORT on the opposite condition 
//
// 
// 
//
// Input
fastMAlen = input(3, minval=1, title="MACD fast moving average")
slowMAlen = input(9,minval=1, title="MACD slow moving average")
signalMACDlen = input(5,minval=1, title="MACD signal line moving average")
// switch = input(true, title="Enable MACD Bar Color")
length = input(1, minval=1)



// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2002, title = "From Year", minval = 2000)
ToMonth   = input(defval = 3, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2029, title = "To Year", minval = 2017)



// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 00, 00)        // backtest finish window
window()  => true // create function "within window of time"

// MACD Calculation
MACD = ema(close, fastMAlen) - ema(close, slowMAlen)
signalMACD = ema(MACD, signalMACDlen)
delta = MACD - signalMACD
fastMA = ema(close,fastMAlen)
slowMA = ema(close,slowMAlen)


// Colors
//bartrendcolor = MACD > signalMACD and MACD > 0? green : MACD < signalMACD and MACD < 0? red : MACD < signalMACD? gray :  gray 
//barcolor(switch?bartrendcolor:na)

barcolour=(MACD > signalMACD and MACD > 0)?#53B987:(MACD < signalMACD and MACD < 0)?#EB4D5C:na
barcolor(color=barcolour)


// === STRATEGY ===
// conditions

longCond =  MACD > signalMACD and MACD > 0 
XlongCond = MACD < signalMACD 
ShortCond = MACD < signalMACD and MACD < 0 
XShortCond = MACD > signalMACD 





strategy.entry("long", strategy.long, when=longCond==true and window()==true )
//strategy.exit(id="Close Long", stop=longStop)//, limit=longTake)
strategy.close("long", when=XlongCond==true and window()==true)
strategy.entry("short", strategy.short,  when=ShortCond==true and window()==true )
//strategy.exit(id="Close Short", stop=shortStop)//, limit=shortTake)
strategy.close("short", when=XShortCond==true and window()==true)

// === /STRATEGY ===