Die Stop-Loss-Strategie von Kertner Channel ist eine quantitative Strategie zur Optimierung von Handelsentscheidungen, basierend auf der Methode der Kertner Channel-Analyse, mit Stop-Loss-Regeln. Die Strategie überwacht die Beziehung zwischen den Preisen und dem Auf- und Abstieg der Kanäle, geht bei einem Durchbruch in die Richtung der Mehr-Diskarisierung ein und realisiert ein Gleichgewicht zwischen Risiken und Erträgen gemäß der optimalen Stop-Loss-Punktposition.
Berechnung der mittleren, oberen und unteren Schienen des Kernerkanals.
Berücksichtigen Sie mehrere Chancen, wenn der Preis die Oberbahn berührt; Berücksichtigen Sie die Kaufchancen, wenn er die Unterbahn berührt.
Bei einem Kursbruch ist der Eintritt zu hoch; bei einem Kursbruch ist der Eintritt leer.
Setzen Sie den Stop-Loss-Punkt auf, um den Einstiegspreis zu erhöhen, und den Stop-Loss-Punkt auf, um den Einstiegspreis zu senken.
Der Vorteil dieser Strategie ist die Einführung von Stop-Loss-Regeln, die bei einem schlechten Lauf des Trendverlusts rechtzeitig eingestellt werden; die rechtzeitige Einstellung vor dem Ende der Welle. Gleichzeitig bietet es ein Signal zum Wiedereintritt und eine nachhaltige Teilnahme am Trendhandel.
Die Parameter können für verschiedene Sorten optimiert werden, um die optimale Risiko-Gewinn-Balance zu erreichen.
Kettner-Kanal: Die Richtung der Trends
Stop-Loss-Punkt-Optimierung der Gewinne
Glatte Ein- und Ausfahrt, um falsche Durchbrüche zu vermeiden
Strategie flexibel, Parameter anpassbar
Verwendbar in Kombination mit anderen Indikatoren
Die Stop-Loss-Rate muss entsprechend erhöht werden.
Es besteht ein gewisses Risiko, dass die Verluste aufhören.
Der Kanal könnte durchbrochen werden und zu Verlusten führen
Zu geringe Stoppverluste können zu häufigen Ausfällen führen
Die Stop-Loss-Strategie von Kettner Channel ist eine Optimierung des traditionellen Channel-Tradings, um das Handelsrisiko zu kontrollieren, während Trends verfolgt werden. Durch wiederholte Rückmessungen und Parameteranpassungen können gute Strategieeffekte erzielt werden. Die Strategie verdient eine eingehende Untersuchung und Labortestung, die die Stabilität der Strategie schrittweise verbessern kann.
/*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)