Estrategia de trading cuantitativo de seguimiento de tendencias adaptativo basada en KAMA y MACD

KAMA MACD ATR SL TP
Fecha de creación: 2025-02-20 10:33:36 Última modificación: 2025-02-20 15:01:37
Copiar: 1 Número de Visitas: 521
2
Seguir
319
Seguidores

Estrategia de trading cuantitativo de seguimiento de tendencias adaptativo basada en KAMA y MACD Estrategia de trading cuantitativo de seguimiento de tendencias adaptativo basada en KAMA y MACD

Descripción general

La estrategia es un sistema de seguimiento de tendencias basado en las medias móviles adaptadas a Kaufman (KAMA) y el MACD. Utiliza el KAMA como indicador principal de juicio de tendencias, combinado con el MACD como indicador de confirmación de dinámica, para realizar un seguimiento inteligente de las tendencias del mercado y una captura precisa del momento de negociación. La estrategia funciona en un marco de tiempo de 4 horas y administra el riesgo con objetivos de pérdidas y ganancias dinámicas.

Principio de estrategia

La lógica central de la estrategia se basa en los siguientes componentes clave:

  1. Calculación de KAMA: Utilizando el KAMA de 50 ciclos como indicador de tendencia principal, se ajusta dinámicamente el coeficiente de suavización a través de la relación de eficiencia para que la media móvil se adapte mejor a las condiciones del mercado.
  2. Confirmación del MACD: utiliza el MACD de configuración más lenta ((26, 52, 18) como herramienta de confirmación de tendencias para asegurar que la dirección de la negociación coincida con el movimiento general.
  3. ATR Stop: Utiliza 3 veces el ATR de 14 ciclos como base para el cálculo de los objetivos dinámicos de stop y ganancias.
  4. Las reglas de negociación:
    • El precio sube por KAMA y el MACD está en alza
    • Condiciones de paridad: precios bajan a través de KAMA y el MACD está en baja
    • Gestión de riesgos: establecimiento de objetivos dinámicos de stop loss y ganancias basados en ATR

Ventajas estratégicas

  1. Adaptabilidad: KAMA puede ajustar automáticamente la sensibilidad según la eficiencia del mercado y mantener un buen rendimiento en diferentes entornos de mercado.
  2. La señal es fiable: la combinación con la confirmación de MACD reduce significativamente el riesgo de falsas brechas.
  3. Mejora de la gestión de riesgos: La adopción de objetivos dinámicos de pérdidas y ganancias basados en la volatilidad hace que la gestión de riesgos sea más adaptable.
  4. Optimización de parámetros: los parámetros clave se pueden ajustar según las diferentes características del mercado.

Riesgo estratégico

  1. Riesgo de cambio de tendencia: Las señales falsas pueden ser más frecuentes en mercados con fuertes fluctuaciones.
  2. Riesgo de retraso: KAMA y MACD tienen un cierto retraso y pueden perder el mejor momento para ingresar.
  3. Sensibilidad de los parámetros: los parámetros pueden necesitar ser ajustados para mantener la eficacia de la estrategia en diferentes condiciones de mercado.
  4. Efectos en los costos de las transacciones: las transacciones frecuentes pueden generar costos de transacciones más altos.

Dirección de optimización de la estrategia

  1. Introducción de filtros de volatilidad del mercado para ajustar los parámetros de la estrategia o suspender la negociación en un entorno de alta volatilidad.
  2. Aumentar los indicadores de análisis del volumen de negocios y mejorar la precisión de los juicios de tendencias.
  3. Optimización de la configuración de los parámetros MACD para que se ajusten mejor al marco de tiempo de 4 horas.
  4. Realizar el multiplicador de stop-loss adaptativo y ajustar el multiplicador de ATR en función de la dinámica de la volatilidad del mercado.
  5. Añade un filtro de tiempo para evitar comerciar en momentos de baja liquidez en el mercado.

Resumir

Se trata de una estrategia de seguimiento de tendencias que combina la innovación de los indicadores técnicos clásicos KAMA y MACD. La estrategia tiene una gran utilidad y estabilidad gracias a la combinación de la confirmación de promedios móviles y dinámicas adaptables y un sistema de gestión de riesgos perfectamente implementado. Aunque existe un cierto riesgo de atraso y sensibilidad a los parámetros, la estabilidad y la rentabilidad de la estrategia se pueden mejorar aún más mediante la orientación de optimización sugerida.

Código Fuente de la Estrategia
/*backtest
start: 2024-02-20 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mckat

//@version=5
strategy("4-Hour KAMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === Inputs ===
ama_length = input.int(50, title="KAMA Length for 4H")
fast_length = input.int(3, title="KAMA Fast Length")
slow_length = input.int(30, title="KAMA Slow Length")
atr_length = input.int(14, title="ATR Length")
atr_mult = input.float(3.0, title="ATR Multiplier for Stop-Loss & Take-Profit")
// === KAMA Calculation ===
var float kama = na
price_change = math.abs(close - close[ama_length])
volatility_sum = 0.0
for i = 0 to ama_length - 1
    volatility_sum := volatility_sum + math.abs(close[i] - close[i + 1])
efficiency_ratio = price_change / volatility_sum
smoothing_constant = math.pow(efficiency_ratio * (2 / (fast_length + 1) - 2 / (slow_length + 1)) + 2 / (slow_length + 1), 2)
kama := na(kama[1]) ? close : kama[1] + smoothing_constant * (close - kama[1])
// Plot KAMA
plot(kama, color=color.blue, title="KAMA (50)")
// === ATR for Stop-Loss and Take-Profit ===
atr = ta.atr(atr_length)
stop_loss = close - atr * atr_mult
take_profit = close + atr * atr_mult
// === MACD for Momentum Confirmation (Slow Settings for 4H) ===
[macd_line, signal_line, _] = ta.macd(close, 26, 52, 18)
macd_bullish = macd_line > signal_line
macd_bearish = macd_line < signal_line
// === Entry and Exit Conditions ===
buy_condition = ta.crossover(close, kama) and macd_bullish
sell_condition = ta.crossunder(close, kama) and macd_bearish
// === Execute Trades ===
if (buy_condition)
    strategy.entry("Buy", strategy.long)
if (sell_condition)
    strategy.close("Buy")
// === Dynamic Stop-Loss and Take-Profit ===
strategy.exit("Exit", "Buy", stop=stop_loss, limit=take_profit)
// === Plot Signals ===
plotshape(series=buy_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sell_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")