Strategie zur Umkehrung des doppelten gleitenden Durchschnitts


Erstellungsdatum: 2023-10-24 10:56:08 zuletzt geändert: 2023-10-24 10:56:08
Kopie: 0 Klicks: 589
1
konzentrieren Sie sich auf
1617
Anhänger

Strategie zur Umkehrung des doppelten gleitenden Durchschnitts

Überblick

Diese Strategie nutzt hauptsächlich den doppelten Moving Average als Kauf- und Verkaufssignal und profitiert bei Trendumkehren. Eine häufige Tracking-Stop-Strategie ist, wenn Sie einen Long-Moving-Average über dem Short-Moving-Average brechen und einen Long-Moving-Average unter dem Short-Moving-Average brechen.

Strategieprinzip

Die Strategie setzt zunächst zwei Moving Averages ein, einen kurzfristigen 20-Tage-Mittelwert und einen längerfristigen 60-Tage-Mittelwert. Die Eintrittsentscheidung erfolgt dann anhand der Kreuzung zwischen dem kurzfristigen und dem langfristigen Mittelwert.

Konkret, wenn die kurzfristige Durchschnittslinie auf die langfristige Durchschnittslinie überschritten wird, bedeutet dies, dass sie derzeit im Aufwärtstrend ist, und dies ist mehr; wenn die kurzfristige Durchschnittslinie unter der langfristigen Durchschnittslinie überschritten wird, bedeutet dies, dass sie derzeit im Abwärtstrend ist, und dies ist leer.

Der Stop-Loss nach einer Über-Low-Loss-Aktion ist ein Trailing-Stop, bei dem der maximale Gewinn auf der Grundlage des Höchst- und des Tiefstpreises gesetzt wird.

Die Hauptsprache des Codes lautet:

  1. Berechnung der 20-Tage-EMA und der 60-Tage-EMA
  2. Beurteilen Sie, ob eine 20-Tage-EMA eine 60-Tage-EMA überträgt, und wenn ja, tun Sie mehr.
  3. Beurteilen Sie, ob die 20-Tage-EMA die 60-Tage-EMA überschreitet oder nicht.
  4. Nach dem Eintritt in eine Multiposition mit einem Stop-Line von maximal 3%
  5. Nach dem Eintritt in eine Short-Position mit einem Stop-Line von 3% des Minimalpreises
  6. Ständige Anpassung der Stop-Loss-Linie bei der Positionshaltung

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Die Idee ist einfach, leicht zu verstehen und umzusetzen.
  2. Mit einer doppelten Mittellinie kann ein falscher Durchbruch wirksam gefiltert werden.
  3. Mit einem Tracking-Stopp-Loss können Sie maximale Gewinne erzielen.
  4. Das ist eine sehr gute Möglichkeit, um die Trendwende zu erfassen.
  5. Der Rückzug ist gut kontrolliert und relativ stabil.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Bei unklaren Trends können sich die doppelten Mittellinien häufig kreuzen, was zu häufigen Handelsverlusten führt.
  2. Die falsche Einstellung des Stoppspielbereichs kann dazu führen, dass der Stopp zu locker oder zu radikal wird.
  3. Wenn die Parameter nicht korrekt eingestellt sind, kann dies dazu führen, dass wichtige Signalpunkte verpasst werden.
  4. Das Unternehmen hat eine hohe Handelsgebühr, die sich auf die Gewinnspanne auswirkt.

Die Optimierung von Risiken kann auf folgende Weise erfolgen:

  1. Wenn die Trends nicht sichtbar sind, wird ein Filtersystem eingesetzt, um Blindhandel zu vermeiden.
  2. Testoptimierung des Stopp-Ranges und Einstellung eines geeigneten Stopp-Ranges.
  3. Die optimale Parameter-Einstellung wird durch Rückmessung und Parameter-Tuning gefunden.
  4. Die Anzahl der Positionen sollte reduziert werden, um die Transaktionskosten zu senken.

Optimierung

Die Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. Zusätzliche Filter für andere Indikatoren bilden ein Mehrfach-Eintrittsmechanismus, um falsche Durchbrüche zu vermeiden. Zum Beispiel kann der RSI-Indikator beurteilt werden.

  2. Optimieren Sie die Periodenparameter der beweglichen Mittellinie, um die beste Kombination von Parametern zu finden. Verschiedene Periodenparameter können durch eine schrittweise Durchlaufmethode getestet werden.

  3. Optimierung des Stop-Loss-Bereichs. Der optimale Stop-Loss-Bereich kann durch Rückmessdaten berechnet werden. Es kann auch ein dynamischer Stop-Loss-Bereich eingestellt werden.

  4. Einrichtung eines Wiedereintrittsmechanismus. Nach einem Stop-Loss-Exit kann eine vernünftige Wiedereintrittslogik eingerichtet werden, um die Anzahl der Geschäfte zu reduzieren.

  5. In Kombination mit Trendbeurteilungskennzahlen wird der Handel ausgesetzt, wenn der Trend nicht sichtbar ist, um einen ungültigen Handel zu vermeiden.

  6. Eintritt in die Position-Management-Mechanismen, um die Positionen und die Stop-Loss-Bereiche dynamisch an die Marktbedingungen anzupassen.

Zusammenfassen

Die Doppel-Moving-Average-Umkehr-Strategie ist insgesamt relativ einfach und praktisch, und die Trendwendepunkte durch die Doppel-Gleichgewicht-Linie zu beurteilen, ist eine häufige und wirksame Methode. Es besteht jedoch ein gewisses Risiko, die Optimierung der Parameter-Setting und Stop-Loss-Bereich zu testen, und mit anderen Filter-Indikatoren in Kombination verwendet werden, um die maximale Wirksamkeit der Strategie.

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


//@version=2
strategy("Noro's Bands Scalper Strategy v1.4", shorttitle = "Scalper str 1.4", 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")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needbe = input(true, defval = true, title = "Bands Entry")
needct = input(false, defval = false, title = "Counter-trend entry")
needdb = input(true, defval = true, title = "Double Body")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close

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

//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd2 = center + distsma * 2
ld2 = center - distsma * 2

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

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

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

//Body
body = abs(close - open)
smabody = needdb == false ? ema(body, 30) : ema(body, 30) * 2
candle = high - low

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and bar == -1)) ? 1 : 0
dn7 = trend == 1 and ((bar == 1 and bar[1] == 1) or (close > hd and needbe == true)) and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and ((bar == -1 and bar[1] == -1) or (close < ld2 and needbe == true)) and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and bar == 1)) ? 1 : 0

if up7 == 1 or up8 == 1 
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na)

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)