Die Dual Moving Average Price Reversal Breakout-Strategie kombiniert zwei Handelssignale, um qualitativ hochwertigere Einstiegsmöglichkeiten zu identifizieren. Zuerst verwendet sie einen 9-tägigen gleitenden Durchschnitt und seine oberen und unteren Schienen, um einen grundlegenden Breakout-Rahmen zu erstellen, führt dann einen stochastischen Indikator ein, um Signale zu filtern, nachdem die Richtung der Gelegenheit mit 123 Mustern beurteilt wurde, und bildet schließlich eine relativ strenge Einstiegsregel. Diese Art von Kombinationsfiltermethode kann die Handelsfrequenz effektiv reduzieren und gleichzeitig die Signalqualität gewährleisten, die für mittelfristige und langfristige Halten geeignet ist.
Die Strategie der doppelten Umkehrung des gleitenden Durchschnittspreises besteht aus zwei Teilstrategien.
Die erste Unterstrategie ist das 123 Musterurteil. Dieses Muster verwendet die Schlusskursbeziehung der letzten zwei Tage, um die wahrscheinliche Richtung des zukünftigen Preisbruchs zu beurteilen. Wenn der heutige Schlusskurs im Vergleich zum Schlusskurs des vorherigen Tages steigt, während der Schlusskurs des vorherigen Tages im Vergleich zum Schlusskurs vor zwei Tagen fiel, gilt es als Kaufsignal; fällt der heutige Schlusskurs im Vergleich zu den vorherigen Tagen, während der Schlusskurs des vorherigen Tages im Vergleich zum Schlusskurs vor zwei Tagen stieg, gilt es als Verkaufssignal. Dieses Muster spiegelt angeblich den Schlüsselfaktor wider, an dem sich die kurzfristige Stimmung von pessimistisch zu optimistisch oder von optimistisch zu pessimistisch dreht. Hier überprüfen wir die Kauf- und Verkaufssignale erneut und erzeugen die endgültige Operation, wenn der stochastische Indikator auch ein entsprechendes Signal oder Überkaufssignal gibt.
Die zweite Unterstrategie ist der Displaced Moving Average Channel Breakout. Diese Strategie berechnet zunächst die exponentielle gleitende Durchschnittslinie des angegebenen Zyklus (z. B. 9 Tage) und fügt dann einen bestimmten Prozentsatz darüber und darunter als die oberen und unteren Schienen des Kanals hinzu. Wenn der Preis durch die oberen Schienen bricht, wird ein Verkaufssignal generiert. Wenn der Preis durch die unteren Schienen bricht, wird ein Kaufsignal generiert. Hier kann die Breite der Expansion und Kontraktion der oberen und unteren Schienen durch den Prozentsatzfaktor gesteuert werden, um die Signalfrequenz anzupassen.
Schließlich wird nur dann ein echtes Signal erzeugt, um den tatsächlichen Handel zu leiten, wenn die Signalrichtungen der beiden Teilstrategien konsistent sind, d.h. das 123 Umkehrsignal und das Kanal-Breakout-Signal in der gleichen Richtung sind. Dieser doppelte Filtermechanismus kann eine Menge falscher Signale filtern, die Handelsfrequenz reduzieren und gleichzeitig eine hohe Zuverlässigkeit jedes Handels gewährleisten.
Die Strategie der doppelten Umkehrung des gleitenden Durchschnittspreises kombiniert mehrere Analysemethoden und weist folgende Vorteile auf:
Der Dual-Signal-Filtermechanismus kann ungültige Signale effektiv reduzieren und jeden Handel qualitativ verbessern.
Das 123 Muster-Urteil gehört zu einer kurzfristigen Umkehrstrategie, während der verdrängte Kanalbruch zu einer mittelfristigen und langfristigen Trendverfolgungsstrategie gehört.
Durch Anpassung der Breite der oberen und unteren Schienen des Kanals kann die Signalfrequenz frei an unterschiedliche Handelspräferenzen angepasst werden.
Mit dem 9-Tage- gleitenden Durchschnitt als Mittellinie des Kanals ist die Parameterwahl vernünftiger, um übermäßig häufige Signale zu vermeiden.
Durch die Anwendung der überkauften und überverkauften Zonen des Stochastischen Indikators wird vermieden, in einen Schockmarkt gefangen zu werden.
Die Strategie der doppelten Umkehrung des gleitenden Durchschnittspreises birgt ebenfalls einige Risiken, hauptsächlich in folgenden Aspekten:
Der Doppelfilter-Signalmechanismus verpasst einige Chancen, die eine einseitige Strategie erfassen kann, mit einer gewissen Gefahr fehlender Aufträge.
123 Kauf- und Verkaufspunkte können nicht alle falschen Ausbrüche vollständig ausfiltern.
Im Falle eines starken Marktwechsels können unsachgemäße Stop-Loss-Einstellungen zu großen Verlusten führen.
Die Logik der ifft-Bedingung ist komplex. Falsche Parameter sind anfällig für Logikfehler, was zu ungültigen Signalurteilen führt.
Daten außerhalb der Stichprobe beeinträchtigen die Parameterstabilität und erfordern eine dynamische Optimierung der Parameter.
Es gibt immer noch Raum für Optimierungen in der Strategie zur Umkehrung des doppelten gleitenden Durchschnittspreises:
Verschiedene Arten von gleitenden Durchschnitten können getestet werden, um Parameterkombinationen mit einer besseren und stabileren Signalqualität auszuwählen.
Kanäle mit geeigneter Breite können entsprechend den Merkmalen der spezifischen Produktdaten ausgewählt werden.
Dynamische Stoppverluste können kombiniert werden, um die maximale Verlustquote zu steuern.
Maschinelle Lernmodelle können für die dynamische Parameteroptimierung eingeführt werden, um die Strategie robuster zu machen.
Es können Filter auf Basis des Handelsvolumens oder der Volatilität hinzugefügt werden, um zu häufige Ein- und Ausstiege in turbulenten Marktbedingungen zu vermeiden.
Durch den Dual Verification Filtering Mechanismus kombiniert die Dual Moving Average Price Reversal Breakout Strategy erfolgreich kurzfristige Umkehrungen und mittelfristige und langfristige Trendverfolgung, um ein effizientes Handelssystem zu bilden, das ungültige Signale effektiv filtern und qualitativ hochwertige Eintrittsmöglichkeiten auswählen kann und eine relativ starke Anpassungsfähigkeit aufweist.
/*backtest start: 2023-11-06 00:00:00 end: 2023-12-06 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 18/03/2021 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // 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. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos MADE(Price,Period, perAb, perBl, disp) => pos = 0.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])) pos strategy(title="Combo Backtest 123 Reversal & MA Displaced Envelope", shorttitle="Combo", overlay = true) line1 = input(true, "---- 123 Reversal ----") Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- line2 = input(true, "---- MA Displaced Envelope ----") 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") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posMADE = MADE(Price,Period, perAb, perBl, disp) pos = iff(posReversal123 == 1 and posMADE == 1 , 1, iff(posReversal123 == -1 and posMADE == -1, -1, 0)) 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 )