Strategie für den Durchbruch des gleitenden Durchschnittskanals

Schriftsteller:ChaoZhang, Datum: 2024-01-29 10:26:25
Tags:

img

Übersicht

Diese Strategie berechnet die mittleren, oberen und unteren Schienen des Keltner Kanals. Sie füllt die Farbe OBER den mittleren und unteren Schienen. Nachdem sie die Richtung des Kanals bestimmt hat, bricht sie durch und kauft und verkauft.

Strategieprinzip

Der Kernindikator ist der Keltner Channel. Die mittlere Schiene des Kanals ist der N-Tage gewichtete gleitende Durchschnitt des typischen Preises (höchster Preis + niedrigster Preis + Schlusskurs) /3. Die oberen und unteren Schienenlinien des Kanals sind jeweils ein Handelsbereich N-Tage gewichteter gleitender Durchschnitt von der mittleren Schienenlinie entfernt. Wo der Handelsbereich die wahre Volatilität ATR wählen kann oder direkt die Amplitude (höchster Preis - niedrigster Preis) nimmt. Letzteres wird in dieser Strategie angenommen.

Insbesondere beurteilt die Strategie hauptsächlich, ob der Preis durch die obere Schiene oder die untere Schiene bricht, und trifft lange oder kurze Entscheidungen mit der mittleren Schiene als Grenze. Wenn der Schlusskurs größer als die obere Schiene ist, gehen Sie lang; wenn der Schlusskurs kleiner als die untere Schiene ist, gehen Sie kurz. Die Stop-Loss-Linie ist der MA-Wert der mittleren Schiene.

Analyse der Vorteile

  1. Mit Hilfe des Keltner-Kanal-Indikators kann er die Preisschwankungen gut einschätzen und falsche Durchbrüche vermeiden.
  2. Die Verwendung des gleitenden Durchschnitts der mittleren Schiene als Unterstützung kann Verluste reduzieren.
  3. Der Durchbruch der oberen Schiene für lange und der unteren Schiene für kurze gehört zur Trendverfolgungsstrategie, die dem Preisänderungsgesetz der meisten Aktien entspricht.

Risikoanalyse

  1. Durchbruchskanalstrategien sind sehr empfindlich gegenüber Parametern und erfordern wiederholte Tests, um die beste Parameterkombination zu finden.
  2. Wenn die Aktienkurse kurzfristig stark schwanken, erhöhen sich die Handelsrisiken.
  3. Der Effekt hat eine hohe Korrelation mit den Parameter-Einstellungen und den Sorten, und Anpassungen sind erforderlich, um sich an verschiedene Sorten anzupassen.

Optimierungsrichtlinien

  1. Kombinieren Sie andere Indikatoren, um Signale zu filtern und fehlerhafte Transaktionen zu vermeiden.
  2. Optimieren Sie die Parameter, um die beste Parameterkombination zu finden.
  3. Für verschiedene Sorten gibt es erhebliche Unterschiede bei den Parameter-Einstellungen, die separat optimiert werden müssen.

Zusammenfassung

Im Allgemeinen ist diese Strategie relativ einfach und direkt, und es ist eine allgemeine Preisdurchbruchstrategie. Der Vorteil ist, dass die Idee klar und leicht zu verstehen und umzusetzen ist, was für Anfänger geeignet ist, um zu lernen. Aber es gibt auch bestimmte Einschränkungen. Es ist empfindlich auf Parameter, die Ergebnisse sind ungleich, und wiederholte Tests und Optimierungen sind erforderlich. Wenn es mit komplexeren Beurteilungsindikatoren kombiniert werden kann, kann es eine stärkere Handelsstrategie bilden.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © WMX_Q_System_Trading
//@version=3

strategy(title = "WMX Keltner Channels strategy", shorttitle = "WMX Keltner Channels strategy", overlay = true)

useTrueRange = input(true)
length = input(20, minval=5)
mult = input(2.618, minval=0.1)
mah =ema(ema( ema(high, length),length),length)
mal =ema(ema( ema(low, length),length),length)
range = useTrueRange ? tr : high - low
rangema =ema(ema( ema(range, length),length),length)
upper = mah + rangema * mult
lower = mal - rangema * mult
ma=(upper+lower)/2
uc = red
lc=green
u = plot(upper, color=uc, title="Upper")
basis=plot(ma, color=yellow, title="Basis")
l = plot(lower, color=lc, title="Lower")
fill(u, basis, color=uc, transp=95)
fill(l, basis, color=lc, transp=95)


strategy.entry("Long", strategy.long,  stop = upper, when = strategy.position_size <= 0 and close >upper)
strategy.entry("Short", strategy.short,  stop = lower, when = strategy.position_size >= 0 and close<lower)
if strategy.position_size > 0 
    strategy.exit("Stop Long", "Long", stop = ma)

if strategy.position_size < 0 
    strategy.exit("Stop Short", "Short", stop = ma)





Mehr