Stratégie des bandes de Bollinger basée sur l'EVWMA


Date de création: 2023-11-02 15:27:28 Dernière modification: 2023-11-02 15:27:28
Copier: 0 Nombre de clics: 572
1
Suivre
1617
Abonnés

Stratégie des bandes de Bollinger basée sur l’EVWMA

Aperçu

La stratégie utilise l’EVWMA comme ligne de base de la Brin’s Band, faisant plus lorsque le prix franchit la Brin’s Band et moins lorsque le prix franchit la Brin’s Band, afin de capturer le mouvement tendanciel du prix.

Principe de stratégie

La stratégie commence par calculer le volume total de transactions pour les 30 derniers cycles, vol_period. Elle calcule ensuite l’EVWMA, avec la formule: ((EVWMA x (vol_period - volume de transactions du jour précédent) + volume de transactions du jour précédent x cours de clôture) / vol_period.

La base de la courbe moyenne de Brin est EVWMA, et la base de la courbe supérieure et inférieure est ± 2 fois stdev (différence standard du prix de clôture). Lorsque le prix monte sur la courbe, faites plus, et lorsque la courbe inférieure est vide. Le point d’arrêt est base.

Analyse des avantages

  1. L’EVWMA reflète mieux la tendance des variations de prix et est plus lisse que la moyenne.

  2. Les bandes de Brin permettent de détecter clairement les limites supérieures et inférieures des fluctuations des prix, ce qui permet de capturer les écarts.

  3. La combinaison de l’indicateur de tendance EVWMA et de l’indicateur d’oscillation Brin Belt permet de déterminer plus précisément le moment de l’entrée.

  4. Le point d’arrêt est la base, ce qui permet de contrôler le risque.

Analyse des risques

  1. Dans un contexte de forte concurrence, l’EVWMA ne peut pas tenir compte des changements de prix en temps opportun et risque de rater l’entrée.

  2. La ceinture de Brin est facilement déclenchée par des vibrations répétées dans le disque horizontal.

  3. Le risque d’augmentation de la rentabilité et des pertes n’a pas été pris en compte dans la gestion du temps de détention et de la taille des positions.

  4. Il y a un risque de dépassement de l’objectif raisonnable en continuant à détenir des titres sans fixer de limite.

Direction d’optimisation

  1. Il est possible de tester différents paramètres pour trouver la durée de la période la plus appropriée.

  2. Il peut être envisagé de filtrer les signaux d’entrée en combinaison avec d’autres indicateurs tels que le MACD.

  3. Il est possible de configurer la gestion du temps de détention, par exemple en configurant un cycle de détention fixe.

  4. Il est possible d’établir un seuil de rentabilité raisonnable en définissant à l’avance des objectifs de rentabilité.

  5. La taille de la position peut être ajustée en fonction de la situation du marché.

Résumer

La stratégie intègre les avantages des deux indicateurs EVWMA et des bandes de Brin, permettant de suivre la tendance en capturant les hauts et les bas des prix. L’avantage est que le portefeuille d’indicateurs est raisonnable, que l’entrée est précise et que le risque peut être contrôlé efficacement.

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

//@version=4
strategy("EVWBB Strategy [QuantNomad]", shorttitle="EVWBB Strategy [QN]", overlay=true)

// Inputs
sum_length = input(30,  title = "Length", type = input.integer)
mult       = input(2.0, minval=0.001, maxval=50)
 
// Calculate Volume Period
vol_period = sum(volume, sum_length)

// Calculate EVWMA
evwma = 0.0
evwma := ((vol_period - volume) * nz(evwma[1], close) + volume * close) / (vol_period)

basis = evwma
dev = mult * stdev(close, sum_length)

upper = basis + dev
lower = basis - dev

plot(basis, color=color.red)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
fill(p1, p2)

buyEntry = crossover(close, lower)
sellEntry = crossunder(close, upper)

strategy.entry("BBandLE", strategy.long,  stop = upper , oca_name = "BollingerBands",  comment="BBandLE")
strategy.entry("BBandSE", strategy.short, stop = lower,  oca_name = "BollingerBands", comment="BBandSE")

strategy.exit("BBand L SL", "BBandLE", stop = basis)
strategy.exit("BBand S SL", "BBandSE", stop = basis)