RSI-BB: stratégie de rupture de l'élan

Auteur:ChaoZhang est là., Date: 2023-11-03 15h02 et 19h
Les étiquettes:

img

Résumé

La stratégie de rupture de momentum RSI-BB combine l'indicateur de force relative (RSI) et les bandes de Bollinger (BB) pour le trading de rupture. Elle utilise le RSI pour déterminer les tendances du marché et les niveaux de surachat/survente, et le BB pour identifier les points de rupture. Lorsque les signaux RSI et BB s'alignent, la stratégie entrera en long ou en court en conséquence.

La logique de la stratégie

Le code calcule d'abord les indicateurs RSI et BB.

Le RSI est calculé comme suit:

up = rma(max(change(close), 0), 30)
down = rma(-min(change(close), 0), 30) 
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

Là où la hausse mesure le mouvement des prix à la hausse sur 30 périodes, la baisse mesure le mouvement des prix à la baisse, et rsi est calculé sur la base du rapport de la hausse à la baisse.

Le BB est calculé comme suit:

basis = sma(close, 50)
dev = 0.2 * stdev(close, 50)
upper = basis + dev
lower = basis - dev

Lorsque la base est la moyenne mobile à 50 périodes, dev est 0,2 fois l'écart type, la bande supérieure et la bande inférieure sont les bandes.

bbi est l'indice de bande passante de Bollinger, calculé comme suit:

bbr = close>upper? 1 : close<lower? -1 : 0 
bbi = bbr - bbr[1]

bbr vérifie si le rapprochement brise la bande supérieure ou inférieure. La rupture est 1, la ventilation est -1, sinon 0, bbi est la différence entre le bbr actuel et le précédent.

Les signaux stratégiques sont déterminés comme suit:

long = rsi>52 and rsi<65 and bbi>0.11 and bbi<0.7
short = rsi<48 and rsi>35 and bbi<-0.11 and bbi>-0.7 

Allez long lorsque le RSI est compris entre 52-65 et BBI est compris entre 0,11 et 0,7.

Les avantages

  1. La combinaison du RSI et du BB fournit des signaux plus fiables.

  2. L'indicateur RSI à 30 périodes filtre le bruit du marché et se concentre sur les tendances majeures.

  3. Une BB de 50 périodes avec 0,2 écarte-type aide à filtrer les fléchettes.

  4. Les seuils de BBI filtrent les fausses fuites.

  5. Les zones longue/courte du RSI de 52-65 et 35-48 fournissent un certain tampon pour éviter les transactions manquées.

Les risques

  1. Les stratégies de rupture sont sujettes à être prises dans des pièges, doivent gérer le risque avec un stop loss.

  2. Les résultats des tests antérieurs peuvent être surmontés, les performances en direct peuvent varier.

  3. Les mouvements extrêmes du marché peuvent entraîner un stop loss entraînant des pertes importantes.

  4. Les paramètres RSI et BB, y compris les périodes et les seuils, doivent être optimisés.

  5. Le prix de commande peut avoir une incidence significative sur les performances en direct.

Des possibilités d'amélioration

  1. Testez différentes combinaisons de paramètres RSI et BB pour trouver des réglages optimaux.

  2. Ajoutez d'autres indicateurs comme MACD, KD pour la filtration du signal.

  3. Optimiser les zones longues/courtes du RSI pour filtrer plus de bruit.

  4. Optimiser les seuils de BBI dynamiques pour mieux filtrer les faux.

  5. Ajouter un filtre de tendance pour éviter de négocier contre la tendance principale.

  6. Testez différentes techniques de stop loss pour trouver un contrôle optimal des risques.

  7. Testez différents types de commandes pour minimiser l'impact des glissements.

Conclusion

La stratégie RSI-BB combine les avantages de l'utilisation d'indicateurs de tendance et de dynamique. Les résultats des backtests sont prometteurs, mais les performances en direct peuvent varier en raison de facteurs du monde réel tels que le glissement et le stop loss. Les paramètres et les filtres doivent être optimisés en fonction des résultats des backtests.


/*backtest
start: 2023-10-03 00:00:00
end: 2023-11-02 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Based on Larry Connors RSI-2 Strategy - Lower RSI
strategy(title="Spyfrat Strat", shorttitle="SpyfratStrat", overlay=true)
src = close, 
// BB Init
source = close
length = input(50, minval=1)
mult = input(0.2, title="Mult Factor", minval=0.001, maxval=50)
alertLevel=input(0.1)
impulseLevel=input(0.75)
showRange = input(false, type=bool)
//RSI CODE
up = rma(max(change(src), 0), 30)
down = rma(-min(change(src), 0), 30)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//BB CODE
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
bbr = source>upper?(((source-upper)/(upper-lower))/10): source<lower?(((source-lower)/(upper-lower))/10) : 0.1
bbi = bbr - nz(bbr[1]) 
//Rule
long = rsi>52 and rsi<65 and  bbi>0.11 and bbi<0.7
short = rsi<48 and rsi>35 and  bbi<-0.11 and bbi>-0.7
//Trade Entry
strategy.entry("long", strategy.long, when=long)
strategy.entry("short", strategy.short, when=short)
//Trade Exit
TP = input(250) * 10
SL = input(20) * 10
TS = input(0) * 10
CQ = 100

TPP = (TP > 0) ? TP : na
SLP = (SL > 0) ? SL : na
TSP = (TS > 0) ? TS : na

strategy.exit("Close Long", "long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)
strategy.exit("Close Short", "short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)

Plus de