Strategie der gleitenden Durchschnittsverschiebungshüllkurve


Erstellungsdatum: 2024-02-02 17:02:18 zuletzt geändert: 2024-02-02 17:02:18
Kopie: 0 Klicks: 688
1
konzentrieren Sie sich auf
1617
Anhänger

Strategie der gleitenden Durchschnittsverschiebungshüllkurve

Die Strategie basiert auf einem beweglichen Durchschnitt, um ein Handelssignal zu erzeugen. Die Umschlaglinie wird durch den Prozentsatz des beweglichen Durchschnitts berechnet. Wenn ein früherer Höchststand überschritten wird, wird ein Verkaufssignal erzeugt; Wenn ein früherer Tiefstand untergeht, wird ein Kaufsignal erzeugt.

Strategieprinzip

Die Strategie verwendet den displaced exponential moving average (EMA) als Kernindikator, der nach einer bestimmten Periode um einen Prozentfaktor erweitert wird, um einen Auf- und Abzug zu bilden. Dies bildet ein vollständiges Moving Average Moving Average System. Insbesondere besteht das System aus:

  • EMA ((Price, Period) - Kernindizes bewegliche Durchschnitte
  • top = sEMA[disp] *(100 + perAb)/100) - Auffahrt
  • bott = sEMA[disp] *(100 - perBl)/100) - unteren Bahn

Die Parameter Percent above und Percent below steuern jeweils die prozentualen Abstände zwischen den oberen und unteren Gleisen und den beweglichen Mittelwerten des Kernindex. Die Parameter Displacement werden verwendet, um die periodische Verlagerung zwischen den oberen und unteren Gleisen und den beweglichen Mittelwerten des Kernindex zu steuern.

Auf diese Weise können wir durch Anpassung der oben genannten Parameter eine geeignete Handelszone bilden. Wenn der Preis die Zone durchbricht, wird ein Handelssignal erzeugt.

  • Wenn der Schlusskurs unterhalb des unteren Bott liegt, wird ein Kaufsignal erzeugt
  • Wenn der Schlusskurs über dem oberen Top liegt, wird ein Verkaufssignal erzeugt.

Es ist zu beachten, dass die Strategie auch eine Reverse-Parameter bietet, bei der die Signalrichtung, wenn sie auf “true” gesetzt ist, die entgegengesetzte ist.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Die Verwendung eines Index-Moving Averages als Basisindikator reduziert die Verzögerung der Kurve und erhöht die Sensibilität für Preisänderungen
  2. Mehr anpassbare Parameter, die durch Parameteroptimierung zu besseren Transaktionsergebnissen führen
  3. Das Angebot von Reverse-Modellen für verschiedene Arten von Märkten
  4. Regeln sind einfach, klar, leicht zu verstehen und umzusetzen

Risiken und Vorbeugung

Die Strategie birgt auch einige Risiken, darunter:

  1. Das ist ein falsches Signal, wenn es zu Trübungen kommt.
  2. Fehlgelegte Parameter können zu Übertrieben oder Signalverlust führen
  3. Es ist unmöglich, den Marktlärm effektiv zu filtern, was zu wertlosen Signalen führen könnte.

Um gegen diese Risiken vorzugehen, können wir Optimierungen in folgenden Bereichen vornehmen:

  1. In Kombination mit anderen Indikatoren filtern Sie Signale wie Handelsvolumen, Volatilität usw.
  2. Hinzufügen von Parameteroptimierungsprozessen, um die optimale Kombination von Parametern zu finden
  3. Anpassung der Stop-Loss-Strategie zur Kontrolle von Einzelschäden

Optimierung

Es gibt noch viel Optimierungsmöglichkeiten für diese Strategie, und zwar in folgenden Bereichen:

  1. Hinzufügen von maschinellen Lernmodellen zur automatischen Optimierung und Anpassung von Parametern
  2. Die Funktionen Stop Loss, Move Loss und Trailing Stop werden hinzugefügt, um das Risiko effektiv zu kontrollieren.
  3. Filterung von Signalen in Verbindung mit Emotionsindikatoren und Investoremotionen zur Verbesserung der Signalqualität
  4. Erhöhung des Modellportfolios in Kombination mit anderen technischen Indikatoren zur Identifizierung von Trends und Verbesserung der Gesamtgenauigkeit
  5. Das Modell der Strategie wird fortgeführt, um andere Arten von Index-Grenzlinien zu entwickeln und die Anwendungsbereiche zu erweitern.

Durch diese Optimierungen können die Stabilität, Anpassungsfähigkeit und Effektivität der Strategien weiter verbessert werden.

Zusammenfassen

Die Moving-Average-Strategie nutzt einfache Index-Moving-Average-Systeme und parametrische Bereiche, um klare Handelsregeln zu bilden, die leicht zu interpretieren und umzusetzen sind. Sie ist eine typische Trendverfolgungsstrategie. Durch die Anpassung und Optimierung der Parameter kann die Strategie bessere Wirkung erzielen.

Strategiequellcode
/*backtest
start: 2024-01-25 00:00:00
end: 2024-02-01 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/08/2020
// Moving Average Displaced Envelope. These envelopes are calculated 
// by multiplying percentage factors with their displaced expotential 
// moving average (EMA) core.
// How To Trade Using:
// Adjust the envelopes percentage factors to control the quantity and 
// quality of the signals. If a previous high goes above the envelope 
// a sell signal is generated. Conversely, if the previous low goes below 
// the envelope a buy signal is given.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Moving Average Displaced Envelope Backtest", shorttitle="MA DE", overlay = true)
Price = input(title="Source", type=input.source, defval=close)
Period =input(defval=9, minval=1)
perAb = input(title = "Percent above", defval=.5, minval=0.01, step = 0.1)
perBl = input(title = "Percent below", defval=.5, minval=0.01, step = 0.1)
disp = input(title = "Displacement", defval=13, minval=1) 
reverse = input(false, title="Trade reverse")
pos = 0
sEMA = ema(Price, Period)
top = sEMA[disp] * ((100 + perAb)/100)
bott = sEMA[disp]* ((100 - perBl)/100)
pos := iff(close < bott , 1,
	     iff(close > top, -1, pos[1])) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )