Handelsstrategie für Trend-Gleitende Durchschnitte


Erstellungsdatum: 2023-09-21 20:34:43 zuletzt geändert: 2023-09-21 20:34:43
Kopie: 0 Klicks: 672
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Diese Strategie verwendet eine Kombination aus schnellen und langsamen Durchschnittslinien, um die Richtung des Trends zu bestimmen und die mittleren und langen Trends zu erfassen. Der Trendhandel ist eine typische Trendbeobachtungsstrategie.

Strategieprinzip

Die Strategie basiert hauptsächlich auf dem Gold- und Gold-Dead-Fork der Gleichung, um die Markttrends zu beurteilen. Insbesondere verwendet die Strategie eine schnelle 5-Zyklus-Durchschnittslinie und eine langsame 21-Zyklus-Durchschnittslinie.

Wenn die schnelle Durchschnittslinie die langsame Durchschnittslinie durchbricht, bedeutet dies, dass der Markttrend mehr umschlägt, und die Strategie wird beim nächsten K-Linien-Open mehr tun. Wenn die schnelle Durchschnittslinie die langsame Durchschnittslinie unterhalb der schnellen Durchschnittslinie durchbricht, bedeutet dies, dass der Markttrend sich umdreht, und die Strategie wird beim nächsten K-Linien-Open frei machen.

Die Strategie setzt außerdem den Parameter “bars” ein, um falsche Durchbrüche zu filtern. Der Parameter ist auf 2 festgelegt, d.h. eine schnelle Mittellinie benötigt 2 aufeinanderfolgende K-Leitung über einer langsamen Mittellinie, um mehrere Signale zu senden, um falsche Durchbrüche effektiv zu filtern.

Für Kryptowährungen wurde die Strategie mit einer Extremwert-Logik ergänzt. Das Handelssignal wird nur ausgegeben, wenn sich die schnelle und die langsame Durchschnittslinie gleichzeitig im Extrembereich befinden. Dies dient auch dazu, falsche Durchbrüche weiter zu vermeiden.

Strategische Ausstiegsregeln sind einfach und unkompliziert, und der Kurs wird aus der aktuellen Position ausgeschaltet, wenn der Stop-Loss-Punkt ausgelöst wird.

Strategische Vorteile

  • Die Verwendung von Doppel-Weg-Systemen ermöglicht eine effiziente Trendverfolgung.
  • Die kurze Länge der schnellen Durchschnittslinie ermöglicht es, Trendänderungen zeitnah zu erfassen.
  • Langsamer Durchschnittsstrom, der die Hauptrichtung bestimmen kann
  • Die Parameter “bars” filtern einige falsche Durchbrüche.
  • Extreme Beurteilungen verhindern sporadische Falschbrüche in der Nähe von Schlüsselpunkten
  • Die Verwendung von mobilen Stop-Losses zur Risikokontrolle

Strategisches Risiko

  • Die doppelte Gleichgewichtsstrategie ist anfällig für Verluste an Trendwendepunkten
  • Das ist eine sehr schwierige Aufgabe.
  • Der Filter für die Parameter von “bars” ist nicht ausreichend und könnte den Kaufpunkt verpassen.
  • Extreme Beurteilungen verfehlen in einigen Fällen den Kaufpunkt
  • Diese Strategie ist besser geeignet für starke Trendmärkte, als für die Abwicklung von Schwankungen.

Das Risiko kann durch folgende Maßnahmen verringert werden:

  • Optimierung der Parameter für die Antennenbars, um die Balance zu finden
  • Versuchen Sie, andere Indikatoren zu filtern, z. B. MACD
  • Anpassung der Stop-Loss-Punkte, um zu verhindern, dass die Verluste zu früh aufhören
  • Erwägen Sie eine Wiedereingliederung

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Optimierung der Mittellinienparameter

Weitere Kombinationen können getestet werden, um die Mittellinie-Parameter zu finden, die für den aktuellen Markt geeignet sind. Zum Beispiel wird die Schnelllinie mit 10 und die Langleine mit 50 Perioden angepasst.

  1. Hinzufügen von anderen Indikatoren

Es können weitere Indikatoren wie MACD, KDJ und andere getestet werden, um strengere Bedingungen zu setzen und falsche Durchbrüche zu vermeiden.

  1. Optimierung der Zulassungsverfahren

Derzeitige Eintritte sind zu einfach und auf die Durchschnittslinie angewiesen, was wie folgt optimiert werden kann:

  • Wenn man auf der Schnellleine durch die langsame Leine geht, muss man warten, bis MACDDIFF auch die 0 trägt, um einzutreten
  • KDJ ist der erste Spieler, der in die Eingangsspitze kommt, wenn er die Schnellleine durchquert.
  1. Optimierung der Stop-Loss-Mechanismen

Andere Stop-Methoden können getestet werden, z. B. die Verfolgung von Stopps, um zu verhindern, dass Stopps zu früh ausgelöst werden.

  1. Beitritt zur Wiedereingliederung

Wenn die Position beendet ist, kann der Eintritt wieder aufgenommen werden, um die Verlust von Trends zu verringern.

Zusammenfassen

Diese Strategie als eine grundlegende Trend-Tracking-Strategie, die Kernidee ist einfach und direkt, die Verwendung von zwei Gleichlinien, die Trend-Richtung zu beurteilen, und mobile Stop-Loss-Risiken zu steuern. Die Vorteile sind leicht zu verstehen und zu realisieren, kann der Trend profitieren, und die Risiken können auch kontrolliert werden. Aber es gibt auch einige Mängel, die in der Schließung der Märkte nicht korrekt sind, und Stop-Loss zu früh ausgelöst werden kann.

Strategiequellcode
/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's Trend MAs Strategy v2.3", shorttitle = "Trend MAs str 2.3", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, "long")
needshort = input(true, "short")
needstops = input(false, "stops")
stoppercent = input(5, defval = 5, minval = 1, maxval = 50, title = "Stop, %")
usefastsma = input(true, "Use fast MA Filter")
fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast MA Period")
slowlen = input(21, defval = 20, minval = 2, maxval = 200, title = "slow MA Period")
bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q")
needbg = input(false, defval = false, title = "Need trend Background?")
needex = input(true, defval = true, title = "Need extreme? (crypto/fiat only!!!)")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

src = close

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

//PriceChannel 2
lasthigh2 = highest(src, fastlen)
lastlow2 = lowest(src, fastlen)
center2 = (lasthigh2 + lastlow2) / 2

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

//Bars
bar = close > open ? 1 : close < open ? -1 : 0
redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0
greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0

//Fast RSI
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//CryptoBottom
mac = sma(close, 10)
len = abs(close - mac)
sma = sma(len, 100)
max = max(open, close)
min = min(open, close)

//Signals
up1 = trend == 1 and (low < center2 or usefastsma == false) and redbars == 1
dn1 = trend == -1 and (high > center2 or usefastsma == false) and greenbars == 1
up2 = high < center and high < center2 and bar == -1 and needex
dn2 = low > center and low > center2 and bar == 1 and needex
up3 = close < open and len > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0

//Lines
plot(center2, color = red, linewidth = 3, transp = 0, title = "Fast MA")
plot(center, color = blue, linewidth = 3, transp = 0, title = "Slow MA")

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

//Trading
stoplong = up1 == 1 and needstops == true ? close - (close / 100 * stoppercent) : stoplong[1]
stopshort = dn1 == 1 and needstops == true ? close + (close / 100 * stoppercent) : stopshort[1]

if up1 or up2 or up3
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    strategy.exit("Stop Long", "Long", stop = stoplong)

if dn1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    strategy.exit("Stop Short", "Short", stop = stopshort)
    
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()