Stratégie de rupture de Bollinger

Auteur:ChaoZhang est là., Date: 2023-11-13 10:19:43 Je suis désolé
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de rupture basée sur l'indicateur des bandes de Bollinger. Elle utilise les bandes supérieures et inférieures des bandes de Bollinger pour générer des signaux de rupture pour l'entrée et la sortie.

La logique de la stratégie

La stratégie calcule d'abord la bande moyenne, la bande supérieure et la bande inférieure des bandes de Bollinger.

Lorsque le prix dépasse la bande inférieure, un signal long est généré. Lorsque le prix dépasse la bande supérieure, un signal court est généré. Cela indique que le prix dépasse la gamme des bandes de Bollinger et peut entrer dans une tendance.

En outre, la stratégie vérifie la rupture du corps. Si la fermeture est supérieure à l'ouverture et que le corps pénètre dans la bande du milieu d'un certain pourcentage, il aplatira la position. Si la fermeture est inférieure à l'ouverture et que le corps pénètre dans la bande du milieu d'un certain pourcentage, il aplatira également la position. Cela évite les pertes dues aux fausses ruptures.

Une fois les positions entrées, la stratégie peut suivre le stop loss et la pyramide. Si le prix continue de se déplacer dans une direction favorable, la taille de la position peut être augmentée pour améliorer le potentiel de profit.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Utilisez les bandes de Bollinger pour déterminer la direction de la tendance et attraper les ruptures.

  2. Vérifiez le corps et la bande moyenne pour déterminer la validité de l'évasion, en évitant les pertes dues à de fausses évasions.

  3. Utilisez un stop-loss pour bloquer les bénéfices et contrôler les risques.

  4. Utilisez la pyramide pour obtenir des rendements plus élevés dans les mouvements tendance.

  5. La logique est claire et facile à comprendre.

Analyse des risques

Les risques de cette stratégie comprennent:

  1. Les ruptures de Bollinger Bands ne peuvent pas éviter complètement les fausses ruptures, certaines pertes peuvent survenir.

  2. Le placement incorrect d'un stop loss peut entraîner un stop-out prématuré ou ne pas limiter les pertes.

  3. Des temps et des dimensions de pyramide excessifs peuvent entraîner des pertes accrues.

  4. Le fait de ne pas s'arrêter en temps opportun lorsque la tendance s'inverse peut entraîner des retombées importantes.

  5. Une optimisation insuffisante des paramètres peut entraîner une sous-performance.

  6. Le risque de suradaptation nécessite une validation sur différents marchés.

Directions d'optimisation

La stratégie peut être améliorée par les aspects suivants:

  1. Testez et optimisez les paramètres des bandes de Bollinger pour trouver de meilleures combinaisons.

  2. Testez différentes stratégies de stop loss et optimisez le placement de stop loss.

  3. Testez et trouvez les temps et la taille optimaux de la pyramide.

  4. Ajoutez un filtre de tendance pour éviter les pyramides contre la tendance.

  5. Optimisez la logique de l'évasion du corps pour réduire les fausses évasions.

  6. Ajouter des ordres conditionnels pour utiliser différents ensembles de paramètres basés sur les conditions du marché.

  7. Effectuer plus de tests de rétroaction sur différents produits et délais pour améliorer la robustesse.

  8. Utiliser l'apprentissage automatique pour optimiser automatiquement les paramètres.

Conclusion

En résumé, cette stratégie utilise des bandes de Bollinger pour déterminer la direction de la tendance et les ruptures de capture, avec des stops de perte, des pyramides et d'autres fonctions supplémentaires pour obtenir de bons résultats.


/*backtest
start: 2023-11-05 00:00:00
end: 2023-11-12 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy("Noro's Bollinger Strategy v1.1", shorttitle = "Bollinger str 1.1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")

length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")

showbands = input(true, defval = true, title = "Show Bollinger Bands")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev

//Lines
col = showbands ? black : na 
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)

//Body
body = abs(close - open)
abody = ema(body, 30)

//Signals
up = close <= lower
dn = close >= upper
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open) and body > abody / 2

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
    
if time > timestamp(toyear, tomonth, today, 00, 00) or exit
    strategy.close_all()

Plus de