Estrategia de pérdida de pérdidas y ganancias de Keltner Channel

El autor:¿ Qué pasa?, Fecha: 15 de septiembre de 2023 14:41:46
Las etiquetas:

Este es un artículo optimizado para SEO sobre la estrategia de pérdida de pérdida de Keltner Channel:

Resumen de la estrategia

La estrategia Keltner Channel Stop Loss Take Profit optimiza las decisiones comerciales basadas en el análisis de Keltner Channel mediante la incorporación de reglas de stop loss y take profit.

Estrategia lógica

  1. Calcular las bandas media, superior e inferior del canal de Keltner.

  2. Considere las oportunidades largas cuando el precio toca la banda superior, y las oportunidades cortas cuando toca la banda inferior.

  3. Entra en operaciones largas con breakouts de banda superior y en operaciones cortas con breakouts de banda inferior.

  4. Establecer el objetivo de obtener ganancias en un cierto porcentaje por encima del precio de entrada y el objetivo de stop loss en un cierto porcentaje por debajo del precio de entrada.

La ventaja de esta estrategia es la introducción de reglas de stop loss y take profit para cortar las pérdidas a tiempo cuando la tendencia sale mal, y obtener ganancias antes de que termine la ola.

Los parámetros pueden optimizarse para diferentes activos para lograr el mejor equilibrio riesgo-recompensa.

Ventajas de la estrategia

  • El canal Keltner determina la dirección de la tendencia

  • Stop loss y take profit optimiza la recompensa

  • La entrada y salida suaves evitan las roturas falsas

  • Parámetros flexibles para los ajustes

  • Combinable con otros indicadores

Advertencias sobre el riesgo

  • Las tasas de stop loss y take profit deben incrementarse

  • Se mantienen algunos riesgos de stop loss

  • Los canales pueden romperse con pérdidas

  • Las pequeñas pérdidas de parada provocan paradas frecuentes

Conclusión

La estrategia de Keltner Channel Stop Loss Take Profit optimiza el comercio de canales tradicionales controlando los riesgos mientras se sigue la tendencia.


/*backtest
start: 2023-08-15 00:00:00
end: 2023-08-23 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Optimized Keltner Channels Strategy for BTC", overlay=true)
length = input(9, minval=1)
mult = input(1.0, "Multiplier")
src = input(close, title="Source")
exp = input(true, "Use Exponential MA")
BandsStyle = input("Average True Range", options = ["Average True Range", "True Range", "Range"], title="Bands Style")
atrlength = input(18, "ATR Length")
sl = input(defval=22, minval=0, title="Stop Loss (%)")
tp = input(defval=21, minval=0, title="Take Profit (%)")

esma(source, length)=>
	s = sma(source, length)
	e = ema(source, length)
	exp ? e : s
ma = esma(src, length)
rangema = BandsStyle == "True Range" ? rma(tr(true), length) : BandsStyle == "Average True Range" ? atr(atrlength) : rma(high - low, length)
upper = ma + rangema * mult
lower = ma - rangema * mult
c = color.blue
u = plot(upper, color=color.green, title="Upper")
plot(ma, color=#0094FF, title="Basis")
l = plot(lower, color=color.red, title="Lower")
fill(u, l, color=#0094FF, transp=95, title="Background")
crossUpper = crossover(src, upper)
crossLower = crossunder(src, lower)
bprice = 0.0
bprice := crossUpper ? close+syminfo.mintick : nz(bprice[1])
sprice = 0.0
sprice := crossLower ? close-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 (src < ma or high >= bprice )
cancelScond = crossScond and (src > ma or low <= sprice )
if (cancelBcond)
	strategy.cancel("KltChLE")
if (crossUpper)
	strategy.entry("KltChLE", strategy.long, stop=bprice, comment="Long")
if (cancelScond)
	strategy.cancel("KltChSE")
if (crossLower)
	strategy.entry("KltChSE", strategy.short, stop=sprice, comment="Short")

strategy.exit("long exit", "KltChLE", profit = close * tp * 0.01 / syminfo.mintick, loss = close * sl * 0.01 / syminfo.mintick)
strategy.exit("Short exit", "KltChSE", profit = close * tp * 0.01 / syminfo.mintick, loss = close * sl * 0.01 / syminfo.mintick)

plot(bprice, color=color.green)
plot(sprice, color=color.red)

Más.