RSI-Oszillator Schildkrötenhandel kurzfristige Strategie

Schriftsteller:ChaoZhang, Datum: 2023-11-14 15:59:25
Tags:

img

Übersicht

Dies ist eine kurzfristige Handelsstrategie, die den RSI-Indikator auf der Grundlage der Schildkröten-Handelsregeln verwendet. Es kombiniert den RSI-Indikator und den Williams Alligator-Indikator, um gegentrendige Trades zu tätigen, wenn der RSI in die Überkauf- oder Überverkaufszone gelangt. Es ist eine relativ konservative kurzfristige Handelsstrategie.

Strategie Logik

Die Strategie beruht hauptsächlich auf folgenden Grundsätzen:

  1. Mit den Schildkrötenhandelsregeln nur dann auf den Markt treten, wenn eine offensichtliche Kehrtwende eintritt, wobei ein relativ konservativer Handelsansatz angewandt wird.

  2. Wenn die RSI-Linie in die Überkaufzone (Default über 60) oder die Überverkaufszone (Default unter 40) eintritt, zeigt sie an, dass sich der Markt am Umkehrpunkt befindet und dann gegen den Trend handelt.

  3. Die Kombination des Williams-Alligator-Indikators zur Bestimmung des Markttrends. Gehen Sie nur kurz, wenn der Alligator die drei Linien (Lippen, Zähne, Kiefer) in einem Abwärtstrend zeigt; gehen Sie nur lang, wenn die drei Linien in einem Aufwärtstrend ausgerichtet sind.

  4. Nur wenn die RSI-Linie in die überkaufte/überverkaufte Zone eintritt und der RSI des RSI auch in die überkaufte/überverkaufte Zone eintritt, werden Handelssignale ausgelöst.

  5. Stellen Sie Stop-Loss und Take-Profit-Linien ein. Schließen Sie die Position für Gewinn oder Stop-Loss, wenn der Preis umkehrt, um die Take-Profit- oder Stop-Loss-Linien zu erreichen.

Analyse der Vorteile

Die Strategie weist folgende Vorteile auf:

  1. Durch die Einführung der strengen Regeln für den Handel mit Schildkröten, der Eintritt in den Markt nur dann, wenn eine offensichtliche Kehrtwende eintritt, können riesige Risiken vermieden werden, wenn der Markt schwankt.

  2. Die Verwendung des RSI-Indikators zur Bestimmung von Marktumkehrpunkten macht den Indikator einfach und klar, leicht zu bedienen.

  3. Die Kombination des Alligator-Indikators zur Bestimmung der Trendrichtung verhindert den Handel gegen den Trend. Der Alligator dient als zusätzlicher Filter zur Verbesserung der Effektivität.

  4. Die Einstellung von Stop-Loss und Take-Profit-Sperren bei Gewinnen und Risikokontrollen.

  5. Die RSI-Parameter und Eintritts-/Austrittskriterien können für verschiedene Märkte angepasst werden, um die Strategie zu optimieren.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Es besteht die Wahrscheinlichkeit falscher Signale des RSI-Indikators. Der RSI kann falsche Überkauf/Überverkaufssignale geben. Die Kombination von Alligator kann falsche Signale reduzieren.

  2. Ein zu breiter Stop-Loss kann zu größeren Verlusten führen.

  3. Die Umkehrungen können nicht genau in den RSI-Überkauf-/Überverkaufszonen stattfinden.

  4. Die Zahl der Geschäfte kann gering sein, wenn es zu Zeiten kommt, in denen kein Handel stattfindet.

  5. Eine längere Entwicklung der Märkte kann den kurzfristigen Handel erschweren.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Optimierung der RSI-Parameter, Anpassung der Überkauf-/Überverkaufszonen an unterschiedliche Märkte.

  2. Anpassung der Alligator-Parameter, um die Genauigkeit der Trendrichtung zu verbessern.

  3. Optimieren Sie die Stop-Loss- und Gewinn-Einstellungen, um die Abzugskontrolle zu maximieren und mehr Gewinne zu erzielen.

  4. Kombination mit anderen Indikatoren wie KDJ, MACD usw. zur Verbesserung der Signalgenauigkeit.

  5. Fügen Sie automatischen Stop-Loss, Trailing Stop-Loss hinzu, um den Einzelhandelsverlust besser zu kontrollieren.

  6. Optimierung der Positionsgröße unter unterschiedlichen Marktbedingungen zur Risikomanagement.

  7. Optimieren Sie die Handelssitzungen, handeln Sie zu Zeiten, wenn der Trend offensichtlicher ist.

Zusammenfassung

Zusammenfassend ist dies eine relativ robuste kurzfristige Handelsstrategie. Sie verfolgt einen konservativen Schildkrötenhandelsansatz, verwendet den RSI-Indikator, um Umkehrpunkte zu bestimmen, und enthält den Alligator-Indikator, um die Trendrichtung zu beurteilen, wodurch risikoreiche Trades wie das Verfolgen von Höhen und Tiefen effektiv vermieden und relativ stabile Gewinne erzielt werden können. Durch die Optimierung von Parametern, Stop-Loss / Take-Profit, die Kombination anderer Indikatoren usw. kann die Strategie kontinuierlich verbessert werden. Insgesamt eignet sich diese Strategie für Anleger, die an einem Gegentrend-Handel interessiert sind und nach stetigen Renditen streben.


/*backtest
start: 2023-11-06 00:00:00
end: 2023-11-07 20:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4

strategy(title="RSI of Ultimate Oscillator [SHORT Selling] Strategy",  shorttitle="RSIofUO" , overlay=false, pyramiding=1,     default_qty_type=strategy.percent_of_equity,  default_qty_value=20, initial_capital=10000, currency=currency.USD)  //default_qty_value=10, default_qty_type=strategy.fixed,

	
//Ultimate Oscillator logic copied from  TradingView   builtin indicator
/////////////////////////////////////////////////////////////////////////////////
length1 = input(5, minval=1), length2 = input(10, minval=1), length3 = input(15, minval=1)


rsiUOLength = input(5, title="RSI UO length", minval=1)

sellLine = input (60, title="Sell at RSIofUO")
coverLine = input (75, title="Cover at RSIofUO")

riskCapital = input(title="Risk % of capital", defval=10, minval=1)
stopLoss=input(3,title="Stop Loss",minval=1)


showUO=input(false, "show Ultimate Oscialltor")



average(bp, tr_, length) => sum(bp, length) / sum(tr_, length)
high_ = max(high, close[1])
low_ = min(low, close[1])
bp = close - low_
tr_ = high_ - low_
avg7 = average(bp, tr_, length1)
avg14 = average(bp, tr_, length2)
avg28 = average(bp, tr_, length3)
out = 100 * (4*avg7 + 2*avg14 + avg28)/7
//Ultimate Oscillator 
/////////////////////////////////////////////////////////////////////////////////

//Willimas Alligator  copied from  TradingView built in Indicator
/////////////////////////////////////////////////////////////////////////////////
smma(src, length) =>
	smma =  0.0
	smma := na(smma[1]) ? sma(src, length) : (smma[1] * (length - 1) + src) / length
	smma

//moving averages logic copied from Willimas Alligator -- builtin indicator in TradingView
sma1=smma(hl2,10)
sma2=smma(hl2,20)
sma3=smma(hl2,50)

//Willimas Alligator
/////////////////////////////////////////////////////////////////////////////////


//drawings
/////////////////////////////////////////////////////////////////////////////////
hline(sellLine, title="Middle Line 60  [Short Here]", color=color.red , linestyle=hline.style_solid)

obLevelPlot = hline(75, title="Overbought",  color=color.blue , linestyle=hline.style_dashed)
osLevelPlot = hline(25, title="Oversold", color=color.blue, linestyle=hline.style_dashed)

fill(obLevelPlot, osLevelPlot, title="Background", color=color.blue, transp=90)
rsiUO = rsi(out,rsiUOLength)

ultPlot=plot(showUO==true? out : na, color=color.green, title="Oscillator")

plot(rsiUO, title = "rsiUO" ,  color=color.purple)
//drawings
/////////////////////////////////////////////////////////////////////////////////




//Strategy Logic 
/////////////////////////////////////////////////////////////////////////////////

//Entry--
//Echeck how many units can be purchased based on risk manage ment and stop loss
qty1 = (strategy.equity  * riskCapital / 100 ) /  (close*stopLoss/100)  

//check if cash is sufficient  to buy qty1  , if capital not available use the available capital only
qty1:= (qty1 * close >= strategy.equity ) ? (strategy.equity / close) : qty1


strategy.entry(id="SERSIofUO", long=false,   qty=qty1, when = sma1<=sma2 and sma2 < sma3 and close<sma2 and crossunder(rsiUO,sellLine) )

//strategy.entry(id="SERSiofUO", long=false, when = sma1< sma2  and crossunder(rsiUO,60) )

barcolor(abs(strategy.position_size)>=1 ? color.purple : na )
bgcolor(abs(strategy.position_size)>=1 ? color.purple : na , transp=70)


//partial exit
strategy.close(id="SERSIofUO", comment="PExit",  qty=strategy.position_size/3, when=abs(strategy.position_size)>=1 and close< strategy.position_avg_price and crossover(rsiUO,30) )

strategy.close(id="SERSIofUO", comment="CloseAll", when=abs(strategy.position_size)>=1 and crossover(rsiUO,coverLine) )

//Strategy Logic 
/////////////////////////////////////////////////////////////////////////////////



Mehr