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.
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.
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.
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")