Estrategia de ruptura del canal de media móvil

El autor:¿ Qué pasa?, Fecha: 2024-01-29 10:26:25
Las etiquetas:

img

Resumen general

Esta estrategia calcula los carriles medios, superiores e inferiores del canal de Keltner. Llena el color sobre los carriles medios e inferiores. Después de determinar la dirección del canal, rompe y compra y vende. Es una especie de estrategia de seguimiento de tendencias.

Principio de la estrategia

El indicador principal es el canal de Keltner. El carril medio del canal es el promedio móvil ponderado de N días del precio típico (precio más alto + precio más bajo + precio de cierre) / 3. Las líneas de ferrocarril superiores e inferiores del canal son, respectivamente, un rango de negociación promedio móvil ponderado de N días lejos de la línea de ferrocarril medio. Donde el rango de negociación puede elegir la verdadera volatilidad ATR, o tomar directamente la amplitud (precio más alto - precio más bajo).

Específicamente, la estrategia juzga principalmente si el precio rompe el carril superior o el inferior, y toma decisiones largas o cortas con el carril medio como límite. Si el precio de cierre es mayor que el carril superior, vaya largo; si el precio de cierre es menor que el carril inferior, vaya corto. La línea de stop loss es el valor MA del carril medio.

Análisis de ventajas

  1. Utilizando el indicador del canal de Keltner, tiene un buen juicio sobre el rango de fluctuación de precios, evitando falsos avances.
  2. El uso de la media móvil del tren central como soporte puede reducir las pérdidas.
  3. La estrategia de seguimiento de tendencias consiste en atravesar la barrera superior para largo y la baja para corto, que está en línea con la ley de cambio de precios de la mayoría de las acciones.

Análisis de riesgos

  1. Las estrategias de canal de avance son muy sensibles a los parámetros y requieren pruebas repetidas para encontrar la mejor combinación de parámetros.
  2. Cuando los precios de las acciones fluctúan fuertemente a corto plazo, los riesgos comerciales aumentarán.
  3. El efecto tiene una alta correlación con los parámetros y las variedades, y se requieren ajustes para adaptarse a las diferentes variedades.

Direcciones de optimización

  1. Combine otros indicadores para filtrar las señales y evitar transacciones erróneas, como el indicador de impulso, el indicador de volatilidad, etc.
  2. Optimizar los parámetros para encontrar la mejor combinación de parámetros.
  3. Habrá diferencias considerables en la configuración de parámetros para las diferentes variedades, que deben optimizarse por separado.

Resumen de las actividades

En general, esta estrategia es relativamente simple y directa, y es una estrategia de avance de precio común. La ventaja es que la idea es clara y fácil de entender e implementar, lo que es adecuado para que los principiantes aprendan. Pero también hay ciertas limitaciones. Es sensible a los parámetros, los resultados son desiguales y se requieren pruebas y optimización repetidas. Si se puede combinar con indicadores de juicio más complejos, puede formar una estrategia de negociación más poderosa.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © WMX_Q_System_Trading
//@version=3

strategy(title = "WMX Keltner Channels strategy", shorttitle = "WMX Keltner Channels strategy", overlay = true)

useTrueRange = input(true)
length = input(20, minval=5)
mult = input(2.618, minval=0.1)
mah =ema(ema( ema(high, length),length),length)
mal =ema(ema( ema(low, length),length),length)
range = useTrueRange ? tr : high - low
rangema =ema(ema( ema(range, length),length),length)
upper = mah + rangema * mult
lower = mal - rangema * mult
ma=(upper+lower)/2
uc = red
lc=green
u = plot(upper, color=uc, title="Upper")
basis=plot(ma, color=yellow, title="Basis")
l = plot(lower, color=lc, title="Lower")
fill(u, basis, color=uc, transp=95)
fill(l, basis, color=lc, transp=95)


strategy.entry("Long", strategy.long,  stop = upper, when = strategy.position_size <= 0 and close >upper)
strategy.entry("Short", strategy.short,  stop = lower, when = strategy.position_size >= 0 and close<lower)
if strategy.position_size > 0 
    strategy.exit("Stop Long", "Long", stop = ma)

if strategy.position_size < 0 
    strategy.exit("Stop Short", "Short", stop = ma)





Más.