Croisement de moyenne mobile et stratégie de cassure des bandes de Bollinger


Date de création: 2024-02-19 14:18:00 Dernière modification: 2024-02-19 14:18:00
Copier: 0 Nombre de clics: 636
1
Suivre
1617
Abonnés

Croisement de moyenne mobile et stratégie de cassure des bandes de Bollinger

Aperçu

Cette stratégie utilise l’indicateur RSI pour identifier les signaux de survente et de survente, les courbes de Brent pour déterminer la rupture des prix et la forme de la fourche dorée de la ligne égale pour juger du marché et réaliser des gains à différents stades de la tendance.

Principe de stratégie

La stratégie est principalement composée des indicateurs suivants:

  1. Indicateur RSI: lorsque la ligne de l’indicateur RSI traverse la ligne de survente ou la ligne de survente, effectuez les opérations de survente ou de dépréciation correspondantes.

  2. Brines: les opérations de coupe sont effectuées lorsque le prix franchit la barre de Brines et se relance; les opérations de coupe sont effectuées lorsque le prix franchit la barre de Brines et se relance.

  3. Ligne moyenne: calcul des prix les plus élevés et les plus bas d’une période donnée (par exemple, 5 cycles), en plus lorsque le prix est supérieur au point le plus élevé des 5 derniers cycles; en moins lorsque le prix est inférieur au point le plus bas des 5 derniers cycles.

  4. MACD: Calcule le forfait de la ligne rapide, de la ligne lente et de la ligne MACD comme indicateur de jugement auxiliaire.

Ces indicateurs sont combinés pour déterminer le moment où le prix a franchi la barre de Brin et est retourné vers l’axe central. Dans le cas d’une tendance à la consolidation, le breakout de la ligne de parité est utilisé pour saisir le point de conversion de la tendance. Dans le cas d’une tendance à l’achat et à la vente, le jugement de la zone de valeur extrême de l’indicateur RSI est utilisé pour effectuer une opération inversée.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. Les indicateurs RSI, les bandes de Brin et les lignes de parité sont mutuellement vérifiés, ce qui rend les signaux de trading plus fiables.

  2. Il est adapté à différents types de situations. Il peut être utilisé pour les tendances en utilisant les bandes de Brin, les tendances de consolidation en utilisant la ligne moyenne, les tendances de surachat en utilisant le RSI.

  3. La fréquence d’opération est modérée. Les paramètres de l’indicateur sont réglés avec prudence, en évitant les transactions trop fréquentes.

  4. La structure du programme est claire. Le code est écrit selon des spécifications qui sont faciles à lire et à réutiliser.

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Risque de paramétrage. Une mauvaise configuration des paramètres de l’indicateur peut entraîner une erreur de signal de transaction. Des paramètres d’optimisation doivent être testés à plusieurs reprises.

  2. Risque de swap à plusieurs balises. Les swaps à plusieurs balises peuvent être plus fréquents aux points de basculement du marché, ce qui augmente les coûts de transaction. Le temps de détention peut être ajusté de manière appropriée.

  3. Risques de programmation. Il peut y avoir des erreurs de logique dans le code qui sont difficiles à détecter, ce qui entraîne des transactions anormales. Le traitement des anomalies et les journaux doivent être perfectionnés.

Direction d’optimisation

Cette stratégie peut également être optimisée dans les directions suivantes:

  1. Augmenter les stratégies de stop loss pour bloquer les bénéfices et réduire les pertes.

  2. En combinaison avec un indicateur de volume de transactions, évitez les faux signaux. Par exemple, vérifiez le volume de transactions lors de la rupture de la bande Brin.

  3. Ajout d’algorithmes d’apprentissage automatique, entraînement à partir de données historiques et paramètres d’optimisation automatique.

  4. L’ajout d’une présentation graphique permet de visualiser les performances de la stratégie.

  5. Optimiser les retours et choisir la meilleure combinaison de paramètres.

Résumer

Cette stratégie utilise de multiples indicateurs tels que la ligne moyenne, les bandes de Brin et le RSI pour déterminer les signaux de négociation grâce à une combinaison d’indicateurs. L’avantage de la stratégie est sa capacité d’adaptation et sa précision; les risques sont principalement liés à la définition des paramètres et à la mise en œuvre de la procédure, ce qui nécessite des tests d’optimisation continue.

Code source de la stratégie
/*backtest
start: 2024-01-19 00:00:00
end: 2024-02-15 00:00:00
period: 4h
basePeriod: 15m
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)



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(close[lengthch]))
    strategy.entry("ChBrkLE", strategy.long, stop=upBound + syminfo.mintick, comment="ChBrkLE")
    strategy.entry("ChBrkSE", strategy.short, stop=downBound - syminfo.mintick, comment="ChBrkSE")
    
    
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)