Kombi-Strategie von 123 Umkehr- und Glättungs-RSI

Schriftsteller:ChaoZhang, Datum: 2023-10-16 16:27:32
Tags:

img

Übersicht

Diese Strategie kombiniert das 123 Umkehrmuster und den glätteten RSI-Indikator, um Trendumkehrpunkte genauer für eine höhere Gewinnrate zu erfassen.

Strategie Logik

  1. 123 Umkehrmusteridentifizierung: Tiefste Umkehrsignal, wenn die Schlusskurse der vorangegangenen zwei Tage ein Hoch-Tiefpunkt bilden und der Schlusskurs des dritten Tages höher als am Vortag ist.

  2. Glatter RSI-Indikator: Glatter RSI reduziert die Verzögerung des normalen RSI durch Verwendung eines gewichteten gleitenden Durchschnitts. RSI über die hohe Schwelle ist ein Kaufsignal. RSI unter der niedrigen Schwelle ist ein Verkaufssignal.

  3. Strategie-Signal: Das Handelssignal wird nur generiert, wenn sich das Umkehrmuster von 123 und die glätteten RSI-Signale einig sind. Kaufen, wenn die Umkehrung von 123 den Boden zeigt und der RSI das hohe Niveau überschreitet. Verkaufen, wenn die Umkehrung von 123 das obere und der RSI das niedrige Niveau überschreitet.

Vorteile

  1. Durch die Kombination von Trendindikator RSI und Umkehrmuster können Trendumkehrpunkte genau ermittelt werden.

  2. Ein glatter RSI verringert die Verzögerung des normalen RSI.

  3. Das Umkehrmuster ist einfach und leicht zu erkennen.

  4. Flexible Parameter können für verschiedene Instrumente und Zeitrahmen angepasst werden.

  5. Einfach zu optimieren und mit hoher Erweiterbarkeit zu verbessern.

Risiken

  1. Eine einfache Umkehrung kann bei geringfügigen Rückzügen zu falschen Signalen führen.

  2. Eine glatte RSI-Optimierung ist unzureichend und anfällig für Überanpassung.

  3. Eine doppelte Bestätigung führt zu weniger Handelssignalen.

  4. Die Handelskosten werden ignoriert, was kleine Konten davon abhalten kann, Gewinne zu erzielen.

  5. Es gibt keinen Stop-Loss-Mechanismus, um den Abwärtstrend zu begrenzen.

Erweiterung

  1. Optimieren Sie glatte RSI-Parameter, um die beste Kombination zu finden.

  2. Hinzufügen anderer Indikatoren oder Muster zur Signalfilterung.

  3. Implementieren Sie Stop Loss, um Einzelhandelsverluste zu kontrollieren.

  4. Berücksichtigen Sie die Handelskosten, passen Sie die Parameter für verschiedene Kapitalgrößen an.

  5. Prüfparameter für verschiedene Instrumente und Zeitrahmen für optimale Parameter.

  6. Funktionalität für die automatische Optimierung von Parametern hinzufügen.

Zusammenfassung

Die Strategie hat eine klare und einfache Logik und verwendet ein Umkehrmuster in Kombination mit einem Trendindikator, um mögliche Trendumkehrungen zu identifizieren. Sie hat den Vorteil einer breiten Anwendbarkeit und einfacher Optimierung, hat aber auch einige Risiken, die zu beachten und zu verbessern sind.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 20/07/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 new version of RSI oscillator indicator, developed by John Ehlers. 
// The main advantage of his way of enhancing the RSI indicator is smoothing 
// with minimum of lag penalty. 
//
// 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


SRSI(Length, TopBand,LowBand) =>
    pos = 0.0
    xValue = (close + 2 * close[1] + 2 * close[2] + close[3] ) / 6
    CU23 = sum(iff(xValue > xValue[1], xValue - xValue[1], 0), Length)
    CD23 = sum(iff(xValue < xValue[1], xValue[1] - xValue, 0), Length)
    nRes = iff(CU23 + CD23 != 0, CU23/(CU23 + CD23), 0)
    pos:= iff(nRes > TopBand, 1,
    	   iff(nRes < LowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Smoothed RSI", 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, "---- Smoothed RSI ----")
LengthRSI = input(10, minval=1)
TopBand = input(0.8, step=0.01)
LowBand = input(0.2, step=0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSRSI = SRSI(LengthRSI, TopBand,LowBand )
pos = iff(posReversal123 == 1 and posSRSI == 1 , 1,
	   iff(posReversal123 == -1 and posSRSI == -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