Die RSI Channel Price Difference Tracking-Strategie erzeugt Handelssignale, indem sie Schwankungen der RSI-Indikatoren innerhalb von Schwellenkanälen in Kombination mit Preisdurchbrüchen verfolgt.
Verwenden Sie Hull Moving Average, um den RSI zu glätten und glättete RSI-Indikatoren zu erzeugen, einschließlich RSI für den Schlusskurs, den höchsten Preis, den niedrigsten Preis und den Mittelwert.
Wenn der RSI in den Kanal 55-45 eintritt, zeigt er an, in eine Schockzone zu gelangen.
Wenn der Schlusskurs RSI von der oberen Grenze des Kanals zurückfällt und der Schlusskurs niedriger als der Medianpreis ist, zeigt dies an, dass der Preis unter Druck steht; zu diesem Zeitpunkt ist der Medianpreis RSI jedoch immer noch über der oberen Grenze des Kanals, was darauf hindeutet, dass der Medianpreis immer noch Kaufkraft hat, die der Logik der Verfolgung von Medianpreis-Breakouts entspricht. Daher wird ein Kaufsignal generiert.
Bei Schlusskurs rückt der RSI von der unteren Grenze des Kanals zurück, und der Schlusskurs ist höher als der Medianpreis. Es zeigt an, dass der Preis Unterstützung hat; aber zu diesem Zeitpunkt fällt der Medianpreis RSI unter die unteren Grenze des Kanals, was darauf hindeutet, dass der Medianpreis einen größeren Druck hat, was der Logik der Verfolgung von Medianpreis-Breakouts entspricht. Daher wird ein Verkaufssignal generiert.
Der höchste Preis-RSI und der niedrigste Preis-RSI-Indikator werden verwendet, um ungültige Handelssignale umgehend zu erkennen und schnelle Stop-Losses zu realisieren.
Die Verwendung von Medianpreis-Breakouts zur Verfolgung der starken Richtung des Medianpreises entspricht der Idee der Trendverfolgung.
Wenn der RSI innerhalb des Schwellenkanals schwankt, deutet dies auf den Eintritt in eine Schockzone hin.
Der höchste Preis-RSI und der niedrigste Preis-RSI-Indikator werden verwendet, um ungültige Handelssignale schnell zu identifizieren und schnelle Stop-Losses zu realisieren, die Verluste effektiv kontrollieren können.
Eine falsche Einstellung der RSI-Parameter kann zu empfindlichen oder langsamen Reaktionen führen.
Die Bedeutung der Medianpreisbreaks ist nicht immer zuverlässig, und auch der Medianpreis selbst kann schwanken.
Hohe Volatilität auf den Krypto-Märkten, zu lockere Stop-Loss-Einstellungen können zu vergrößerten Verlusten führen.
Lösungen:
Einführung von Indikatoren wie Bollinger Bands, um zu beurteilen, ob der Medianpreis in der Nähe der oberen oder unteren Bands liegt, wodurch die Genauigkeit der Beurteilung der Ausbruchrichtung des Medianpreises verbessert wird.
Verwenden Sie LSTM und andere Deep-Learning-Modelle, um zukünftige Trends des Medianpreises vorherzusagen und zu bestimmen, ob der Medianpreis erfolgreich in eine bestimmte Richtung ausbrechen kann.
Dynamische Anpassung von Stop-Loss-Positionen basierend auf der Marktvolatilität, z. B. angemessene Verschärfung von Stop-Loss-Positionen, wenn die Volatilität steigt; angemessene Lockerung von Stop-Loss-Positionen, wenn die Volatilität abnimmt.
Die RSI Channel Price Difference Tracking Strategie erzeugt Handelssignale, indem sie RSI-Schwankungen innerhalb von Kanälen kombiniert mit Preis-Breakouts verfolgt, mit dem Ziel, schnelle Kauf-/Verkaufsprünge in Krypto-Märkten zu erfassen. Die Strategie kombiniert effektiv Trend-Tracking und Range-Identifizierungsmethoden und kann immer noch gute Handelssignale erhalten, wenn sich die Preisunterschiede verkleinern. Der schnelle Stop-Loss-Mechanismus macht die Risiken der Strategie auch kontrollierbar. Der nächste Schritt besteht darin, die Zuverlässigkeit und Rentabilität der Strategie weiter zu verbessern, indem mehr Indikatorurteile und Machine-Learning-Prognosen kombiniert werden.
/*backtest start: 2023-11-17 00:00:00 end: 2023-12-17 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Hull MA of RSI Strategy",overlay=false) //+++++++++++++++++++++++++++++++ //++++++++++++ Setup ++++++++++++ //+++++++++++++++++++++++++++++++ // RSI rsi1_tt="=== RSI ===" rsi1_len=input(13,title="Period",inline="set",group=rsi1_tt) //Mid mid_tt="=== Mid Channel ===" upper=input(55.0,title="Upper",inline="set",group=mid_tt) lower=input(45.0,title="Lower",inline="set",group=mid_tt) //Over over_tt="=== Over ===" ovb=input(70.0,title="Overbought",inline="set",group=over_tt) ovs=input(30.0,title="Oversold",inline="set",group=over_tt) //++++++++++++++++++++++++++++++++++++++++ //++++++++++++ Hull MA of RSI ++++++++++++ //++++++++++++++++++++++++++++++++++++++++ hma_tt="=== Hull MA ===" hma_len=input(3,title="Period",inline="set",group=hma_tt) rsi_c=hma(rsi(close,rsi1_len),hma_len) rsi_h=hma(rsi(high,rsi1_len),hma_len) rsi_l=hma(rsi(low,rsi1_len),hma_len) rsi_hl2=hma(rsi(hl2,rsi1_len),hma_len) //++++++++++++++++++++++++++++++++ //++++++++++++ Signal ++++++++++++ //++++++++++++++++++++++++++++++++ var order_status="None" BuySignal= crossunder(rsi_c,ovb) and close<hl2 and rsi_hl2>ovb and order_status=="None" CloseBuy= order_status[1]=="Long" and (crossover(rsi_c,ovb) or crossunder(rsi_l,upper)) SellSignal= crossover(rsi_c,ovs) and close>hl2 and rsi_hl2<ovs and order_status=="None" CloseSell= order_status[1]=="Short" and (crossunder(rsi_c,ovs) or crossover(rsi_h,lower)) ExitSignal= CloseBuy or CloseSell if BuySignal order_status:="Long" if SellSignal order_status:="Short" if ExitSignal order_status:="None" //+++++++++++++++++++++++++++++++++++ //++++++++++++ Plot Line ++++++++++++ //+++++++++++++++++++++++++++++++++++ rsi_c_col= rsi_c>upper?color.new(color.blue,0): rsi_c<lower?color.new(color.blue,0): color.new(color.orange,0) rsi_h_col= rsi_h>upper?color.new(color.green,0): rsi_h<lower?color.new(color.green,0): color.new(color.orange,0) rsi_l_col= rsi_l>upper?color.new(color.yellow,0): rsi_l<lower?color.new(color.yellow,0): color.new(color.orange,0) rsi_hl2_col= rsi_hl2>upper?color.new(color.olive,0): rsi_hl2<lower?color.new(color.olive,0): color.new(color.orange,0) plot(rsi_c,title="RSI Close",color=rsi_c_col,linewidth=2) plot(rsi_h,title="RSI High",color=rsi_h_col,linewidth=1) plot(rsi_l,title="RSI Low",color=rsi_l_col,linewidth=1) plot(rsi_hl2,title="RSI HL2",color=rsi_hl2_col,linewidth=1) upper_line=hline(upper,title="Upper",color=color.new(color.black,100)) lower_line=hline(lower,title="Lower",color=color.new(color.black,100)) fill(upper_line,lower_line,title="Mid Channel",color=color.silver) ovb_line=hline(ovb,title="Overbought",color=color.new(color.silver,0),linestyle=hline.style_solid,linewidth=2) ovs_line=hline(ovs,title="Oversold",color=color.new(color.silver,0),linestyle=hline.style_solid,linewidth=2) //++++++++++++++++++++++++++++++++++++++++++++++++ //++++++++++++ Plot Analyzing Signals ++++++++++++ //++++++++++++++++++++++++++++++++++++++++++++++++ //Color buy_col= BuySignal?color.new(color.blue,70):na sell_col= SellSignal?color.new(color.red,70):na close_buy_col= CloseBuy and order_status[1]=="Long"?color.new(color.yellow,70):na close_sell_col= CloseSell and order_status[1]=="Short"?color.new(color.yellow,70):na //Background bgcolor(close_buy_col, title='Close Buy', offset=0) bgcolor(close_sell_col, title='Close Sell', offset=0) bgcolor(sell_col, title='Sell', offset=0) bgcolor(buy_col, title='Buy', offset=0) //++++++++++++++++++++++++++++++++++ //++++++++++++ Backtest ++++++++++++ //++++++++++++++++++++++++++++++++++ strategy.entry("Long",strategy.long,when=BuySignal) strategy.close("Long",when=CloseBuy) strategy.entry("Short",strategy.short,when=SellSignal) strategy.close("Short",when=CloseSell) //EOF