
La stratégie de suivi des écarts de la chaîne RSI est conçue pour capturer les explosions de vente et d’achat rapides sur le marché de la crypto-monnaie en suivant les fluctuations de l’indicateur RSI dans la chaîne de dépréciation.
Utilisez le Hull Moving Average Smooth RSI pour générer un indicateur RSI après le smooth. Il comprend le RSI de clôture, le RSI de la plus haute, le RSI de la plus basse et le RSI de la moyenne.
Réglez le canal RSI sur 55-45. Lorsque l’indicateur RSI entre dans le canal 55-45, cela signifie qu’il entre dans la zone de choc.
Lorsque l’indicateur RSI de clôture est descendu de la ligne de lancement du canal et que le prix de clôture est inférieur au cours moyen, cela indique que le prix est sous pression; tandis que l’indicateur RSI du cours moyen est toujours supérieur à la limite supérieure du canal, ce qui indique que le cours moyen a encore un dynamisme d’achat, conformément à la logique de suivi de la rupture du cours moyen, ce qui génère un signal d’achat.
Lorsque le cours de clôture RSI rebondit à la limite inférieure du canal et que le cours de clôture est supérieur au cours moyen, le prix est soutenu; et lorsque le cours moyen RSI est inférieur à la limite inférieure du canal, le cours moyen est soumis à une pression plus forte, conformément à la logique de suivi de la rupture du cours moyen, ce qui génère un signal de vente.
L’indicateur RSI des prix maximaux et minimaux est utilisé pour identifier en temps opportun les signaux de transaction inefficaces et les arrêts rapides.
L’utilisation d’une rupture de prix moyen pour suivre la direction de la force du prix moyen est conforme à la philosophie du suivi de la tendance.
Les oscillations du RSI se situent dans le canal de dépréciation, indiquant une entrée en correction. Le cours moyen est utilisé pour suivre la direction de la force du cours moyen afin d’éviter d’être pris dans des oscillations intermédiaires.
Les indices RSI des prix les plus élevés et les RSI des prix les plus bas sont utilisés pour identifier rapidement les signaux de trading qui ne fonctionnent pas, pour un arrêt rapide des pertes et pour contrôler efficacement les pertes.
Un mauvais réglage du RSI peut entraîner une sursensibilité ou une lenteur.
La signification de la rupture du cours moyen n’est pas toujours fiable, et le cours moyen lui-même peut être en état de choc.
Les crypto-monnaies sont très volatiles et une position de stop-loss trop souple peut entraîner des pertes importantes.
La solution est simple:
On peut introduire des indicateurs comme les bandes de Brin pour déterminer si le cours médian est proche de la trajectoire ascendante ou descendante, ce qui améliore la précision de la détermination de la direction de la rupture du cours médian.
Les modèles d’apprentissage en profondeur, tels que LSTM, sont utilisés pour prédire les tendances futures du prix moyen, et aider à déterminer si le prix moyen réussira à franchir une certaine direction.
Ajuster la position de stop loss en temps réel en fonction de la volatilité du marché. Par exemple, resserrer la position de stop loss lorsque la volatilité augmente; relâcher la position de stop loss lorsque la volatilité diminue.
La stratégie de suivi des écarts de prix du canal RSI vise à capturer les explosions de vente et d’achat rapides sur le marché des crypto-monnaies en suivant les fluctuations de l’indicateur RSI dans le canal et en combinant les ruptures de prix. La stratégie combine efficacement les méthodes de suivi de la tendance et d’identification des intervalles, ce qui permet de toujours obtenir de meilleures transactions lorsque les écarts de prix se réduisent.
/*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