Stratégie double surachat/survente basée sur l'indicateur RSI

Auteur:ChaoZhang est là., Date: 2023-09-13 16h58:55
Les étiquettes:

Cette stratégie s'appelle Stratégie double suracheté/survendue basée sur l'indicateur RSI. Elle utilise à la fois l'indicateur RSI et l'indicateur RSI de Stoch pour déterminer les conditions de surachat et de survente pour des signaux commerciaux plus fiables.

L'indicateur RSI reflète les niveaux de surachat/survente des prix. L'indicateur RSI supérieur à 70 suggère un état de surachat, tandis qu'en dessous de 30 est un état de survente.

La logique de négociation est la suivante:

Lorsque le RSI dépasse la ligne de surachat définie par l'utilisateur, il indique des conditions de surachat pour envisager des transactions à découvert.

Lorsque le RSI tombe en dessous de la ligne de survente définie par l'utilisateur, il signale les conditions de survente pour considérer les transactions longues.

Pendant ce temps, le Stock RSI doit également montrer des signaux de surachat ou de survente pour confirmer les signaux d'entrée correspondants.

Cette double condition se combine pour filtrer des signaux plus ambigus et éviter de fausses fuites.

L'avantage de cette stratégie est l'utilisation de divers indicateurs dérivés du RSI pour un jugement plus précis de la fourchette suracheté/survendu.

En résumé, les combinaisons d'indicateurs doivent être soigneusement équilibrées. Une utilisation raisonnable peut améliorer les résultats, mais peut également entraîner des risques d'optimisation excessive.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-12 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("test1","t1",overlay=true, default_qty_type = strategy.percent_of_equity,default_qty_value=100,initial_capital=200, currency=currency.USD)
//user input
k_param = input(title = "k length", type = input.integer, defval = 14)
d_param = input(title = "d length", type = input.integer, defval = 3)
rsi_param = input(title = "RSI", type = input.integer, defval = 5)
upper = input(title = "over brought", type = input.integer, defval = 80)
lower = input(title = "over sold", type = input.integer, defval = 20)

//calculation
rsi = rsi(close,rsi_param)
stochastic = 100*(rsi - lowest(rsi,k_param))/(highest(rsi,k_param)-lowest(rsi,k_param))
SMA = sma(stochastic,d_param)

//DRAW
plot(upper,color = color.blue,linewidth = 2, title ="超买")
plot(lower,color = color.blue,linewidth = 2, title ="超卖")
plot(rsi,color = rsi>upper ?color.red:rsi<lower? color.green:color.black, linewidth=2,title ="ris超买超卖")
plot(stochastic,color = color.purple,title="震荡指数")
plot(SMA, color = color.orange,title="移动平均")

//trading
shortposition = crossover(rsi,upper)
longposition = crossunder(rsi,lower)
strategy.entry("卖",false,when =(shortposition))
strategy.entry("买",true,when = (longposition))
strategy.exit("止盈",profit = close*0.013/syminfo.mintick)

Plus de