En la carga de los recursos... Cargando...

Estrategia cuantitativa de combinación de canal dinámico de Donchian y media móvil simple

El autor:¿ Qué pasa?, Fecha: 2024-06-17 17:29:48
Las etiquetas:La SMA

img

Resumen general

Esta estrategia combina dos indicadores técnicos: canal de Donchian y promedio móvil simple (SMA). Se abre una posición larga cuando el precio se rompe por debajo de la banda inferior del canal de Donchian y se cierra por encima de la SMA. Por el contrario, se abre una posición corta cuando el precio se rompe por encima de la banda superior del canal de Donchian y se cierra por debajo de la SMA. La posición larga se cierra cuando el precio alcanza la banda superior del canal de Donchian, mientras que la posición corta se cierra cuando el precio alcanza la banda inferior.

Principio de la estrategia

  1. Calcule las bandas superior e inferior del Canal de Donchian. La banda superior es el máximo máximo durante los últimos n períodos, y la banda inferior es el mínimo mínimo durante los últimos n períodos.
  2. El SMA es la media aritmética de los precios de cierre durante los últimos m períodos.
  3. Entrada larga: abrir una posición larga cuando el precio está por debajo de la banda inferior del canal de Donchian y el precio de cierre está por encima de la SMA.
  4. Entrada corta: se abre una posición corta cuando el precio está por encima de la banda superior del canal de Donchian y el precio de cierre está por debajo de la SMA.
  5. Salida larga: Cierra la posición larga cuando el precio alcanza la banda superior del canal de Donchian.
  6. Salida corta: Cierra la posición corta cuando el precio alcanza la banda inferior del canal de Donchian.

Ventajas estratégicas

  1. Combina dos elementos de mercado: tendencia y volatilidad. El SMA captura la tendencia, mientras que el canal Donchian captura la volatilidad, lo que permite a la estrategia aprovechar las oportunidades de retroceso en los mercados de tendencia.
  2. Las posiciones largas y cortas se cierran cuando el precio alcanza las bandas superior e inferior del Canal de Donchian, respectivamente, lo que permite a la estrategia salir de operaciones rentables antes de que la tendencia se invierta.
  3. Pocos parámetros hacen que la optimización sea más fácil. La estrategia solo tiene tres parámetros: período del canal de Donchian, desplazamiento y período SMA, lo que simplifica la optimización.

Riesgos estratégicos

  1. La estrategia tiene una alta frecuencia de entradas y salidas de posiciones, lo que puede erosionar los rendimientos en mercados con altos costos de negociación.
  2. Los indicadores de volatilidad pueden utilizarse para identificar los mercados dentro del rango y suspender la estrategia.
  3. Estabilidad de parámetros insuficiente. Los parámetros óptimos pueden variar significativamente en diferentes instrumentos y marcos de tiempo, lo que indica una baja estabilidad de parámetros. El rendimiento en vivo puede no coincidir con la prueba posterior. Se necesitan pruebas exhaustivas fuera de la muestra y análisis de sensibilidad para confirmar la robustez de los parámetros.

Direcciones para la optimización de la estrategia

  1. Añadir condiciones de entrada opcionales combinadas con otros indicadores. Por ejemplo, requiere que el ADX del DMI esté por encima de un cierto umbral para la entrada, o solo ingrese largo cuando el RSI salga de la zona de sobreventa. Esto puede mejorar la tasa de ganancia de las entradas.
  2. Utilice líneas dinámicas de toma de ganancias en lugar de líneas fijas del canal de Donchian para lograr una función de seguimiento de ganancias.
  3. Ajustar dinámicamente el período del canal de Donchian basado en los niveles de volatilidad. Acortar el período del canal de Donchian en condiciones de mercado de alta volatilidad y alargar el período en condiciones de baja volatilidad. Esto ayuda a adaptarse a diferentes mercados.

Resumen de las actividades

La estrategia de combinación de canal dinámico de Donchian y promedio móvil simple es un marco de estrategia cuantitativa simple y fácil de usar. Construye una lógica de entrada y salida desde las perspectivas de seguimiento de tendencias y ruptura de volatilidad, lo que la hace adecuada para instrumentos con tendencias fuertes. Sin embargo, la estrategia tiene un bajo rendimiento en mercados con frecuentes rangos, y su robustez de parámetros es mediocre. La adaptabilidad y robustez de la estrategia se pueden mejorar mediante la introducción de condiciones de entrada auxiliares, obtención de ganancias dinámicas y mecanismos de autoadaptación de parámetros.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("FBK Donchian Channel Strategy", overlay=true)

// Inputs
donchian_period = input.int(20, title="Donchian Channel Period")
donchian_offset = input.int(1, title="Donchian Channel Offset")
sma_period = input.int(200, title="SMA Period")
start_date = input(timestamp("2023-01-01 00:00 +0000"), title="Start Date")
end_date = input(timestamp("2023-12-31 23:59 +0000"), title="End Date")
trade_type = input.string("Both", title="Trade Type", options=["Buy Only", "Sell Only", "Both"])

// Calculate indicators
donchian_upper = ta.highest(high, donchian_period)[donchian_offset]
donchian_lower = ta.lowest(low, donchian_period)[donchian_offset]
sma = ta.sma(close, sma_period)

// Plot indicators
plot(donchian_upper, color=color.red, title="Donchian Upper")
plot(donchian_lower, color=color.green, title="Donchian Lower")
plot(sma, color=color.blue, title="SMA")

// Helper function to check if within testing period
is_in_testing_period() => true

// Entry conditions
long_condition = low <= donchian_lower and close > sma
short_condition = high >= donchian_upper and close < sma

// Exit conditions
exit_long_condition = high >= donchian_upper
exit_short_condition = low <= donchian_lower

// Open long position
if (is_in_testing_period() and (trade_type == "Buy Only" or trade_type == "Both") and long_condition)
    strategy.entry("Long", strategy.long)

// Close long position
if (is_in_testing_period() and exit_long_condition)
    strategy.close("Long")

// Open short position
if (is_in_testing_period() and (trade_type == "Sell Only" or trade_type == "Both") and short_condition)
    strategy.entry("Short", strategy.short)

// Close short position
if (is_in_testing_period() and exit_short_condition)
    strategy.close("Short")

// Close all positions at the end of the testing period
if not is_in_testing_period()
    strategy.close_all()


Relacionados

Más.