Stratégie d'ajustement des bandes de Bollinger

Auteur:ChaoZhang est là., Date: 2023-10-24 à 16h52
Les étiquettes:

img

Résumé

Cette stratégie utilise l'indicateur Bollinger Bands pour juger de la tendance, combiné à l'indicateur RSI pour éviter le surachat, ainsi qu'à des filtres de corps de bougie et à des filtres de couleur pour valider davantage les signaux de trading.

Principaux

Cette stratégie utilise d'abord la bande inférieure de l'indicateur Bollinger Bands. Lorsque le prix est en dessous de la bande inférieure, il est considéré comme une occasion d'ouvrir une position. Pour éviter le surachat, la stratégie introduit également l'indicateur RSI, qui exige que le RSI soit inférieur à 30 pour générer un signal d'achat. En outre, la stratégie définit un filtre de corps de bougie qui exige que le corps du chandelier actuel soit supérieur à la moitié du corps moyen des chandeliers au cours des 10 dernières périodes afin de déclencher un achat.

Lorsque le prix franchit la bande inférieure des bandes de Bollinger, le RSI est inférieur à 30, le corps est suffisamment grand et la bougie est verte, un signal d'achat est généré.

Analyse des avantages

Le plus grand avantage de cette stratégie est qu'elle peut déterminer avec succès le début d'une tendance et entrer sur le marché, et sortir avant l'inversion de tendance, de sorte que le potentiel de profit est grand.

  1. L'indicateur Bollinger Bands juge avec précision la direction de la tendance. Il utilise la fourchette de fluctuation des prix pour déterminer les mouvements des prix, de sorte que l'utilisation de cet indicateur peut déterminer efficacement le début et la fin des tendances.

  2. L'indicateur RSI évite les surachats. L'indicateur RSI peut mesurer les conditions de surachat et de survente.

  3. Le filtrage par entité augmente la fiabilité du signal. Un corps de bougie plus grand représente une percée plus puissante.

  4. Le filtrage des couleurs confirme le timing.

  5. Les traders disent que les tendances se succèdent, et le fait que la bougie se transforme en vert peut juger du moment de l'inversion.

Analyse des risques

La stratégie comporte également des risques à prendre en compte:

  1. Il peut également produire de faux signaux de rupture lorsque le marché oscille.

  2. L'absence de stop loss peut entraîner des pertes plus importantes si les jugements sont erronés.

  3. Des conditions de filtrage trop strictes peuvent faire rater des opportunités d'achat.

  4. S'appuie sur des résultats de backtesting optimisés. Les paramètres et les paramètres de filtrage doivent être optimisés et vérifiés, les résultats réels des transactions doivent également être vérifiés.

  5. Le vert de la bougie ne permet pas de déterminer les renversements, et ne confirme pas pleinement l'inversion de tendance.

Pour les risques, le stop loss peut contrôler les pertes, l'optimisation des filtres réduit les achats manqués, l'utilisation de multiples indicateurs vérifie les signaux et vérifie les résultats dans le trading en direct.

Directions d'amélioration

La stratégie peut être optimisée sous plusieurs aspects:

  1. Optimiser les paramètres de la bande de Bollinger pour les meilleurs réglages. Tester différentes périodes, multiples d'écart type, etc.

  2. Testez différents oscillateurs à la place du RSI, par exemple KDJ, Williams %R, etc.

  3. Ajoutez le stop loss pour contrôler les risques et définissez des stops raisonnables basés sur les données des backtests.

  4. Optimiser les paramètres de l'état du filtre, tester différentes tailles et périodes de filtrage du corps.

  5. Incorporer d'autres indicateurs pour confirmer les signaux, par exemple des indicateurs de confirmation volume-prix.

  6. Testez différents signaux d'inversion, par exemple les croisements de moyennes mobiles pour déterminer l'inversion de tendance.

  7. Tester sur différents produits et délais. Évaluer la stratégie sur différents marchés.

Conclusion

Dans l'ensemble, la stratégie a une tendance relativement forte en fonction de la capacité et de l'adaptabilité. Les forces principales sont l'utilisation de bandes de Bollinger pour déterminer la direction de la tendance et l'utilisation de l'indice de volatilité et des filtres pour assurer le timing. Mais il existe également certains risques qui nécessitent une optimisation et des tests ciblés. Si les paramètres et les règles peuvent être vérifiés, elle peut obtenir de bons résultats dans le trading en direct. En conclusion, la stratégie a une valeur pratique qui mérite d'être explorée.


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//Donate: 3BMEXvKkuJLobJrcpMm12bKTZoCnojZTjh

//@version=2
strategy(title = "Noro's Wizard Strategy v1.1", shorttitle = "Wizard str 1.1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 10)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
length = input(40, defval = 40, minval = 1, maxval = 200, title = "BB Period")
usebod = input(false, defval = false, title = "Use Body-Filter")
usecol = input(false, defval = false, title = "Use Color-Filter")
usersi = input(true, defval = true, title = "Use RSI-Filter")
showar = input(false, defval = false, title = "Show Arrows")
fromyear = input(1900, defval = 1900, 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
src = low
mult = 2
basis = sma(src, length)
dev = mult * stdev(src, length)
lower = basis - dev
plot(lower, color = lime, linewidth = 3, title="Bottom Line")

//Fast RSI Filter
fastup = rma(max(change(close), 0), 7)
fastdown = rma(-min(change(close), 0), 7)
rsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
rsif = rsi < 30 or usersi == false

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2 or usebod == false

//Signals
up1 = low < lower and (close < open or usecol == false) and body and rsif
exit = close > open and nbody > abody / 2

//Arrows
needar = up1 and showar
plotarrow(needar ? 1 : na)

//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if up1
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

Plus de