La stratégie de négociation de fusion des bandes de Bollinger, du RSI, du MACD et de l'indicateur stochastique multiindicateur

Auteur:ChaoZhang est là., Date: le 28 septembre 2023 12:06:39
Les étiquettes:

Résumé

Cette stratégie intègre les bandes de Bollinger, le RSI, le MACD et le stochastique, quatre indicateurs techniques différents, pour prendre des décisions longues et courtes. Premièrement, elle détermine si le prix est en dehors du canal des bandes de Bollinger et prend des positions longues ou courtes en conséquence. Ensuite, elle vérifie si le RSI est dans des zones de surachat ou de survente et entre en fonction de la direction. Ensuite, elle recherche les signaux MACD de croix dorée et de croix de mort et prend des positions en conséquence. Enfin, elle identifie la croix dorée stochastique et la croix de mort dans les zones de surachat / survente. Avec les signaux des quatre indicateurs, la stratégie adopte des positions pyramidales plus agressives pour maximiser les profits.

Principaux

La stratégie utilise principalement quatre indicateurs: les bandes de Bollinger, le RSI, le MACD et le stochastique.

Les bandes de Bollinger sont représentées à des niveaux d'écart type au-dessus et au-dessous d'une moyenne mobile simple.

Le RSI calcule la dynamique en fonction du rapport entre les clôtures supérieures et les clôtures inférieures.

Le MACD est la différence entre les moyennes mobiles à court et à long terme. Les croisements de la ligne MACD et de la ligne de signal produisent des signaux commerciaux - croix dorée pour longue et croix de mort pour courte.

Les croisements des lignes stochastiques K et D servent également de signaux commerciaux. K inférieur à 20 suggère une survente tandis que au-dessus de 80 suggère une surachat.

La combinaison des signaux de ces quatre indicateurs améliore la précision des entrées commerciales. Plus précisément, aller long lorsque le prix dépasse la bande supérieure des bandes de Bollinger, le RSI inférieur à 30, la croix dorée MACD et le croisement stochastique K au-dessus de D inférieur à 20.

Les avantages

Le principal avantage de cette stratégie est la combinaison de plusieurs indicateurs améliore la précision et le taux de réussite.

Tout d'abord, l'utilisation d'indicateurs à travers différents délais - Bollinger pour le moyen/long terme, et MACD, RSI, Stochastique pour le court terme, réduit les erreurs.

Deuxièmement, l'obligation pour tous les indicateurs de s'aligner réduit les faux signaux.

En outre, la combinaison d'indicateurs complémentaires tire parti des forces de chacun.

Enfin, les positions pyramidales avec des signaux confirmés maximisent les profits par rapport aux transactions à quantité fixe.

Les risques

Quelques risques à prendre en considération:

Tout d'abord, plus de paramètres et d'indicateurs rendent l'optimisation difficile. Des tests approfondis sont nécessaires pour trouver les meilleures combinaisons.

Deuxièmement, les signaux d'indicateur simultanés sont rares, ce qui entraîne une faible fréquence de négociation.

Troisièmement, la pyramide peut amplifier les pertes si les indicateurs donnent de mauvais signaux.

Enfin, les signaux d'indicateurs incohérents nécessitent des règles de décision.

Améliorations

Quelques façons d'améliorer la stratégie:

  1. Optimiser les paramètres grâce à des algorithmes génétiques, à la recherche par grille, etc. pour trouver les meilleures combinaisons.

  2. Ajouter des règles de stop loss pour contrôler les pertes lorsque le prix dépasse les seuils.

  3. Améliorer la logique d'entrée avec un système de notation pour les signaux d'indicateur et les paramètres pondérés incohérents.

  4. Optimiser les sorties avec des données sur les profits et pertes pour les périodes de détention afin de générer des règles de sortie idéales.

  5. Optimiser les produits et les délais les mieux adaptés à la stratégie.

  6. Prenez en compte les coûts de négociation tels que les glissades et les commissions dans l'optimisation des paramètres.

  7. Utiliser l'apprentissage automatique pour l'optimisation adaptative.

Conclusion

Cette stratégie combine plusieurs indicateurs et mécanismes de confirmation pour la prise de décision. Avec des paramètres et des contrôles de risque appropriés, elle peut obtenir de bons résultats. Mais la complexité et les risques d'ajustement doivent être abordés grâce à des améliorations continues de la stabilité. Trouver des combinaisons d'indicateurs optimales, des règles scientifiques d'entrée / sortie et un contrôle des risques sont essentiels à une rentabilité durable dans toutes les conditions du marché.


/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("MD strategy", overlay=true)
lengthrsi = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
price = close
source = close
lengthbb = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
direction = input(0, title = "Strategy Direction",  minval=-1, maxval=1)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
consecutiveBarsUp = input(3)
consecutiveBarsDown = input(3)
lengthch = input( minval=1, maxval=1000, defval=5)
upBound = highest(high, lengthch)
downBound = lowest(low, lengthch)
lengthst = input(14, minval=1)
OverBoughtst = input(80)
OverSoldst = input(20)
smoothK = 3
smoothD = 3

k = sma(stoch(close, high, low, lengthst), smoothK)
d = sma(k, smoothD)



ups = price > price[1] ? nz(ups[1]) + 1 : 0
dns = price < price[1] ? nz(dns[1]) + 1 : 0
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

basis = sma(source, lengthbb)
dev = mult * stdev(source, lengthbb)

upper = basis + dev
lower = basis - dev

vrsi = rsi(price, lengthrsi)

if (not na(vrsi))
    if (crossover(vrsi, overSold))
        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
    if (crossunder(vrsi, overBought))
        strategy.entry("RsiSE", strategy.short, comment="RsiSE")

if (crossover(source, lower))
    strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

if (crossunder(source, upper))
    strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands",  comment="BBandSE")
else
    strategy.cancel(id="BBandSE")
    
    
if (not na(k) and not na(d))
    if (crossover(k,d) and k < OverSoldst)
        strategy.entry("StochLE", strategy.long, comment="StochLE")
    if (crossunder(k,d) and k > OverBoughtst)
        strategy.entry("StochSE", strategy.short, comment="StochSE")   
        
if (crossover(delta, 0))
    strategy.entry("MacdLE", strategy.long, comment="MacdLE")

if (crossunder(delta, 0))
    strategy.entry("MacdSE", strategy.short, comment="MacdSE")


Plus de