Stratégie de rupture des oscillations des bandes de Bollinger

Auteur:ChaoZhang est là., Date: 2023-11-01 16:45:54 La date est fixée à
Les étiquettes:

img

Résumé

Cette stratégie combine les bandes de Bollinger et l'indicateur Aroon pour tirer profit de l'oscillation et des percées sur les marchés volatils.

La logique de la stratégie

La stratégie utilise principalement deux indicateurs pour identifier les opportunités de négociation et les points de sortie.

Premièrement, les bandes de Bollinger. Elle se compose d'une bande moyenne, d'une bande supérieure et d'une bande inférieure. La bande moyenne est une moyenne mobile simple du prix de clôture sur n périodes. La bande supérieure est la bande moyenne + k déviations standard. La bande inférieure est la bande moyenne - k déviations standard. Une percée vers le haut de la bande moyenne de la bande inférieure signale une entrée longue. Une percée vers le bas de la bande moyenne de la bande supérieure signale une entrée courte. La stratégie utilise les bandes de Bollinger pour identifier les points d'opportunité au milieu des tendances d'oscillation, en entrant autour des percées de la bande moyenne.

Deuxièmement, l'indicateur Aroon. Il reflète la force relative du prix le plus élevé et le plus bas sur n périodes. Aroon peut déterminer les tendances et les opportunités. Lorsque la ligne Aroon Up est supérieure à un seuil, elle indique une tendance à la hausse. Lorsque la ligne Aroon Down est supérieure à un seuil, elle indique une tendance à la baisse. La stratégie utilise Aroon Up pour confirmer une tendance à la hausse et Aroon Down pour déterminer un stop loss.

En combinant les deux indicateurs, la stratégie est longue lorsqu'une percée de Bollinger se produit et qu'Aroon Up est supérieur à un seuil.

Les avantages

  1. La combinaison de plusieurs indicateurs améliore la précision. Un seul indicateur est sensible au bruit du marché. La combinaison de bandes de Bollinger et d'Aroon peut filtrer les faux signaux.

  2. Les bandes de Bollinger ont une forte capacité d'identification des tendances et peuvent détecter des opportunités de percée à court terme.

  3. Le contrôle des risques est correct. Le stop loss et l'Aroon Down contrôlent le risque à la baisse. La taille des positions limite également les pertes par transaction.

  4. Comparé aux stratégies de suivi de tendance, cette stratégie fonctionne mieux sur les marchés oscillants.

Les risques

  1. Les bandes de Bollinger peuvent être inexactes et des événements soudains sur le marché peuvent invalider les bandes de Bollinger.

  2. Les paramètres d'Aroon doivent être optimisés, les différents marchés doivent ajuster les paramètres d'Aroon pour obtenir les meilleurs résultats.

  3. L'intervalle d'arrêt de perte trop serré provoque des déclencheurs répétés.

  4. Évitez les marchés à forte tendance. La stratégie convient aux marchés oscillants. Elle fonctionne mal sur les marchés à forte tendance.

Optimisations

  1. Optimisez les paramètres de Bollinger, utilisez des bandes de Bollinger adaptatives. Permettez un ajustement dynamique des paramètres pour une meilleure flexibilité.

  2. Optimiser les paramètres dynamiques d'Aroon. Différents actifs et délais nécessitent différents paramètres d'Aroon. Rechercher une optimisation dynamique.

  3. Ajouter des filtres comme RSI pour éviter les surachats/surventes.

  4. Utilisez l'apprentissage automatique pour optimiser le stop loss.

  5. Les indicateurs de volume peuvent empêcher de faux signaux de rupture de Bollinger.

Conclusion

Dans l'ensemble, il s'agit d'une stratégie de trading d'oscillation typique. Il identifie les opportunités de trading en combinant les bandes de Bollinger et Aroon, capables de capitaliser sur les oscillations à court terme du marché. Avec un stop loss, une gestion de risque et une optimisation des paramètres appropriés, il est adapté aux marchés de gamme. Mais l'optimisation et le contrôle des risques sont nécessaires pour éviter de l'appliquer sur les marchés en tendance.


/*backtest
start: 2023-10-24 00:00:00
end: 2023-10-28 21:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © relevantLeader16058

//@version=4
// strategy(shorttitle='Bollinger bands And Aroon Scalping',title='Bollinger bands And Aroon Scalping (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"


// BB inputs and calculations
lengthBB = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, lengthBB)
dev = mult * stdev(src, lengthBB)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)


lengthAr = input(288, minval=1)
AroonUP = 100 * (highestbars(high, lengthAr+1) + lengthAr)/lengthAr
AroonDown = 100 * (lowestbars(low, lengthAr+1) + lengthAr)/lengthAr


Confirmation = input(90, "Aroon Confirmation")
Stop = input(70, "Aroon Stop")

Bullish = crossunder (close, basis)
Bearish = crossunder (close, upper)

//Entry 

strategy.entry(id="long", long = true, when = Bullish and AroonUP > Confirmation and window())

//Exit

strategy.close("long", when = Bearish or AroonUP < Stop and window())




Plus de