Este es un artículo optimizado para SEO sobre la estrategia de pérdida de pérdida de Keltner Channel:
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.
Calcular las bandas media, superior e inferior del canal de Keltner.
Considere las oportunidades largas cuando el precio toca la banda superior, y las oportunidades cortas cuando toca la banda inferior.
Entra en operaciones largas con breakouts de banda superior y en operaciones cortas con breakouts de banda inferior.
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.
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
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
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)