Die Ressourcen sind geladen. Beförderung...

123 Umkehrung des gleitenden Durchschnitts

Schriftsteller:ChaoZhang, Datum: 2023-10-20 16:05:43
Tags:

img

Übersicht

Die 123 Reversal Moving Average Envelope Strategy ist eine quantitative Handelsstrategie, die 123 Reversal Trading Techniken und Moving Average Envelope Indikatoren kombiniert.

Strategie Logik

Die Strategie besteht aus zwei Teilen:

Der erste Teil ist die 123 Umkehrstrategie. Seine Handelssignale stammen vom KDJ-Oszillator. Insbesondere, wenn der Schlusskurs für zwei aufeinanderfolgende Handelstage niedriger als der vorherige Schlusskurs ist und die 9-tägige langsame K-Linie unter 50 liegt, wird ein Kaufsignal generiert; wenn der Schlusskurs für zwei aufeinanderfolgende Handelstage höher als der vorherige Schlusskurs ist und die 9-tägige schnelle K-Linie über 50 liegt, wird ein Verkaufssignal generiert.

Der zweite Teil ist die gleitende durchschnittliche Umschlagstrategie. Sie verwendet gleitende Durchschnitte und Umschlaglinien über und unter den gleitenden Durchschnitten, um Trends zu bestimmen. Insbesondere wird ein Kaufsignal generiert, wenn der Schlusskurs höher als das obere Band ist; wenn der Schlusskurs niedriger als das untere Band ist, wird ein Verkaufssignal generiert.

Die Strategie kombiniert die beiden oben genannten Arten von Handelssignalen. Sie eröffnet nur lange Positionen, wenn 123 Umkehrungen und gleitende Durchschnittsumschläge beide Kaufsignale geben; sie eröffnet nur kurze Positionen, wenn beide Verkaufssignale geben. Dies filtert einige ungültige Signale aus und reduziert die Handelsfrequenz und verbessert gleichzeitig die Rentabilität.

Analyse der Vorteile

  • Kombination von Umkehrung und Trend zur Verbesserung der Rentabilität

    Die 123 Umkehrstrategie zeichnet sich durch die Fähigkeit aus, Umkehrchancen in der Nähe von wichtigen Unterstützungs- und Widerstandsniveaus zu erfassen.

  • Doppelfilter reduzieren die Handelsfrequenz

    Der Handel wird nur durchgeführt, wenn beide Indikatoren Signale geben, wodurch die Störung durch übermäßige ungültige Signale eines Indikators vermieden und somit die Handelsfrequenz und -kosten reduziert werden.

  • Anpassbare Parameter bieten Flexibilität

    Die verstellbaren Parameter ermöglichen es den Nutzern, die Strategie an die Marktbedingungen und persönliche Vorlieben anzupassen, um eine verbesserte Anpassungsfähigkeit zu erzielen.

  • Einseitiges Handel vereinfacht die Geschäfte

    Die Strategie geht nur lang oder kurz, ohne umgekehrte Positionen. Dies vereinfacht die Logik und verringert die Gefahr, geschlagen zu werden.

Risikoanalyse

  • Umkehrungen im Kampf gegen anhaltende Trends

    Die Strategie stützt sich hauptsächlich auf Umkehrungen bei Gewinnen und kann in langen Trendperioden kontinuierliche Verluste verursachen.

  • Parameteroptimierung ist schwierig

    Die mehrfachen einstellbaren Parameter stellen Optimierungsprobleme dar. Falsche Parameterkombinationen können die Leistung beeinträchtigen.

  • Hoher Umsatz erhöht Handelsrisiken

    Häufige Positionswechsel ermöglichen zwar kleine Gewinne, erhöhen aber auch Kosten und Risiken durch Überhandelungen.

  • Keine Zugriffsgrenze

    Das Fehlen eines Stop-Loss bedeutet keine Begrenzung des maximalen Drawdowns.

Optimierungsrichtlinien

  • Stop-Loss hinzufügen

    Ein Stop-Loss-System, bei dem die Verluste begrenzt werden können, wird eingesetzt, um den Rückzug zu begrenzen.

  • Optimierung der Parameter

    Zurück- und Vorwärtsprüfung, um optimale Parameter für eine höhere Stabilität zu finden.

  • Hinzufügen von Signalfiltern

    Das Hinzufügen von Filtern wie MACD und Bollinger Bands kann Signale validieren und die Qualität weiter verbessern und gleichzeitig unerwünschte Trades reduzieren.

  • Verringerung der Handelshäufigkeit

    Eine moderate Lockerung der Umkehrbedingungen und die Anpassung der gleitenden Durchschnittswerte an einen geringeren Umsatz können Kosten und Risiken reduzieren.

Schlussfolgerung

Die 123 Reversal Moving Average Envelope Strategy kombiniert die Stärken von Reversal Trading und Trendfollowing für eine stetige risikobereinigte Überleistung. Weitere Optimierungen können die Parameterrobustheit für noch bessere Ergebnisse verbessern.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/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 Envelopes are percentage-based envelopes set above and 
// below a moving average. The moving average, which forms the base for 
// this indicator, can be a simple or exponential moving average. Each 
// envelope is then set the same percentage above or below the moving average. 
// This creates parallel bands that follow price action. With a moving average 
// as the base, Moving Average Envelopes can be used as a trend following indicator. 
// However, this indicator is not limited to just trend following. The envelopes 
// can also be used to identify overbought and oversold levels when the trend is 
// relatively flat. 
//
// 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


MAE(Length,PercentShift) =>
    pos = 0.0
    xSMA = sma(close, Length)
    xHighBand = xSMA + (xSMA * PercentShift / 100)
    xLowBand = xSMA - (xSMA * PercentShift / 100)
    pos := iff(close > xHighBand, 1,
             iff(close <xLowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Moving Average Envelopes", 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 Envelope ----")
LengthMA = input(18, minval=1)
PercentShift = input(0.2, minval = 0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMAE = MAE(LengthMA,PercentShift)
pos = iff(posReversal123 == 1 and posMAE == 1 , 1,
	   iff(posReversal123 == -1 and posMAE == -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 )

Mehr