Quantitative Handelsstrategie auf Basis von StochRSI

Schriftsteller:ChaoZhang, Datum: 2023-12-07 16:05:17
Tags:

img

Übersicht

Diese Strategie wird auf der Grundlage des StochRSI-Indikators entwickelt. Die Strategie verwendet hauptsächlich den StochRSI-Indikator, um überkaufte und überverkaufte Situationen zu beurteilen. Kombiniert mit dem RSI-Indikator, um einige falsche Signale auszufiltern, gehen Sie kurz, wenn der StochRSI-Indikator überkauftes Gebiet zeigt, und gehen Sie lang, wenn er überverkauftes Gebiet zeigt, um Gewinne zu erzielen.

Strategieprinzip

Diese Strategie wendet hauptsächlich den StochRSI-Indikator an, um überkaufte und überverkaufte Bereiche auf dem Markt zu beurteilen. Der StochRSI-Indikator besteht aus der K-Linie und der D-Linie. Die K-Linie spiegelt die Position des aktuellen RSI-Wertes in der RSI-Preisklasse über einen letzten Zeitraum wider. Die D-Linie ist der gleitende Durchschnitt der K-Linie. Wenn die K-Linie über die D-Linie geht, ist dies ein überkaufter Bereich und es können Long-Positionen genommen werden. Wenn die K-Linie unter die D-Linie fällt, ist dies ein Überverkaufsbereich und es können Short-Positionen genommen werden.

Insbesondere berechnet die Strategie zuerst den Wert des 14-Perioden-RSI-Indikators und wendet dann den StochRSI-Indikator auf den RSI-Indikator an. Die StochRSI-Indikatorparameter werden mit einer Länge von 14, einer glatten K-Linienperiode von 3 und einer glatten D-Linienperiode von 3 festgelegt. Wenn die K-Linie über das vom Benutzer definierte Überverkaufsgebiet (Standard 1) überschreitet, wird eine Long-Position eingenommen. Wenn die K-Linie unter das vom Benutzer definierte Überkaufsgebiet fällt (Standard ist 99), wird eine Short-Position eingenommen.

Der Stop-Loss ist standardmäßig auf 10000. Der Take-Profit verwendet einen Trailing-Stop mit einem Standard-Trailing-Punkt von 300 und einem Offset von 0.

Analyse der Vorteile

  1. Die Verwendung des StochRSI-Indikators zur Bestimmung von Überkauf- und Überverkaufsgebieten ist zuverlässiger als der einzelne RSI-Indikator
  2. Filtern von Signalen mit RSI verhindert falsche Ausbrüche
  3. Einrichtung von Stop-Loss- und Take-Profit-Mechanismen zur Risikokontrolle

Risikoanalyse

  1. Der StochRSI-Indikator kann falsche Signale aufweisen
  2. Notwendigkeit, überkaufte und überverkaufte Parameter vernünftig zu setzen, sonst wird es zu Fehlbetrieb führen
  3. Wenn der Stop-Loss-Punkt zu klein ist, ist es leicht, gefangen zu werden.

Für die oben genannten Risiken können längere Zyklusparameter festgelegt oder in Kombination mit anderen Indikatoren verwendet werden, um Signale auszufiltern, die Parameter für Überkauf und Überverkauf anzupassen, um sich an verschiedene Märkte anzupassen, und verschiedene Stop-Loss- und Take-Profit-Parameter zu testen.

Optimierungsrichtlinien

  1. Sie sollten in Kombination mit anderen Indikatoren wie MACD, Bollinger Bands usw. falsche Signale filtern.
  2. Versuche verschiedene Parameterzyklus-Einstellungen, um mehr Marktbedingungen anzupassen
  3. Optimieren Sie Stop-Loss und nehmen Sie Gewinnpunkte durch mehrere Backtests, um die optimalen Parameter zu finden

Zusammenfassung

Diese Strategie handelt auf der Grundlage von überkauften und überverkauften Bereichen, die durch den StochRSI-Indikator beurteilt werden. Im Vergleich zu einem einzigen RSI-Indikator kombiniert StochRSI die Idee von KDJ und kann Wendepunkte genauer beurteilen. Gleichzeitig werden falsche Signale durch den RSI ausgefiltert und Risiken werden durch Stop-Loss und Take-Profit kontrolliert. Es gibt immer noch viel Raum für Optimierung, es kann mit anderen Indikatoren oder optimierten Parameter-Einstellungen kombiniert werden.


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

//@version= 2
strategy("STOCHRSI JURE", overlay=false)
lengthrsi = input(10)
overSold = input( 1 )
overBought = input(99)

call_trail_stop = input(300)
call_trail_offset = input(0)
call_sl = input(10000)

price = ohlc4
vrsi = rsi(price, lengthrsi)

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)


plot( k, color=blue, linewidth=1, title="K")
plot( d, color=red, linewidth=1, title="D")

if (crossover(k, overSold) ) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    strategy.exit("BUY EXIT", "BUY", trail_points=call_trail_stop, trail_offset=call_trail_offset, loss = call_sl)


if (crossunder(k, overBought) ) 
    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND", comment="SELL")
    strategy.exit("SELL EXIT", "SELL", trail_points=call_trail_stop, trail_offset=call_trail_offset, loss = call_sl)
    

//if (  ( crossover(k,d)) and ( (vrsi<overSold) or crossover(vrsi,overSold) )  and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
//    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", oca_type=strategy.oca.cancel, comment="BUY")
//else
//    strategy.cancel(id="BUY")

//if ( ( crossunder(k,d) ) and ( (vrsi >overBought) or crossunder(vrsi,overBought) ) and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 
//    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND", oca_type=strategy.oca.cancel, comment="SELL")
//else
//    strategy.cancel(id="SELL")
    
    
    

Mehr