Les ressources ont été chargées... Je charge...

Les bandes de Bollinger + RSI + stratégie de double négociation EMA

Auteur:ChaoZhang est là., Date: 2023-12-29 14:46:57 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie intègre les bandes de Bollinger, l'indice de force relative (RSI) et la moyenne mobile exponentielle (EMA) trois indicateurs pour mettre en œuvre une stratégie de trading automatique avec de longues périodes de détention pour les actions. Elle génère des signaux d'achat lorsque le RSI est en dessous de la ligne de survente et que le prix est proche ou touche le rail inférieur des bandes de Bollinger, et génère des signaux de vente lorsque le prix augmente pour toucher le rail supérieur des bandes de Bollinger, en utilisant les bandes de Bollinger pour déterminer les tendances du marché et le statut de survente / survente pour une double confirmation.

Principe de stratégie

Cette stratégie juge principalement sur la base des bandes de Bollinger, du RSI et de trois indicateurs EMA. Le rail du milieu des bandes de Bollinger est la moyenne mobile simple du prix, et les rails supérieur et inférieur sont deux plages de déviation standard du prix. Les bandes de Bollinger peuvent juger de l'état de surachat / survente du marché. Lorsque le prix est proche du rail inférieur, il indique un état de survente, et lorsque le prix est proche du rail supérieur, il indique un état de survente. Le RSI est l'un des indicateurs importants pour juger si un stock est suracheté ou survendu.

Le signal d'achat pour cette stratégie est généré lorsque le RSI est en dessous de la ligne de survente de 30 et que, en même temps, le prix a approché ou touché le rail inférieur des bandes de Bollinger en survente.

Le signal de vente est généré lorsque le prix touche le rail supérieur des bandes de Bollinger pendant une tendance haussière.

Les avantages de la stratégie

  1. Intégre les bandes de Bollinger et le RSI pour confirmer deux fois le statut de surachat/survente, en évitant de faux signaux.
  2. Utilise l'EMA pour déterminer la direction de la tendance des prix, en évitant de négocier contre la tendance.
  3. Les paramètres de l'indice de volatilité et des bandes de Bollinger peuvent être personnalisés pour différents titres.
  4. Une logique stratégique simple et claire, facile à comprendre et à mettre en œuvre.

Risques liés à la stratégie

  1. Les bandes de Bollinger et le RSI peuvent générer de faux signaux, provoquant des entrées erronées.
  2. La position stop loss doit être optimisée davantage, avec des risques de retracement plus élevés.
  3. L'EMA peut ne pas déterminer parfaitement la tendance avec des points d'inversion de tendance manqués.
  4. Des paramètres mal réglés peuvent entraîner une survente ou des occasions de négociation manquantes.

Les solutions:

  1. Réduire la période des bandes de Bollinger, optimiser les paramètres du RSI.
  2. Arrêt de perte dynamique.
  3. Intégrer d'autres indicateurs pour déterminer la tendance.
  4. Testez différents paramètres pour trouver la combinaison optimale.

Directions pour l'optimisation de la stratégie

La stratégie peut être encore optimisée dans les aspects suivants:

  1. Ajouter plus d'indicateurs pour le jugement, par exemple KD pour le statut de surachat/survente.
  2. Ajoutez des mécanismes de stop loss comme le stop loss mobile, le zone stop loss pour gérer les risques.
  3. Ajouter des règles de sortie basées sur la détermination de la tendance de l'EMA dans les conditions de vente.
  4. Optimiser les paramètres afin d'élargir la fourchette des bénéfices, par exemple ajuster la largeur des bandes de Bollinger.
  5. Ajouter des règles d'entrée pour éviter les fausses fuites, par exemple les filtres de volume.

Conclusion

La stratégie intègre les bandes de Bollinger, le RSI et l'EMA pour une stratégie de trading automatique de long terme avec des filtres à double confirmation. La double confirmation du statut de surachat/survente évite efficacement les faux signaux, et l'utilisation de l'EMA pour la détermination de la tendance empêche le trading contre la tendance. Pendant ce temps, les paramètres flexibles la rendent adaptable à différents stocks. Une amélioration supplémentaire des aspects des mécanismes de stop loss et de sortie peut améliorer l'efficacité et la gestion des risques de la stratégie.


/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Bollinger + RSI + EMA, Double Strategy Long-Only (by ChartArt) v1.3", shorttitle="rsi 30 min ADJ Buy", overlay=true)

///////////// RSI
RSIlength = input(2, title="RSI Period Length") // Adjusted RSI period length
RSIoverSold = input(30, title="RSI Oversold Level")  // Adjustable RSI oversold level
RSIoverBought = input(80, title="RSI Overbought Level")  // Adjustable RSI overbought level
price = close
vrsi = rsi(price, RSIlength)

///////////// Bollinger Bands
BBlength = input(231, minval=1, title="Bollinger Period Length") // Adjusted Bollinger period length
BBmult = 2
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev

///////////// EMA
useEMA = input(true, title="Use EMA?")
emaLength = input(20, title="EMA Period Length")
ema = useEMA ? ema(close, emaLength) : na

source = close
buyEntry = crossover(source, BBlower) or (close < BBlower and close > BBbasis) or (low < BBlower and close > BBbasis) // Add condition for low touching Bollinger Band
sellEntry = crossunder(source, BBupper)

///////////// Plotting
plot(BBbasis, color=color.aqua, title="Bollinger Bands SMA Basis Line")
plot(BBupper, color=color.silver, title="Bollinger Bands Upper Line")
plot(BBlower, color=color.silver, title="Bollinger Bands Lower Line")
plot(ema, color=color.orange, title="EMA")  // Plot EMA

///////////// RSI + Bollinger Bands Strategy
long = crossover(vrsi, RSIoverSold) and buyEntry
close_long = close >= BBupper

if (not na(vrsi))
    if long
        strategy.entry("Buy", strategy.long, qty=10, stop=BBlower, comment="Buy")
    else
        strategy.cancel(id="Buy")
        
    if close_long
        strategy.close("Buy")


Plus de