Strategie für die Dynamik des RSI mit doppelter Umkehrung

Schriftsteller:ChaoZhang, Datum: 2023-09-26
Tags:

Übersicht

Diese Strategie kombiniert das 123 Umkehrmuster und die RSI-Momentumsstrategien, um Signale für hochwahrscheinliche Eintritte an Trendumkehrpunkten zu filtern.

Grundsätze

123 Umkehrstrategie

Diese Strategie stammt aus dem Buch Wie ich mein Geld auf dem Futures-Markt verdreifacht habe von Ulf Jensen, Seite 183.

Insbesondere geht es lang, wenn der Schlusskurs 2 aufeinanderfolgende Tage über dem vorherigen Schlusskurs liegt und die 9-Perioden-Slow-K-Linie unter 50 liegt; es geht kurz, wenn der Schlusskurs 2 aufeinanderfolgende Tage unter dem vorherigen Schlusskurs liegt und die 9-Perioden-Fast-K-Linie über 50 liegt.

Im Wesentlichen verwendet es also das goldene Kreuz und das Todeskreuz des Stochastischen Indikators, um mögliche Umkehrungen zu bestimmen.

RSI-Momentumsstrategie

Diese Strategie verwendet die ROC-Funktion zur Berechnung der Kursänderung und konstruiert einen RSI-Indikator auf der Grundlage der Kursänderung zur Bestimmung der Dynamiktrends.

Es geht lang, wenn der RSI unterhalb der Kaufzone liegt, was auf eine beschleunigte Aufwärtsdynamik hindeutet; es geht kurz, wenn der RSI über der Verkaufszone liegt, was auf eine beschleunigte Abwärtsdynamik hindeutet.

Vorteile

  • 123 Umkehrmuster identifiziert potenzielle Umkehrpunkte nach Konsolidierungen
  • Der RSI-Impuls filtert falsche Ausbrüche effektiv aus
  • Die Akkumulation von Signalen aus beiden Strategien liefert sehr überzeugende Einträge.

Risiken

  • 123 Muster anfällig für Stierkämpfe oder falsche Ausbrüche, muss gefiltert werden
  • Der RSI basiert immer noch auf dem Preis, kann Whipsaws nicht vollständig vermeiden
  • Bei doppelter Signalansammlung fehlen möglicherweise bessere Einstiegspunkte

Möglichkeiten zur Risikominderung:

  1. Stochastische Parameter anpassen, um einen längeren Zeitraum zur Definition des Trends zu verwenden
  2. Anpassung der RSI-Parameter an breitere Kauf-/Verkaufszonen
  3. Verwenden Sie nur ein Signal für Einträge

Optimierungsrichtlinien

  • Prüfung von ROC-Perioden zur Ermittlung optimaler Werte für bestimmte Produkte
  • Test 123 Musterlogik, z. B. Einstellung von schnellen/langsamen K-Linien
  • Testen Sie die Werte der RSI-Zonen, um optimale Kauf-/Verkaufsbereiche zu finden
  • Versuchen Sie, andere Indikatoren wie MACD zu ersetzen Stochastic
  • Testwirkung der Verwendung nur eines Strategiesignals

Schlussfolgerung

Diese Strategie verbessert die Eingabegenauigkeit bei Trendumkehrungen, indem zwei bestätigende Umkehrsignale benötigt werden. 123-Muster identifiziert Umkehrungen und RSI-Impuls überprüft die Gültigkeit. Einfach Parameter für verschiedene Produkte und Präferenzen zu optimieren. Aber vorsichtig mit fehlenden Einträgen aus der doppelten Signalansammlung. Insgesamt ein effektiver Rahmen für die Identifizierung von Umkehrtrends.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 17/06/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
// This is the new-age indicator which is version of RSI calculated upon 
// the Rate-of-change indicator.
// The name "Relative Strength Index" is slightly misleading as the RSI 
// does not compare the relative strength of two securities, but rather 
// the internal strength of a single security. A more appropriate name 
// might be "Internal Strength Index." Relative strength charts that compare 
// two market indices, which are often referred to as Comparative Relative Strength.
// And in its turn, the Rate-of-Change ("ROC") indicator displays the difference 
// between the current price and the price x-time periods ago. The difference can 
// be displayed in either points or as a percentage. The Momentum indicator displays 
// the same information, but expresses it as a ratio.
//
// 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


RSI_ROC(RSILength,ROCLength,BuyZone,SellZone) =>
    pos = 0.0
    xPrice = close
    nRes = rsi(roc(xPrice,ROCLength),RSILength)
    pos := iff(nRes < BuyZone, -1,
	         iff(nRes > SellZone, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & RSI based on ROC", 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, "---- RSI based on ROC ----")
RSILength = input(20, minval=1)
ROCLength = input(20, minval=1)
BuyZone = input(30, minval=1)
SellZone = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRSI_ROC = RSI_ROC(RSILength,ROCLength,BuyZone,SellZone)
pos = iff(posReversal123 == 1 and posRSI_ROC == 1 , 1,
	   iff(posReversal123 == -1 and posRSI_ROC == -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