Stratégie de backtesting des bandes de Bollinger basée sur la moyenne mobile pour les traders de tendance


Date de création: 2023-12-11 13:12:44 Dernière modification: 2023-12-11 13:12:44
Copier: 0 Nombre de clics: 593
1
Suivre
1621
Abonnés

Stratégie de backtesting des bandes de Bollinger basée sur la moyenne mobile pour les traders de tendance

Aperçu

L’idée principale de cette stratégie est d’utiliser les moyennes mobiles et les bandes de broyage pour juger de la tendance des prix et générer des signaux de négociation. Plus précisément, on calcule d’abord l’ATR moyen de la zone de fluctuation réelle d’un certain cycle, puis on obtient une chaîne de confinement combinant les prix les plus élevés et les plus bas. Si le prix franchit cette chaîne, le prix de clôture est égal au prix de la chaîne.

Principe de stratégie

La stratégie commence par calculer la portée des fluctuations de l’ATR, puis se combine avec les prix les plus élevés et les plus bas pour obtenir le canal de restriction. Le prix de clôture n’est limité au prix de la porte que lorsque le prix franchit ce canal.

Le cœur de cette stratégie de jugement de tendance est la moyenne des traders de tendance, qui reflète la direction de la tendance à moyen et à long terme. Le rôle de la ceinture de Brent est de filtrer certaines fausses ruptures, ce qui rend le signal de négociation plus fiable. L’ensemble de la stratégie combinée avec le suivi de la tendance et la décision de rupture, forme un système de tendance plus fort.

Avantages stratégiques

  1. L’ATR est utilisé pour créer des canaux de suivi des fluctuations du marché en combinant les prix les plus élevés et les plus bas.
  2. La moyenne des traders de tendance est une estimation claire de la tendance à moyen et long terme.
  3. Brin fait une fausse percée pour améliorer la qualité du signal
  4. L’ensemble du système reflète une forte tendance, avec de bons rendements à long terme

Risque stratégique

  1. La détention à moyen et long terme peut entraîner des pertes importantes en cas d’événements imprévus.
  2. Une mauvaise configuration des paramètres peut entraîner des transactions fréquentes, des frais de transaction accrus et des pertes de points de glissement
  3. L’effet est fortement lié à la configuration des paramètres et doit être ajusté pour trouver le paramètre optimal.

La réponse:

  1. La période de détention peut être raccourcie de manière appropriée et les pertes peuvent être évitées en temps opportun.
  2. Optimiser les paramètres pour que le signal ait un certain buffer
  3. Utilisation des données historiques et des paramètres d’optimisation du disque dur

Orientation de l’optimisation de la stratégie

  1. Une étude plus approfondie des paramètres cycliques des différents marchés
  2. Les tests permettent-ils d’ajouter d’autres indicateurs pour filtrer les fausses percées ?
  3. Essayez de réduire les pertes individuelles en combinant une stratégie de stop loss

Résumer

L’ensemble de la stratégie est un système de suivi de tendance plus puissant. Il permet de juger les tendances du marché sur les lignes moyennes et longues et de générer des signaux de négociation en combinaison avec les bandes de Brent. Grâce à l’optimisation des paramètres, des gains supplémentaires stables peuvent être obtenus.

Code source de la stratégie
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/10/2018
// This is plots the indicator developed by Andrew Abraham 
// in the Trading the Trend article of TASC September 1998  
// It was modified, result values wass averages.
// And draw two bands above and below TT line.
////////////////////////////////////////////////////////////
strategy(title="Trend Trader Bands Backtest", overlay = true)
Length = input(21, minval=1),
LengthMA = input(21, minval=1),
BandStep = input(20),
Multiplier = input(3, minval=1)
reverse = input(false, title="Trade reverse")
avgTR      = wma(atr(1), Length)
highestC   = highest(Length)
lowestC    = lowest(Length)
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
ret = 0.0
ret :=  iff(close > hiLimit and close > loLimit, hiLimit,
         iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
nResMA = ema(ret, LengthMA)        
pos = 0.0
pos := iff(close < nResMA - BandStep , -1,
       iff(close > nResMA + BandStep, 1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
barcolor(pos == -1 ? red: pos == 1 ? green : blue )
plot(nResMA, color= blue , title="Trend Trader AVR")
plot(nResMA+BandStep, color= red , title="Trend Trader UpBand")
plot(nResMA-BandStep, color= green, title="Trend Trader DnBand")