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

Estrategia de seguimiento del canal Keltner

El autor:¿ Qué pasa?, Fecha: 2023-12-25 13:14:24
Las etiquetas:

img

Resumen general

Esta estrategia está diseñada basándose en el indicador Keltner Channel para generar señales comerciales cuando el precio rompe las bandas superior e inferior del canal.

Estrategia lógica

La estrategia utiliza SMA y ATR para construir el Canal de Keltner.

La banda superior = SMA + ATR * multiplicador En el caso de las entidades de crédito, el valor de la inversión se calcula de acuerdo con el método de cálculo de la rentabilidad de la entidad.

Cuando el precio se rompe por encima de la banda superior, se genera una señal de compra.

Dado que sólo va largo, si aparece una señal de venta, cancelará las órdenes anteriores y aplanará la posición.

La lógica es:

  1. Construir el canal Keltner con SMA y ATR
  2. Cuando el precio se rompe por encima de la banda superior, establecer el precio de entrada y ir largo
  3. Cuando el precio se rompe por debajo de la banda inferior, aplanar la posición larga anterior

Análisis de ventajas

Las ventajas de esta estrategia:

  1. Lógica sencilla y clara, fácil de entender e implementar
  2. El canal Keltner es intuitivo para identificar tendencias
  3. Sólo se va largo evita perseguir el riesgo de stop loss
  4. Las órdenes condicionales para las entradas de precisión

Análisis de riesgos

También hay algunos riesgos:

  1. Frecuencia de operaciones abiertas/cerradas durante las fluctuaciones del mercado
  2. Incapaz de aprovechar las breves oportunidades
  3. Falta de mecanismo de salida, necesidad de intervención manual

Soluciones:

  1. Optimizar los parámetros del canal para reducir las señales falsas
  2. Añadir módulo corto para el comercio bidireccional
  3. Añadir mecanismos de salida como el movimiento de stop loss, trailing stop

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Optimizar parámetros como el período del canal, el multiplicador ATR, etc.
  2. Añadir módulo corto basado en la banda inferior de ruptura
  3. Incorporar mecanismos de detención de pérdidas como ATR trailing stop
  4. Considere más filtros para evitar señales falsas
  5. Eficacia de los ensayos en diferentes productos

Conclusión

Esta estrategia captura efectivamente las tendencias del mercado con reglas simples del canal de Keltner. La lógica es clara y fácil de entender. A pesar de la falta de salidas y módulo corto, tiene un gran potencial para mejoras como la sintonización de parámetros, la adición de paradas, ir corto, etc. En general, una estrategia cuantitativa valiosa que vale la pena una investigación y aplicación en profundidad.


/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Keltner Channel Strategy", overlay=true)
source = close

useTrueRange = input(true)
length = input(20, minval=1)
mult = input(1.0)

ma = sma(source, length)
range = useTrueRange ? tr : high - low
rangema = sma(range, length)
upper = ma + rangema * mult
lower = ma - rangema * mult

crossUpper = crossover(source, upper)
crossLower = crossunder(source, lower)

bprice = 0.0
bprice := crossUpper ? high+syminfo.mintick : nz(bprice[1])

sprice = 0.0
sprice := crossLower ? low -syminfo.mintick : nz(sprice[1]) 

crossBcond = false
crossBcond := crossUpper ? true 
 : na(crossBcond[1]) ? false : crossBcond[1]

crossScond = false
crossScond := crossLower ? true 
 : na(crossScond[1]) ? false : crossScond[1]

cancelBcond = crossBcond and (source < ma or high >= bprice )
cancelScond = crossScond and (source > ma or low <= sprice )

if (cancelBcond)
    strategy.cancel("KltChLE")

if (crossUpper)
    strategy.entry("KltChLE", strategy.long, stop=bprice, comment="KltChLE")

if (cancelScond)
    strategy.cancel("KltChSE")

if (crossLower)
    strategy.entry("KltChSE", strategy.short, stop=sprice, comment="KltChSE")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Más.