Stratégie de vagues FiboBuLL basée sur la cassure des bandes de Bollinger


Date de création: 2023-12-01 14:11:56 Dernière modification: 2023-12-01 14:11:56
Copier: 0 Nombre de clics: 445
1
Suivre
1213
Abonnés

Stratégie de vagues FiboBuLL basée sur la cassure des bandes de Bollinger

Aperçu

La stratégie FiboBuLL Wave est une stratégie de trading basée sur la version de filtrage de la ceinture de Brin, que vous trouverez sous la page de mon programme. La stratégie fait plus lorsque la clôture du prix est supérieure à la trajectoire supérieure et fait moins lorsque la clôture du prix est inférieure à la trajectoire inférieure.

Les bandes de Brin sont un indicateur classique qui utilise une moyenne mobile simple de 20 cycles, ainsi que des bandes ascendantes et descendantes de 2 écarts standard de la ligne de référence. Ces bandes aident à visualiser la volatilité et la tendance des prix en fonction de la position des prix par rapport aux bandes.

La stratégie ne prend pas en compte d’autres paramètres, tels que le volume de transactions, le RSI, les fondamentaux, etc., de sorte que l’utilisateur doit exercer son libre arbitre en fonction de la confirmation ou des fondamentaux provenant d’autres indicateurs. Les résultats de la stratégie sont purement basés sur des transactions à plusieurs têtes et à vide, sans tenir compte d’objectifs ou de stop-loss définis par l’utilisateur.

La stratégie est la plus efficace lorsque le prix atteint des pics/baisses de clôture sur des piliers consécutifs. Il est certainement judicieux de décider d’utiliser cette stratégie ou le filtre de Brin avec d’autres indicateurs lorsque le prix atteint des pics/baisses de clôture sur des piliers consécutifs ou des pics/baisses de prix basés sur la volatilité.

Cette stratégie peut être utilisée sur des graphiques horaires et horaires, ou pour détecter des tendances dans des stratégies en ligne droite et en ligne gauche, mais elle n’est pas recommandée pour les entrées de négociation, car elles ne peuvent pas refléter le prix réel de l’actif.

Principe de stratégie

Le principe de base de la stratégie d’onde FiboBuLL est la rupture des prix basée sur l’indicateur de la ceinture de Brin. La ceinture de Brin est composée d’un milieu, d’un haut et d’un bas. Le milieu est la moyenne mobile simple à 21 cycles du prix de clôture; le haut est calculé par le milieu plus la distance au-dessus du milieu, qui reflète la gamme de fluctuation vers le haut du prix; le bas est calculé par le milieu moins la distance au-dessous du milieu, qui reflète la gamme de fluctuation vers le bas.

Un signal de coupe est généré lorsque le prix de clôture est en train de traverser l’orbite; un signal de coupe est généré lorsque le prix de clôture est en train de traverser l’orbite. Après avoir fait une coupe supplémentaire, il est à nouveau en position de rupture lorsque l’orbite opposée est brisée.

Cette stratégie utilise la fonction barssince pour suivre le prix par rapport aux ruptures de la voie ascendante et descendante. Un signal de plus est produit lorsque le nombre de colonnes de rupture de la voie ascendante est inférieur au nombre de colonnes de rupture de la voie descendante et un signal de vide est produit lorsque le nombre de colonnes de rupture de la voie descendante est inférieur au nombre de colonnes de rupture de la voie ascendante.

En ajustant le paramètre de la période de la demi-orbite et le paramètre du multiple de l’écart standard, on peut modifier la sensibilité de rupture de la ceinture de Bourin, afin d’ajuster le temps d’entrée.

Analyse des avantages

La stratégie d’onde FiboBuLL présente les avantages suivants:

  1. Le prix de la rupture est déterminé à l’aide de la courbe de Brin, et le principe est simple et facile à comprendre.
  2. La sensibilité de la percée peut être contrôlée en ajustant les paramètres
  3. La visualisation des bandes de Brin aide à déterminer les fluctuations et les tendances des prix.
  4. Peut être utilisé avec d’autres indicateurs pour améliorer la précision de la prise de décision
  5. Utilisable dans plusieurs périodes de temps

Analyse des risques

Les stratégies FiboBuLL comportent également des risques à prendre en compte:

  1. La simple dépendance à la rupture de la bande de Bryn peut générer de faux signaux
  2. La force et la durée de la rupture sont incertaines.
  3. La reprise des cours après la rupture est incertaine
  4. Le risque de perte est élevé

Les risques mentionnés ci-dessus peuvent être optimisés dans les domaines suivants:

  1. Combinez les autres indicateurs pour éviter les faux signaux
  2. Détermination des paramètres en fonction des tests de données historiques
  3. Définir un point de rupture et contrôler les pertes maximales
  4. Considérer l’ajout d’un facteur de réversion pour juger de la continuité

Direction d’optimisation

La stratégie FiboBuLL sur les ondes peut être optimisée dans les domaines suivants:

  1. Ajouter des indicateurs de transaction, tels que l’indicateur de marée énergétique, pour éviter les fausses ruptures de faiblesse
  2. L’analyse des indices de survente et de survente, combinée avec le RSI, améliore la précision des décisions
  3. Déterminer le cycle optimal et le multiple de la différence standard en fonction des paramètres d’optimisation de la rétroaction historique
  4. Définir des niveaux de stop loss et de stop loss, contrôler les risques et verrouiller les bénéfices
  5. Considérant les tendances et les conditions de filtrage inversé, déterminer la direction à suivre
  6. Paramètres de test pour différentes variétés et périodes

En optimisant les points ci-dessus, on peut considérablement améliorer la stabilité et la rentabilité de la stratégie d’onde FiboBuLL.

Résumer

La stratégie d’onde FiboBuLL utilise les principes fondamentaux de la courbe de Brin pour déterminer les ruptures et les retours de prix, pour suivre les fluctuations des prix sur et en dessous de l’orbite moyenne et pour former des signaux de transaction avec des ruptures. La stratégie est simple en concept et est une méthode efficace pour suivre la volatilité du marché.

Cependant, la simple dépendance à une rupture peut entraîner des signaux erronés et des ruptures impuissantes. Par conséquent, il faut combiner la tendance, le volume de transactions et d’autres facteurs pour juger de la fiabilité de la rupture et définir les risques de contrôle de l’arrêt de la perte pour tirer le meilleur parti de la stratégie.

La stratégie d’ondes FiboBuLL nous fournit un cadre de base pour déterminer le moment de la transaction en fonction des fluctuations des prix. La stratégie peut être un outil puissant pour la prise de décision de négociation dans le processus d’optimisation continue et de coordination avec d’autres indicateurs.

Code source de la stratégie
/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@FiboBuLL

strategy(shorttitle='FB Wave', title='FiboBuLL Wave (A version of Bollinger Bands Breakout Strategy By Trade Chartist)', overlay=true, pyramiding=1, currency=currency.NONE, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

src = input(close, title='Source')
length = input.int(21, minval=1, title='SMA length')  // 20 for classis Bollinger Bands SMA line (basis)


mult = input.float(1., minval=0.236, maxval=2, title='Standard Deviation')  //2 for Classic Bollinger Bands //Maxval = 2 as higher the deviation, higher the risk
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)

Show = input.string('Both', options=['Longs Only', 'Shorts Only', 'Both'], title='Trade Type')
CC = input(true, 'Color Bars')

upper = basis + dev
lower = basis - dev

//Conditions for Long and Short - Extra filter condition can be used such as RSI or CCI etc.

short = src < lower  // and rsi(close,14)<40
long = src > upper  // and rsi(close,14)>60

L1 = ta.barssince(long)
S1 = ta.barssince(short)

longSignal = L1 < S1 and not (L1 < S1)[1]
shortSignal = S1 < L1 and not (S1 < L1)[1]

//Plots and Fills


////Long/Short shapes with text
// plotshape(S1<L1 and not (S1<L1)[1]?close:na, text = "sᴇʟʟ", textcolor=#ff0100, color=#ff0100, style=shape.triangledown, size=size.small, location=location.abovebar, transp=0, title = "SELL", editable = true)
// plotshape(L1<S1 and not (L1<S1)[1]?close:na, text = "ʙᴜʏ", textcolor = #008000, color=#008000, style=shape.triangleup, size=size.small, location=location.belowbar, transp=0, title = "BUY", editable = true)  

// plotshape(shortSignal?close:na, color=#ff0100, style=shape.triangledown, size=size.small, location=location.abovebar, transp=0, title = "Short Signal", editable = true)
// plotshape(longSignal?close:na, color=#008000, style=shape.triangleup, size=size.small, location=location.belowbar, transp=0, title = "Long Signal", editable = true)  


p1 = plot(upper, color=color.new(#ff0000, 75), display=display.all, title='Upper Band')
p2 = plot(lower, color=color.new(#008000, 75), display=display.all, title='Lower Band')

p = plot(basis, color=L1 < S1 ? #008000 : S1 < L1 ? #ff0000 : na, linewidth=2, editable=false, title='Basis')

fill(p, p1, color=color.new(color.teal, 85), title='Top Fill')  //fill for basis-upper
fill(p, p2, color=color.rgb(217, 161, 161), title='Bottom Fill', transp=85)  //fill for basis-lower

//Barcolor

bcol = src > upper ? color.new(#8ceb07, 0) : src < lower ? color.new(#ff0000, 0) : src > basis ? color.green : src < basis ? color.red : na

barcolor(CC ? bcol : na, editable=false, title='Color Bars')


// === INPUT BACKTEST RANGE ===
FromMonth = input.int(defval=1, title='From Month', minval=1, maxval=12)
FromDay = input.int(defval=1, title='From Day', minval=1, maxval=31)
FromYear = input.int(defval=2018, title='From Year', minval=2015)
ToMonth = input.int(defval=1, title='To Month', minval=1, maxval=12)
ToDay = input.int(defval=1, title='To Day', minval=1, maxval=31)
ToYear = input.int(defval=9999, title='To Year', minval=2010)

// === FUNCTION EXAMPLE === 
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)  // backtest finish window
window() =>
    time >= start and time <= finish ? true : false

if window() and (Show == 'Longs Only' or Show == 'Both')
    strategy.entry('AL', direction=strategy.long, when=longSignal)
    strategy.close('LongAL', when=shortSignal, comment='AL KAPA')

if window() and (Show == 'Shorts Only' or Show == 'Both')
    strategy.entry('SAT', direction=strategy.short, when=shortSignal)
    strategy.close('SAT', when=longSignal, comment='SAT KAPA')