
Cette stratégie utilise les bandes de Brin, l’indicateur RSI et les moyennes mobiles à 200 ans pour identifier la direction de la tendance et, lorsque celle-ci est appropriée, effectue des inversions dans les zones de Brin, afin de réaliser des bénéfices.
Tout d’abord, utilisez la moyenne mobile à 200 périodes pour déterminer la direction approximative de la tendance, le prix étant défini comme une tendance à plusieurs têtes à la hausse et une tendance à la baisse à la baisse. Ensuite, lors d’une tendance à plusieurs têtes, effectuez une opération d’achat si l’indicateur RSI indique une survente et se rapproche de la trajectoire de descente de Bolling.
Le plus grand avantage de cette stratégie réside dans l’utilisation combinée de plusieurs indicateurs pour déterminer la direction de la tendance et le moment de la transaction. Tout d’abord, la moyenne mobile sur 200 jours permet de déterminer efficacement la direction de la tendance générale. Deuxièmement, la courbe de Brin sur la trajectoire descendante permet de montrer les zones où les prix peuvent se retourner.
Le risque principal de cette stratégie réside dans l’erreur de jugement de la tendance majeure et l’erreur de signal de revers. Si la tendance majeure est mal jugée, il est probable que cela entraîne des pertes continues; si le signal de revers est erroné, le risque d’arrêt est plus élevé.
Afin d’éviter les risques mentionnés ci-dessus, il est recommandé d’ajuster les paramètres des moyennes mobiles ou d’ajouter d’autres indicateurs pour confirmer, ce qui améliore l’exactitude des jugements. Il est également recommandé d’assouplir correctement la marge d’arrêt pour éviter que les arrêts ne soient trop faciles à déclencher.
La stratégie a beaucoup d’espace pour l’optimisation et peut être utilisée de la manière suivante: premièrement, ajuster les paramètres des moyennes mobiles pour optimiser l’exactitude des jugements des grandes tendances; deuxièmement, ajuster les paramètres des bandes de Bryn ou ajouter des canaux de Kalman pour améliorer l’efficacité des jugements des zones de retournement des prix; troisièmement, ajouter d’autres indicateurs tels que le MACD pour la confirmation de retournement et réduire les signaux erronés; quatrièmement, optimiser les paramètres des stop-loss ratio pour réduire la probabilité que les stop-loss réels soient déclenchés;
Cette stratégie utilise les bandes de Brin, l’indicateur RSI et les moyennes mobiles pour déterminer les tendances et le moment de la transaction, ce qui est très efficace. Cependant, il est nécessaire d’optimiser davantage le paramétrage et la gestion des risques pour améliorer la stabilité de la rentabilité.
/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Gab EMA + rsi + bb", overlay=true)
// Custom RSI
RSIlength = input(3, minval=1 , title="lookback length of RSI")
RSIOverBought = input(70, title="RSI OB")
RSIOverSold = input(30, title="RSI OS")
RSIprice = close
vrsi = rsi(RSIprice, RSIlength)
//Bollinger Bands
BBlength = input(20, minval=1,title="Bollinger Period Length")
BBmult = input(2.0, minval=0.001, maxval=50, title="Bollinger Bands Standard Deviation")
BBbasis = sma(close, BBlength)
BBdev = BBmult * stdev(close, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
//EMA
emaLength=input(200)
//Set TP and SL values
sl_short = high + (syminfo.mintick * 5 * 10)
tp_short = low - (syminfo.mintick * 10 * 10)
sl_long = low - (syminfo.mintick * 5 * 10)
tp_long = high + (syminfo.mintick * 10 * 10)
//Strategy Entry and Exit
strategy.entry("sell", strategy.short, when = low < ema(low, emaLength) and vrsi < RSIOverSold and low < BBlower and barstate.isconfirmed)
strategy.exit("closeshort", from_entry="sell", limit=tp_short, stop=sl_short, when=strategy.position_size != 0)
strategy.entry("buy", strategy.long, when = high > ema(high, emaLength) and vrsi > RSIOverBought and high > BBupper and barstate.isconfirmed)
strategy.exit("closelong", from_entry="buy", limit=tp_long, stop=sl_long, when=strategy.position_size != 0)