Stratégie BB%B

Auteur:ChaoZhang est là., Date: le 25 septembre 2023 à 17h53
Les étiquettes:

Résumé

La stratégie BB%B est une stratégie de trading quantitative qui utilise la valeur en pourcentage B des bandes de Bollinger pour prendre des décisions d'investissement.

La logique de la stratégie

L'indicateur BB%B représente la position du prix actuel à l'intérieur des bandes de Bollinger, calculée par la formule (Current Price - Lower Rail) / (Upper Rail - Lower Rail). Lorsque BB%B tombe en dessous du seuil de survente, un signal d'achat est généré. Lorsque BB%B dépasse le seuil de survente, un signal de vente est généré. Après le déclenchement du signal de trading, si BB%B se retire vers le seuil opposé, la position sera fermée.

Plus précisément, la stratégie calcule d'abord la SMA de 21 jours et l'écart type 2x pour obtenir les rails supérieur et inférieur des bandes de Bollinger. Elle calcule ensuite la valeur BB%B du prix de clôture actuel. Si BB%B est inférieur à -0.2 (configurable) et qu'il n'y a pas de position actuelle, passez long. Si BB%B est supérieur à 1.2 (configurable) et qu'il n'y a pas de position actuelle, passez court. Les signaux de sortie sont déclenchés lorsque la position longue existe et que BB%B franchit au-dessus de 1.0 (configurable), ou lorsque la position courte existe et que BB%B franchit au-dessous de 0.2 (configurable).

La stratégie s'appuie sur l'indicateur BB%B pour déterminer si le prix actuel est trop étendu à la hausse ou à la baisse, et utilise également le SMA pour juger de la direction de la tendance actuelle.

Analyse des avantages

  • Utiliser les bandes de Bollinger pour identifier les niveaux de surachat/survente

Les rails supérieurs et inférieurs des bandes de Bollinger représentent une certaine fourchette d'écart type du prix actuel. Les prix qui approchent ou touchent les conditions de surachat du signal supérieur du rail, tout en approchant ou touchant les conditions de survente du signal inférieur du rail. La stratégie BB%B utilise pleinement cette caractéristique pour déterminer les points d'entrée et de sortie appropriés.

  • Configuration flexible pour régler la fréquence

Les seuils BB%B, les périodes SMA, les seuils de retrait sont tous configurables, ce qui permet de régler la fréquence de négociation.

  • Identification combinée des tendances

En plus de la détermination de la surachat/survente avec les bandes de Bollinger, il combine également la SMA pour juger de la tendance globale, en évitant de négocier contre la tendance.

  • Mécanisme de rétractation pour éviter les faux signaux

Lorsque le prix atteint pour la première fois les rails des bandes de Bollinger, la probabilité de surachat/survente est élevée, mais cela pourrait aussi être une fausse rupture à court terme.

Analyse des risques

  • Impossible de déterminer l'évolution des prix

La stratégie examine uniquement l'indicateur Bollinger Bands pour déterminer les renversements potentiels, en ignorant la tendance globale, ce qui peut conduire à des transactions contre tendance et des pertes.

  • Un seuil de retrait inapproprié peut faire rater des opportunités

Si le seuil de recul est trop élevé, l'inversion de tendance peut ne pas déclencher un changement de position dans le temps, ce qui fait perdre des opportunités.

  • Différence de prix plus large lorsque les bandes de Bollinger se développent

Lorsque la volatilité du marché augmente, la distance entre les rails supérieur et inférieur augmente également, ce qui entraîne un écart de prix plus important pour l'entrée et la sortie, ce qui entraîne un risque plus élevé par transaction.

  • Fréquence de négociation relativement élevée

Par rapport aux stratégies à long terme, cette stratégie a une fréquence de négociation plus élevée, entraînant plus de coûts de négociation et de glissement.

Directions d'amélioration

  • Incorporer des indicateurs de tendance pour le filtrage des signaux

Ajoutez des indicateurs déterminant la tendance tels que MACD, KDJ pour déclencher uniquement les transactions dans la direction de la tendance, en évitant les transactions contre-tendance.

  • Mettre en œuvre un mécanisme de stop loss

Définir un montant fixe ou un pourcentage de stop loss pour contrôler le risque par transaction et éviter l'expansion des pertes.

  • Optimiser les combinaisons de paramètres

Ajustez les périodes SMA, les seuils BB%B, les seuils de rétractation, etc. pour trouver la combinaison optimale de paramètres, filtrant plus de bruit et améliorant la stabilité.

  • Considérez les coûts de négociation

Pour les différents produits, ajuster les paramètres à une fréquence de négociation plus faible en fonction de leur profil de coûts de négociation afin de réduire l'impact.

Résumé

La stratégie BB%B est une stratégie de trading quantitative simple et pratique. Elle utilise les bandes de Bollinger pour identifier les points de prix potentiels d'inversion, se combine avec la SMA pour la direction de la tendance et négocie autour des niveaux de surachat / survente. La stratégie est flexible pour ajuster la fréquence. Mais elle comporte également des risques qui nécessitent d'autres améliorations, en tenant compte de facteurs tels que la tendance globale, le stop loss, les coûts de trading, pour améliorer la stabilité et la rentabilité. Lorsqu'elle est utilisée correctement, la stratégie BB%B peut devenir un composant efficace dans les systèmes de trading quantitatif.


/*backtest
start: 2023-08-25 00:00:00
end: 2023-09-24 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// strategy(title = "BB%B Strat", shorttitle = "BB%B Strat", format=format.price, precision=2, default_qty_type=strategy.percent_of_equity, default_qty_value=20)
length = input.int(21, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
ob = input.float(1.2, "Overbought Line", step=0.1)
ob_close = input.float(1.0, "Overbought Close", step=0.1)
os = input.float(-0.2, "Oversold Line", step=0.1)
os_close = input.float(0.2, "Oversold Close", step=0.1)
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
bbr = (src - lower)/(upper - lower)
p = plot(bbr, "Bollinger Bands %B", color=#26A69A)
ob_hline = hline(ob, "Overbought", color=color.red, linestyle=hline.style_dashed)
obc_hline = hline(ob_close, "Overbought Close", color=color.red, linestyle=hline.style_dashed)
os_hline = hline(os, "Oversold", color=color.green, linestyle=hline.style_dashed)
osc_hline = hline(os_close, "Oversold Close", color=color.green, linestyle=hline.style_dashed)
fill(ob_hline, obc_hline, color=color.new(color.red, 80), title="Overbought")
fill(os_hline, osc_hline, color=color.new(color.green, 80), title="Overbought")
bgcolor(bbr > ob ? color.new(color.fuchsia, 80) : (bbr < os ? color.new(color.lime, 80) : na))

if bbr < os and strategy.position_size == 0
    strategy.entry("L", strategy.long)
if bbr >= os_close and strategy.position_size > 0
    strategy.close_all()

if bbr > ob and strategy.position_size == 0
    strategy.entry("S", strategy.short)
if bbr <= ob_close and strategy.position_size < 0
    strategy.close_all()

Plus de