Estrategia de negociación de tendencias basada en el indicador MACD

El autor:¿ Qué pasa?, fecha: 2024-02-02 11:32:48
Las etiquetas:

img

Resumen general

El núcleo de esta estrategia se basa en el indicador desarrollado en el artículo Trading the Trend publicado por Andrew Abraham en la edición de septiembre de 1998 de la revista TASC. El indicador utiliza el rango promedio verdadero y el canal de precios para determinar la dirección de la tendencia del mercado, combinado con el indicador MACD para el filtrado de señales comerciales, con el objetivo de capturar tendencias a mediano y largo plazo.

Estrategia lógica

La estrategia primero calcula el promedio móvil ponderado de 21 días del rango verdadero medio (ATR) como un rango de volatilidad de línea de base. Luego calcula los precios más altos y más bajos en los últimos 21 días. Al comparar el precio de cierre actual con los límites superiores e inferiores del rango de línea de base, juzga si el precio rompe el canal para determinar la dirección de la tendencia.

Específicamente, el límite superior del canal se define como el precio más alto en los últimos 21 días menos 3 veces la ATR de referencia, y el límite inferior del canal es el precio más bajo en los últimos 21 días más 3 veces la ATR de referencia. Cuando el precio de cierre es superior al límite superior, indica una tendencia alcista. Cuando el precio de cierre es inferior al límite inferior, indica una tendencia bajista.

Al mismo tiempo que determina la dirección de la tendencia, esta estrategia también introduce el indicador MACD para filtrar.

Ventajas

Esta estrategia combina la determinación de tendencias y el filtrado de indicadores, que pueden identificar eficazmente la dirección de la tendencia del mercado a medio y largo plazo sin ser engañados por las fluctuaciones a corto plazo.

  1. Usar el canal de precios para determinar las tendencias e identificar con precisión la dirección a largo plazo
  2. El rango de volatilidad dinámica de referencia se adapta a los cambios del mercado
  3. El filtrado del MACD proporciona un apoyo adicional a la toma de decisiones para evitar la falta de puntos de compra
  4. Los parámetros configurables ofrecen flexibilidad para ajustar el estilo de la estrategia

Los riesgos

La estrategia también presenta algunos riesgos, principalmente en los siguientes aspectos:

  1. Riesgo de ruptura del canal de precios
  2. Riesgo de errores de señalización del MACD
  3. La configuración inadecuada de los parámetros puede causar inestabilidad de la estrategia

Estos riesgos pueden reducirse optimizando los parámetros, ajustando estrictamente el tamaño de las posiciones y deteniendo las pérdidas oportunamente.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos principales:

  1. Prueba diferentes combinaciones de parámetros para encontrar el óptimo

Prueba diferentes combinaciones de longitud o multiplicador para encontrar la combinación de parámetros que produzca el mayor rendimiento basado en backtest.

  1. Añadir filtros con otros indicadores

Prueba que incorpora RSI, KDJ y otros indicadores para filtrar las señales y mejorar la rentabilidad.

  1. Ajuste dinámico de los parámetros

Adaptar los parámetros dinámicamente en función de las condiciones del mercado, como ampliar adecuadamente el rango de canales cuando la tendencia es fuerte o reducir el rango cuando el mercado está más limitado.

Resumen de las actividades

En resumen, esta es una estrategia general de seguimiento de tendencias robusta. Al combinar la determinación de la tendencia del canal de precios y el filtrado MACD, puede identificar efectivamente las tendencias a medio y largo plazo y generar rendimientos constantes. Con la optimización de parámetros, la gestión de riesgos y los ajustes apropiados, esta estrategia puede convertirse en una parte integral de un sistema de negociación.


/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
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/
// © melihtuna

//@version=1
strategy("Trend Trader Strategy with MACD", overlay=true)

// === Trend Trader Strategy ===
Length = input(21),
Multiplier = input(3, minval=1)
MacdControl = input(true, title="Control 'MACD Histogram is positive?' when Buy condition")
avgTR      = wma(atr(1), Length)
highestC   = highest(Length)
lowestC    = lowest(Length)
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
ret = iff(close > hiLimit and close > loLimit, hiLimit,
        iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
pos =	iff(close > ret, 1,
	    iff(close < ret, -1, nz(pos[1], 0))) 
barcolor(pos == -1 ? red: pos == 1 ? green : blue )
plot(ret, color= blue , title="Trend Trader Strategy with MACD")

// === 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 = 2020, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true

// === MACD ===
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
macdCond= MacdControl ? histLine[0] > 0 ? true : false : true

strategy.entry("BUY", strategy.long, when = window() and pos == 1 and macdCond)
strategy.entry("SELL", strategy.short, when = window() and pos == -1)




Más.