Dynamischer gleitender Durchschnitt und keltische Kanal-Handelsstrategie


Erstellungsdatum: 2023-12-25 13:36:40 zuletzt geändert: 2023-12-25 13:36:40
Kopie: 0 Klicks: 701
1
konzentrieren Sie sich auf
1623
Anhänger

Dynamischer gleitender Durchschnitt und keltische Kanal-Handelsstrategie

Übersicht: Die Strategie verwendet dynamische Moving Averages, Supertrend-Indikatoren, Potential-Support- und Resistance-Levels und Kelt-Kanäle, um Preisänderungen in mehreren Ebenen zu beurteilen und Trend-Tracking-Transaktionen zu automatisieren. Der Vorteil der Strategie besteht darin, dass die Handelssignale klar und mit einer hohen Gewinnrate erzeugt werden.

Die Strategie: Diese Strategie verwendet einen dynamischen Moving Average, um die kurzfristige Trendrichtung in den Preisen zu bestimmen. Konkret verwendet das Skript einen einfachen Moving Average oder einen Index Moving Average, je nach Wahl des Benutzers.

Die Strategie nutzt außerdem Supertrend-Indikatoren, um langfristige Trends zu identifizieren. Supertrend-Indikatoren kombinieren die durchschnittliche reale Schwankungsbreite, um ein Kaufsignal zu erzeugen, wenn der Preis über der Oberbahn läuft und der Gestern-Abschlusspreis unter der Oberbahn ist.

Um falsche Signale zu filtern, verwendet diese Strategie den Kelter-Kanal, um den Kanal auf und ab zu zeichnen. In Kombination mit dem Kanalbereich und dem Supertrend-Indikator ist es möglich, einen Trend zu verfolgen. Insbesondere wird ein starkes Kaufsignal erzeugt, wenn der Preis von unten aufwärts aufgeht und der letzte Schlusskurs unterhalb des Aufwärts liegt; ein starkes Verkaufssignal wird erzeugt, wenn der Preis von oben aufwärts aufgeht und der letzte Schlusskurs über dem Untergrund liegt.

Darüber hinaus hilft das Skript, potenzielle Unterstützungs- und Widerstandspunkte zu erfassen, um die kritischen Preisniveaus weiter zu bestimmen. Insgesamt verbessert die mehrschichtige Kombination von Indikatoren und die strengen Durchbruchbedingungen die Qualität der Handelssignale grundlegend.

Strategische Vorteile:

  1. Die Kelt-Kanäle definieren die kritischen Preisspanne, die in Kombination mit den dynamischen Moving Averages und den Supertrend-Indikatoren die Richtung der Tendenz genau bestimmen und die falschen Marktdurchbrüche wirksam filtern.

  2. Strenge Durchbruchbedingungen gewährleisten die Qualität des Handelssignals. Der Preis muss die Auf- und Abwärtsbahnen des Kanals wirklich durchbrechen und gleichzeitig die Position des gestrigen Schlusskurses kombinieren, um eine Bestechung zu vermeiden.

  3. Der Supertrend-Indikator erfasst langfristige Trends und verfolgt langfristige Verhaltensweisen.

  4. Potenzielle Unterstützungs- und Widerstandspunkte helfen bei der Bestimmung von Preis-Keypoints und bieten Gelegenheiten zur Umkehr.

  5. Die Gesamthandelsfrequenz ist moderat und nicht zu intensiv. Nur an den Schlüsselpunkten werden hochwertige Signale ausgegeben, die eine hohe Gewinnrate haben.

Strategische Risiken:

  1. Bei einem Erschütterungsschub kann der Indikator ein falsches Signal geben, was zu einem unwirksamen Durchbruch und Verlust führt. Die Optimierung kann durch Anpassung der Parameter oder durch eine manuelle Intervention aus der SetPosition ausgeschlossen werden.

  2. Die Stopppunkte auf und ab der Bahn des Durchbruchs können zu groß sein, und das Risiko für einzelne Verluste ist hoch. Der Stoppbereich kann entsprechend verkleinert werden, oder ein Zeitstopp kann verwendet werden.

  3. Bei der Verfolgung von Long-Line-Trends kann es vorkommen, dass man einige Short-Line-Umkehrmöglichkeiten verpasst. Die Verwendung von Schwingungsindikatoren kann zur Beurteilung lokaler Anpassungen beitragen.

  4. Moving-Average-Systeme reagieren manchmal langsam auf Ereignisse. In diesem Fall kann eine Verringerung der Moving-Average-Parameter oder die Verwendung anderer Indikatoren in Betracht gezogen werden.

Strategie für die Optimierung: Die Strategie kann in folgenden Richtungen optimiert werden, je nach Marktumfeld und Handelspräferenzen:

  1. Anpassung der Moving Average-Parameter zur Optimierung der Sensibilität des Indikatorsystems auf Preisänderungen.

  2. Anpassung der ATR-Perioden und -Faktorparameter des Supertrendindikators zur Optimierung der Rolle des Supertrendindikators.

  3. Die Stop-Loss-Punkte können angepasst werden, um die Verlustquote pro Einzelschaden auszugleichen. Die Zeitstop-Loss-Punkte können auch verwendet werden, um das Risiko von Einzelschaden weiter zu kontrollieren.

  4. Weitere Hilfsindikatoren wie Brin-Band, KD-Kennzahlen usw. wurden hinzugefügt, um die Chancen für eine lokale Anpassung und Umkehrung weiter zu beurteilen.

  5. Die Variablen “open” und “close” werden verwendet, um eine K-Linien-Grafik zu erstellen, um die Preisentwicklung intuitiv zu beurteilen.

  6. Parameteroptimierung und Rückvergleiche der Wirkung verschiedener Parameterkombinationen.

Zusammenfassung: Die Strategie nutzt mehrere Indikatoren wie Dynamische Moving Averages, Supertrend-Indikatoren und Kelt-Kanäle, um Trend-Tracking-Trading zu automatisieren. Die wichtigsten Vorteile der Strategie sind: klare Signalerzeugung, hohe Gewinnrate; Verfolgung von Long-Line-Trends, Fangen von Richtungsmöglichkeiten; vernünftige Stop-Loss-Punkte, Kontrolle des Risikos von Einzelschäden.

Strategiequellcode
/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mahesh_linux1989

//@version=5
strategy("Intraday Trend Identifier with Dynamic Moving Averages, Super Trend, VWAP, and Keltner Signals", overlay=true, shorttitle="ITI Keltner")

// Input for Moving Average Type
maType = input("SMA", title="Moving Average Type")

// Input for SMA Length
smaLength = input.int(20, title="SMA Length", minval=1, maxval=200)

// Input for EMA Length
emaLength = input.int(20, title="EMA Length", minval=1, maxval=200)

// Selecting Moving Average
selectedMA = maType == "SMA" ? ta.sma(close, smaLength) : ta.ema(close, emaLength)

// Bullish conditions
bullish = high > high[1] and low > low[1] and close > high[1]

// Bearish conditions
bearish = high < high[1] and low < low[1] and close < low[1]

// Strategy logic
longCondition = bullish and not bearish and close > selectedMA
shortCondition = bearish and not bullish and close < selectedMA

if (longCondition)
    strategy.entry("Buy", strategy.long)

if (shortCondition)
    strategy.entry("Sell", strategy.short)

// Exit conditions
bullishExit = close < selectedMA
bearishExit = close > selectedMA

if (bullishExit)
    strategy.close("Buy")

if (bearishExit)
    strategy.close("Sell")

// Keltner Channels
basisKC = maType == "SMA" ? ta.sma(close, smaLength) : ta.ema(close, emaLength)
atrKC = ta.atr(14)
upperKC = basisKC + atrKC
lowerKC = basisKC - atrKC

// Super Trend
atrLengthST = input.int(7, title="ATR Length for Super Trend")
factorST = input.int(2, title="Factor for Super Trend")

atrValueST = ta.atr(atrLengthST)

var float upperST = na
var float lowerST = na

if (close[1] > upperST[1])
    upperST := close[1] - factorST * atrValueST
else
    upperST := close - factorST * atrValueST

if (close[1] < lowerST[1])
    lowerST := close[1] + factorST * atrValueST
else
    lowerST := close + factorST * atrValueST

// Potential Support and Resistance
potentialSupport = ta.lowest(low, smaLength)
potentialResistance = ta.highest(high, smaLength)

// VWAP
//vwapValue = ta.vwap(close, volume)

// Keltner Signals
buySignalKC = close > upperKC and close[1] <= upperKC[1]
sellSignalKC = close < lowerKC and close[1] >= lowerKC[1]

// Super Trend Signals
buySignalST = close > upperST and close[1] <= upperST[1]
sellSignalST = close < lowerST and close[1] >= lowerST[1]

// Plotting
plot(basisKC, color=color.gray, title="Keltner Channel Basis")
plot(upperKC, color=color.blue, title="Upper Keltner Channel")
plot(lowerKC, color=color.blue, title="Lower Keltner Channel")

plot(upperST, color=color.green, title="Super Trend Upper")
plot(lowerST, color=color.red, title="Super Trend Lower")

plot(potentialSupport, color=color.green, title="Potential Support")
plot(potentialResistance, color=color.red, title="Potential Resistance")

//plot(vwapValue, color=color.orange, title="VWAP")

// Plot Bullish and Bearish arrows
plotarrow(buySignalST ? 1 : na, colorup=color.green, offset=-1, title="Bullish Arrow ST")
plotarrow(sellSignalST ? -1 : na, colordown=color.red, offset=-1, title="Bearish Arrow ST")

plotarrow(buySignalKC ? 1 : na, colorup=color.blue, offset=-1, title="Bullish Arrow KC")
plotarrow(sellSignalKC ? -1 : na, colordown=color.orange, offset=-1, title="Bearish Arrow KC")

// Plot candlesticks
plot(open, color=color.gray)
plot(close, color=bullish ? color.green : bearish ? color.red : color.gray)
plot(high, color=bullish ? color.green : bearish ? color.red : color.gray)
plot(low, color=bullish ? color.green : bearish ? color.red : color.gray)