
Cette stratégie est une amélioration de l’indicateur RSI classique, en mettant en place des lignes d’alerte pour les achats et les ventes, et en effectuant des opérations d’achat ou de vente correspondantes lorsque l’indicateur RSI franchit la ligne d’alerte. En même temps, la stratégie offre également une fonction de commutation de position longue et courte.
Cette stratégie permet de déclencher des signaux d’achat et de vente via l’Histogramme de l’indicateur RSI.
(1) Calculer la valeur de l’indicateur RSI avec la formule:
RSIMain = (rsi(xPrice, RSIPeriod) - 50) * RSIHistoModify
Parmi ceux-ci, xPrice est une séquence de prix, RSIPeriod est un paramètre pour calculer le RSI, et RSIHistoModify est un coefficient d’agrandissement de la valeur du RSI.
(2) définir BuyAlertLevel et SellAlertLevel comme lignes d’alerte de vente et d’achat. L’indicateur RSI est utilisé comme signal d’achat lorsqu’il est supérieur à la ligne d’alerte de vente et comme signal de vente lorsqu’il est inférieur à la ligne d’alerte de vente.
(3) Dessiner un histogramme de l’indicateur RSI pour visualiser les signaux d’achat et de vente.
(4) Configurer le positionnement pos, lorsque le signal est déclenché, le positionnement pos est réglé sur 1 (faire plus) ou - 1 (faire moins) et il est possible de choisir de négocier à la hausse ou à la baisse.
(5) Direction d’entrée et prix en fonction de la valeur pos.
(1) L’utilisation de l’indicateur RSI a été améliorée pour afficher plus clairement les signaux d’achat et de vente.
(2) Paramètres personnalisables permettant d’ajuster l’indicateur RSI et la ligne d’alerte pour s’adapter à différents marchés.
(3) Histogramme qui affiche intuitivement les signaux d’achat et de vente.
(4) Option de négociation à l’envers ou à l’axe.
(5) L’idée stratégique est simple et claire, facile à comprendre et à modifier.
(1) Facile à générer des signaux erronés, l’indicateur RSI lui-même est susceptible de générer des signaux erronés
(2) Le risque de pertes majeures sans prise en compte du stop-loss.
(3) La mauvaise configuration des paramètres peut aussi entraîner des échecs.
(1) Combiner les signaux de filtrage avec d’autres indicateurs pour éviter les faux signaux. Par exemple, considérer la rupture du volume de transactions.
(2) mettre en place un mécanisme de prévention des pertes.
(3) Optimiser les paramètres pour trouver le paramètre optimal.
(4) On peut envisager de combiner cela avec l’apprentissage automatique, en utilisant des algorithmes pour trouver automatiquement le paramètre optimal.
Cette stratégie a une plus grande utilité par rapport à l’indicateur RSI original. Cependant, il existe également un certain risque. Des améliorations supplémentaires doivent être apportées pour optimiser et réduire le risque en combinaison avec d’autres indicateurs techniques et le stop-loss.
/*backtest
start: 2022-12-22 00:00:00
end: 2023-12-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 22/12/2016
// This simple indicator modified RSI
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="RSI HistoAlert Strategy")
RSIPeriod = input(13, minval=1)
BuyAlertLevel = input(-10)
SellAlertLevel = input(10)
RSIHistoModify = input(1.5)
reverse = input(false, title="Trade reverse")
hline(0, color=purple, linestyle=line)
hline(BuyAlertLevel, color=green)
hline(SellAlertLevel, color=red)
xPrice = close
RSIMain = (rsi(xPrice, RSIPeriod) - 50) * RSIHistoModify
rsiHcolor = iff(RSIMain >= 0 , green,
iff(RSIMain < 0, red, black))
pos = iff(RSIMain > BuyAlertLevel, 1,
iff(RSIMain < SellAlertLevel, -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(RSIMain, color=blue, title="RSI HistoAlert")
plot(RSIMain, color=rsiHcolor, title="Histogram", style = histogram, linewidth = 1)