La estrategia de stop loss de la vía de Kertner es una estrategia cuantitativa para optimizar las decisiones de negociación, basada en la metodología de análisis de la vía de Kertner, con la adición de reglas de stop loss. La estrategia monitorea la relación entre el precio y la subida y bajada de la vía, entra en la dirección de la plusvalía cuando se produce una ruptura, y logra un equilibrio entre el riesgo y los beneficios según el punto óptimo de stop loss.
Cálculo de las vías media, superior y inferior del canal de Kertner.
Considere la posibilidad de hacer más oportunidades cuando el precio toque la vía superior; Considere la posibilidad de hacer hueco cuando toque la vía inferior.
La entrada es mayor cuando el precio se eleva; la entrada es más baja cuando el precio baja.
Establezca un punto de parada para que el precio de entrada suba en cierta proporción y un punto de parada para que el precio de entrada baje en cierta proporción.
La ventaja de esta estrategia es la introducción de reglas de stop loss, que se detienen a tiempo en caso de pérdidas excesivas en el curso de un avance; y se detienen a tiempo antes de que finalice la ola. Al mismo tiempo, también ofrece señales de reingreso y participación sostenible en el comercio de tendencias.
Los parámetros se pueden optimizar para las diferentes variedades para lograr el equilibrio óptimo de riesgo-beneficio.
El canal de Kettner es un ejemplo de la tendencia.
Optimización de las ganancias en el punto de parada
Se puede entrar y salir con facilidad, evitando falsas brechas.
Flexibilidad de la estrategia y ajuste de los parámetros
Se puede utilizar en combinación con otros indicadores
La necesidad de aumentar adecuadamente el Stop Loss Ratio
Todavía hay un riesgo de pérdida
El canal podría ser perforado y generar pérdidas
Las pérdidas de frenado demasiado pequeñas pueden causar fallas frecuentes
La estrategia Stop Loss de la cadena de Kertner se optimiza para el comercio de canales tradicionales, controlando el riesgo de comercio mientras se sigue la tendencia. Se puede obtener un buen efecto de la estrategia mediante el retroceso repetido y el ajuste de los parámetros. La estrategia merece un estudio profundo y una verificación en el laboratorio, que puede aumentar gradualmente la estabilidad de la estrategia.
/*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)