Trendfolgende Momentum-Strategie


Erstellungsdatum: 2023-10-17 15:26:49 zuletzt geändert: 2023-10-17 15:26:49
Kopie: 0 Klicks: 628
1
konzentrieren Sie sich auf
1617
Anhänger

Trendfolgende Momentum-Strategie

Überblick

Diese Strategie basiert auf einem benutzerdefinierten Indikator-Integrator, der die Richtung der Preisentwicklung durch die Summe der Entfernung des Preises vom Moving Average bestimmen kann, um Trendverfolgung zu ermöglichen.

Strategieprinzip

Die Strategie verwendet benutzerdefinierte Indikatoren, um die Entfernung zwischen dem Preis und dem Moving Average zu summieren, wie folgt:

  1. Berechnen Sie die Preise relativ zu einem einfachen Moving Average mit einer Länge von 200 in der Entfernung k=close-sma ((close 200))

  2. Definition der Akkumulationsperiode s=29, mit der die Werte von k innerhalb der jüngsten s-Periode kumulativ addiert werden: sum = 0, for i = 0 to s, sum := sum + k[i]

  3. Wenn sum > 0 erzeugt mehrere Signal, wenn sum < 0 erzeugt nullsignal

  4. Wenn Sie in eine Mehrposition gehen, sind Sie bei Sum < 0 leer; wenn Sie in eine Defizitposition gehen, sind Sie bei Sum > 0 leer

Die Strategie beurteilt die allgemeine Trendrichtung der Preise durch die Erfassung der positiven und negativen Summe der Entfernung zwischen dem Preis und dem Moving Average. Wenn die Integration positiv ist und der Preis im Aufwärtstrend ist, sollte ein Mehrkopf gehalten werden. Wenn die Integration negativ ist und der Preis im Abwärtstrend ist, sollte ein Leerkopf gehalten werden.

Strategische Vorteile

  1. Benutzung eines benutzerdefinierten Indikator-Integrators, um die Richtung der Preisentwicklung zu bestimmen

  2. Die Verwendung von Integralthemen, um die Entfernung zwischen dem Preis und dem Moving Average zu akkumulieren, verbessert die Genauigkeit der Trends

  3. Verhältnismäßig einfache Logik, leicht verständliche Implementierung, optimierbare Verbesserungen

  4. Flexible Anpassung der Parameter für die Integralphase zur Optimierung der Sensitivität des Integralgerätes bei der Bestimmung von Trends

  5. Erfolgreiche Rückmeldung, stabile Erträge und praktische Einsatzmöglichkeiten

Strategisches Risiko

  1. Eine falsche Integrationszyklus-Einstellung kann dazu führen, dass der Integrator unsensibel reagiert und den Trendwendepunkt verpasst

  2. Unkorrekt eingestellte Moving Average-Längen können dazu führen, dass der Inkomplex die Preisentwicklung falsch einschätzt

  3. Ein plötzliches Ereignis, das zu einem starken Preiswechsel führt, führt zu einer Fehlsignalisierung des Integrators.

  4. Fehlgewählte Handelssorten, wie zum Beispiel Sorten mit zu hoher Schwankungsrate, führen zu schlechten Ergebnissen

Die Risiken können mit folgenden Lösungen begegnet werden:

  1. Optimierung der Integralzyklusparameter, um die Integratoren für Trendänderungen zu sensibilisieren

  2. Die Effektivität von Moving Averages mit unterschiedlichen Längen zu testen, wobei die Längen ausgewählt werden, die Trends effektiv bestimmen

  3. Strategie schließt vor großen Ereignissen ab, um Fehlsignale durch starke Preisschwankungen zu vermeiden

  4. Wählen Sie eine Variante mit geringer Volatilität, um den Integrator zu verbessern

Richtung der Strategieoptimierung

  1. Es kann in Betracht gezogen werden, andere Hilfsindikatoren wie den RSI auf der Basis der Komponenten hinzuzufügen, um eine umfassende Einschätzung zu erstellen.

  2. Man kann die Integration verschiedener Arten von Moving Averages mit der Entfernung zwischen den Preisen untersuchen.

  3. Es kann versucht werden, die Integrationszyklusparameter automatisch zu optimieren, damit sie sich an verschiedene Handelsarten anpassen können

  4. Um einen Fehlsignal bei starken Preisschwankungen zu verhindern, kann ein Handelsvolumenindikator hinzugefügt werden

  5. Die Integratorparameter können automatisch durch Methoden wie maschinelles Lernen optimiert werden, um die Strategie robuster zu machen

Zusammenfassen

Die Strategie erlaubt eine effiziente Trendverfolgung, indem sie die Richtung der Preisentwicklung anhand eines benutzerdefinierten Indikator-Integrators ermittelt. Die Strategie-Logik ist einfach, klar und zeigt eine gute Rückmessung. Die Strategie kann durch Anpassung der Parameter des Integrators, Hinzufügen von Hilfsindikatoren oder automatische Optimierung verbessert werden, um die Strategie stabiler und zuverlässiger in der Praxis zu machen.

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

//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true)

l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=29)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
    sum := sum + k[i]
plot(a,color=yellow,linewidth=2,transp=0)
//bc =  iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)

inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na


longCondition = sum>0
exitlong = sum<0

shortCondition = sum<0
exitshort = sum>0

strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = exitlong)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)

strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = exitshort)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)