Dynamische Kanal-Trendfolgestrategie mit gleitendem Durchschnitt


Erstellungsdatum: 2024-02-22 15:51:48 zuletzt geändert: 2024-02-22 15:51:48
Kopie: 0 Klicks: 577
1
konzentrieren Sie sich auf
1617
Anhänger

Dynamische Kanal-Trendfolgestrategie mit gleitendem Durchschnitt

Überblick

Die Strategie basiert auf dem Prinzip der Trendverfolgung von dynamischen Kanälen und Gleichlinien. Sie berechnet die dynamischen Kanäle der Preise und bestimmt die Richtung der Preisentwicklung durch die Auf- und Abwärtsbewegung der Kanäle, kombiniert mit der Divergenz der Preisdifferenz in der Gleichlinie, um ein Handelssignal zu erzeugen. Die Strategie ist für den Handel mit mittleren Kurzlinien geeignet.

Grundsätze

Die Strategie basiert auf folgenden Prinzipien:

  1. Berechnung der dynamischen Preiskanäle. Durch die Berechnung des Höchst- und des Tiefstpreises wird die Mittellinie der Kanäle berechnet, wobei die Oberbahn die Mittellinie + die Durchschnittslinie der Preisdifferenz darstellt und die Unterbahn die Mittellinie - die Durchschnittslinie der Preisdifferenz.

  2. Beurteilen Sie die Richtung des Trends. Wenn der Preis in die Oberbahn eintritt, wird er als bullish definiert; wenn der Preis die Unterbahn durchbricht, wird er als bearish definiert.

  3. Die Differenz zwischen den Preisen der einzelnen Aktien und der Differenz zwischen den Preisen der einzelnen Aktien und der Differenz zwischen den Preisen der einzelnen Aktien und der Differenz zwischen den Preisen der einzelnen Aktien und der Differenz zwischen den Preisen der einzelnen Aktien und der Differenz zwischen den Preisen der einzelnen Aktien und der Differenz zwischen den Preisen der einzelnen Aktien und der Differenz zwischen den Preisen der einzelnen Aktien.

  4. Erzeugt ein Handelssignal. Bei einem Boom erzeugt es ein Kaufsignal, wenn der Schlusskurs des Zyklus unter dem Eröffnungskurs liegt. Bei einem Rückgang erzeugt es ein Verkaufsignal, wenn der Schlusskurs des Zyklus über dem Eröffnungskurs liegt.

Vorteile

Diese Strategie hat folgende Vorteile:

  1. Die dynamischen Kanäle erfassen die Preisentwicklung in Echtzeit.
  2. Einheitliche Filterwellen reduzieren falsche Signale.
  3. Eine Kombination aus der Richtung des Trends und der Richtung der K-Linie-Einheit erzeugt ein Handelssignal, um zu vermeiden, dass sie eingeholt wird.

Die Gefahr

Die Strategie birgt auch folgende Risiken:

  1. Die falsche Auswahl von Params kann zu einer Überoptimierung führen.
  2. Die Schwingung kann zu Fehlsignalen führen, wenn sie aufgeräumt wird.
  3. Es ist unvorhersehbar, dass die Preise stark schwanken werden.

Entsprechende Lösungen:

  1. Die strenge Auswahl und Prüfung von Params;
  2. Das ist eine neue Art von Schwingungs-Filterung, um Schwingungs-Diskordinierung zu erkennen.
  3. Setzen Sie einen Stop-Loss-Stopp, um das Risiko zu kontrollieren.

Optimierungsrichtung

Diese Strategie kann optimiert werden durch:

  1. Die Stabilität verschiedener Periodiparameter wird getestet.
  2. Erhöhung der VOLUME- oder Schwankungsmessung;
  3. Eintritt und Ausstieg in Verbindung mit Bandbreiten, Kanälen usw.

Zusammenfassen

Diese Strategie, die die Idee der Integration von dynamischen Kanälen und einheitlichen Trendbeurteilungen beinhaltet, funktioniert gut bei der Erfassung von Trendrichtungen in den mittleren und kurzen Linien. Es gibt jedoch auch einige Einschränkungen, die weiter getestet und optimiert werden müssen, um mehr Marktbedingungen anzupassen.

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


//@version=2
strategy("Noro's Bands Strategy v1.0", shorttitle = "NoroBands str 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
color = input(true, "Color")
needbb = input(false, defval = false, title = "Show Bands")
needbg = input(false, defval = false, title = "Show Background")
src = close

//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//dist
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma

//Trend
trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 90)

//up =  and trend == 1 ? 1 : 0
//dn =  and trend == -1 ? 1 : 0 

up = close < hd and trend == 1 and (close < open or color == false) ? 1 : 0
dn = close > ld and trend == -1 and (close > open or color == false) ? 1 : 0 

longCondition = up == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)