Stratégie de négociation des bandes de Bollinger à double écart type

Auteur:ChaoZhang est là., Date: 2023-12-18 17h23 et 42 min
Les étiquettes:

img

Résumé

Cette stratégie est une stratégie de trading conçue sur la base du modèle de déviation standard double des bandes de Bollinger. Elle utilise les rails supérieurs et inférieurs des bandes de Bollinger et un et deux écarts standard comme signaux de trading.

La logique de la stratégie

La stratégie calcule d'abord le rail moyen, le rail supérieur et le rail inférieur des bandes de Bollinger.déviation type, et le rail inférieur est le rail du milieu - 2La stratégie est basée sur les lignes de la ligne moyenne + 1 déviation standard et de la ligne moyenne - 1 déviation standard. Elles sont utilisées comme lignes de stop loss.

  1. Calculer la SMA de CLOSE comme le rail du milieu des bandes de Bollinger
  2. Calculer l'écart type STD de CLOSE et calculer 2*STD
  3. Relèche moyenne + 2Le STD est le rail supérieur des bandes de Bollinger, le rail du milieu - 2STD est le rail inférieur
  4. Allez long quand le prix dépasse le niveau supérieur
  5. Faites du short quand le prix franchit la barre inférieure.
  6. Si la ligne d'arrêt est cassée, fermez la position.

Les avantages de la stratégie

  1. La conception à double écart type rend le jugement de rupture plus strict pour éviter de faux signaux
  2. La conception de deux lignes de stop-loss maximise le contrôle des risques
  3. L'espace d'optimisation des paramètres, la période du rail central et le multiple de l'écart type peuvent être ajustés
  4. Le retrait peut être contrôlé en ajustant le niveau de stop loss

Risques liés à la stratégie

  1. Les stratégies Bollinger Bands sont sujettes à de fausses ruptures, ce qui conduit à des signaux de trading inexacts.
  2. Le double écart type et le double arrêt des lignes de perte de réglage peut être trop stricte, manquer des opportunités en filtrant trop de signaux
  3. Des paramètres incorrects peuvent augmenter le risque de la stratégie
  4. Le contrôle du tirage n'est pas suffisamment parfait pour contrôler efficacement les pertes dans des conditions de marché extrêmes

Directions d'optimisation

  1. Considérez la combinaison d'autres indicateurs pour filtrer les signaux de négociation Bollinger Bands afin d'éviter de fausses ruptures
  2. Testez différents paramètres et optimisez les paramètres pour un meilleur rapport retour/déploiement
  3. Conception de mécanismes de stop loss dynamiques tels que le stop loss de suivi ou le stop loss en pourcentage des capitaux propres
  4. Combiner des algorithmes d'apprentissage automatique pour optimiser automatiquement les paramètres

Conclusion

En général, cette stratégie est une stratégie de rupture typique des bandes de Bollinger. Elle utilise des écarts standards doubles pour accroître la rigueur du jugement du signal et adopte des lignes de stop loss doubles pour contrôler activement les risques. La stratégie a une certaine marge d'optimisation des paramètres. En ajustant des paramètres tels que la période du milieu du rail et le multiplicateur de déviation standard, une meilleure performance de la stratégie peut être obtenue. En même temps, la stratégie fait également face au problème commun des fausses ruptures dans les stratégies de bandes de Bollinger. En outre, il y a place à une amélioration et à une optimisation supplémentaires du mécanisme de stop loss.


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

//@version=5
// Bollinger Bands: Madrid : 14/SEP/2014 11:07 : 2.0
// This displays the traditional Bollinger Bands, the difference is 
// that the 1st and 2nd StdDev are outlined with two colors and two
// different levels, one for each Standard Deviation

strategy(shorttitle='MBB', title='Bollinger Bands', overlay=true)
src = input(close)
length = input.int(34, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)

basis = ta.sma(src, length)
dev = ta.stdev(src, length)
dev2 = mult * dev

upper1 = basis + dev
lower1 = basis - dev
upper2 = basis + dev2
lower2 = basis - dev2

colorBasis = src >= basis ? color.blue : color.orange

pBasis = plot(basis, linewidth=2, color=colorBasis)
pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles)
pUpper2 = plot(upper2, color=color.new(color.blue, 0))
pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles)
pLower2 = plot(lower2, color=color.new(color.orange, 0))

fill(pBasis, pUpper2, color=color.new(color.blue, 80))
fill(pUpper1, pUpper2, color=color.new(color.blue, 80))
fill(pBasis, pLower2, color=color.new(color.orange, 80))
fill(pLower1, pLower2, color=color.new(color.orange, 80))

// Entry conditions
longCondition = ta.crossover(close, upper1)
shortCondition = ta.crossunder(close, lower1)

// Entry and exit strategy
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.entry("Sell", strategy.short, when=shortCondition)

strategy.close("Buy", when=shortCondition)
strategy.close("Sell", when=longCondition)

Plus de