
La stratégie est basée sur deux indicateurs techniques, les bandes de Bollinger et l’indice de relative faiblesse, le RSI, et est utilisée pour effectuer des opérations de basculement à plusieurs niveaux dans une tendance haussière. La logique de la stratégie est simple mais efficace: ouvrir une vente lorsque le prix tombe en dessous de la bande de Bollinger et que le RSI est inférieur à 35, et ouvrir une vente lorsque le RSI atteint 69.
Calculer le RSI: calculer l’amplitude moyenne des hausses et des baisses de prix en utilisant le RMA (Relative Moving Average), puis le RSI est obtenu en divisant l’amplitude moyenne des hausses et des baisses par le RSI.
Calculer la bande de Brin: calculer la moyenne des prix en utilisant la SMA (Simple Moving Average), puis ajouter et soustraire la différence standard pour obtenir la trajectoire ascendante et descendante. La bande de Brin est une zone de fluctuation qui peut refléter dynamiquement les prix.
Ouverture de la plus-value: lorsque le prix est en dessous de la courbe de Brin et que le RSI est inférieur à 35, il est jugé comme étant survendu. Ces deux conditions permettent de saisir le moment de la reprise.
Pinto: Lorsque le RSI atteint 69, il est jugé comme étant sur-acheté, il est alors possible d’effacer la position plus élevée et de bloquer les bénéfices.
Stop Loss: après avoir ouvert une position, le prix d’arrêt et le prix d’arrêt sont calculés en fonction des pourcentages définis par l’utilisateur. Lorsque le prix d’arrêt ou le prix d’arrêt est touché, le prix d’arrêt est placé. Cela permet de contrôler le risque et le rendement de chaque transaction.
Les bandes de Brin reflètent objectivement les intervalles de cours et sont synchronisées avec les mouvements des prix, sans être limitées par une dépréciation fixe.
Le RSI reflète de manière intuitive les forces de la concurrence et est souvent utilisé pour juger de l’excédent d’achat ou de vente.
Utilisé dans une tendance à la hausse, il est plus adapté aux opérations de swing. Il permet de capturer les rebonds de prix par le décrochage de Brin et le RSI bas, et de saisir efficacement les mouvements de la bande de vague par le RSI élevé.
Le paramètre Stop Loss permet de contrôler le risque de la stratégie, permettant aux investisseurs de régler les paramètres de manière flexible en fonction de leurs préférences en matière de risque.
La logique et le code de la stratégie sont relativement simples, faciles à comprendre et à mettre en œuvre, et les résultats de la rétroaction sont relativement stables.
Dans les conditions de choc, les bandes de Brin et le RSI peuvent donner plus de signaux de trading, ce qui entraîne une fréquence de trading trop élevée et des frais de transaction plus élevés.
Les indicateurs individuels tels que le RSI sont sensibles aux fluctuations de prix à court terme et génèrent des signaux trompeurs. Il est donc préférable d’analyser les signaux RSI en combinaison avec les mouvements de prix.
Le choix des paramètres de la ceinture de Brin et du RSI a une influence majeure sur la performance de la stratégie. Différents marchés et variétés peuvent nécessiter des paramètres différents. L’utilisateur doit effectuer les ajustements appropriés en fonction de la situation.
Les bandes de Boolean et le RSI peuvent s’arrêter en cas d’événements inattendus, qui peuvent entraîner un retrait plus important de la stratégie si aucun autre moyen de contrôle du vent n’est utilisé.
On peut envisager d’introduire d’autres indicateurs techniques comme les moyennes mobiles comme filtres, par exemple en ouvrant une position uniquement lorsque le MA est en plusieurs têtes, ce qui améliore la fiabilité du signal.
On peut optimiser les valeurs des seuils supérieurs et inférieurs du RSI, les paramètres des bandes de Bryn, etc., pour trouver la combinaison de paramètres qui fonctionne le mieux pour chaque variété et chaque période.
Il est possible d’effectuer des tests avant et en arrière sur la base de la rétro-analyse, et de faire des transactions simulées, afin de vérifier l’efficacité et la stabilité de la stratégie avant la mise en marché.
Il est possible de contrôler davantage le retrait de la stratégie et d’améliorer les rendements après ajustement du risque par des méthodes telles que la gestion des positions, le stop loss dynamique.
Cette stratégie peut être intégrée à un portefeuille et utilisée en combinaison avec d’autres stratégies de couverture, plutôt qu’en isolement, pour améliorer la stabilité du portefeuille.
L’avantage de la stratégie est qu’elle peut refléter objectivement les intervalles de fluctuation des prix et la comparaison de plusieurs forces, les risques sont également relativement contrôlables. Cependant, l’utilisation spécifique nécessite une attention particulière au contrôle de la fréquence de négociation, combinée à plus de signaux de dépassement d’indicateurs, à l’optimisation de bons paramètres et à la gestion des positions. De plus, la stratégie peut être inefficace en cas de comportement anormal et nécessite d’autres moyens de contrôle des risques.
/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Bollinger Band with RSI", shorttitle="BB&RSI")
len = input(14, minval=1, title="Length")
src = input(close, "Source", type = input.source)
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, "RSI", color=#8E1599)
band1 = hline(69, "Upper Band", color=#C0C0C0)
band0 = hline(31, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")
length_bb = input(20,title="BB Length", minval=1)
mult = input(2.0, minval=0.001, maxval=50, title="BB StdDev")
basis = sma(src, length_bb)
dev = mult * stdev(src, length_bb)
upper = basis + dev
lower = basis - dev
offset = input(0, "BB Offset", type = input.integer, minval = -500, maxval = 500)
Plot_PnL = input(title="Plot Cummulative PnL", type=input.bool, defval=false)
Plot_Pos = input(title="Plot Current Position Size", type=input.bool, defval=false)
long_tp_inp = input(10, title='Long Take Profit %', step=0.1)/100
long_sl_inp = input(25, title='Long Stop Loss %', step=0.1)/100
// Take profit/stop loss
long_take_level = strategy.position_avg_price * (1 + long_tp_inp)
long_stop_level = strategy.position_avg_price * (1 - long_sl_inp)
entry_long = rsi < 35.58 and src < lower
exit_long = rsi > 69
plotshape(entry_long, style=shape.labelup, color=color.green, location=location.bottom, text="L", textcolor=color.white, title="LONG_ORDER")
plotshape(exit_long, style=shape.labeldown, color=color.red, location=location.top, text="S", textcolor=color.white, title="SHORT_ORDER")
strategy.entry("Long",true,when=entry_long)
strategy.exit("TP/SL","Long", limit=long_take_level, stop=long_stop_level)
strategy.close("Long", when=exit_long, comment="Exit")
plot(Plot_PnL ? strategy.equity-strategy.initial_capital : na, title="PnL", color=color.red)
plot(Plot_Pos ? strategy.position_size : na, title="open_position", color=color.fuchsia)