Stratégie de trading des bandes de Bollinger de Wei


Date de création: 2023-09-13 13:55:24 Dernière modification: 2023-09-13 13:55:24
Copier: 2 Nombre de clics: 942
1
Suivre
1617
Abonnés

Cette stratégie combine l’indicateur de la vague de Weiss et l’indicateur de la bande de Brin pour déterminer la direction de la tendance du marché et effectuer des transactions de rupture dans les points de support critiques.

Le principe de la stratégie:

  1. Calculer les ondes de Weiss pour déterminer la tendance des prix à l’aide d’un diagramme à colonnes.

  2. Le calcul de la courbe de Boolean est descendu de la trajectoire et est entré dans le champ lorsque le prix a franchi la trajectoire.

  3. Les prix ont augmenté lorsque les ondes de Wechsler ont montré une tendance à la hausse, et ont dépassé les courbes de Bollinger.

  4. Le cours de la bourse a été libéré lorsque la vague de Weiss a montré une tendance à la hausse et que le prix a franchi la trajectoire descendante de la courbe de Brin.

  5. La position de sortie en cas de reprise est définie comme une position de sortie en cas de stop loss.

Les avantages de cette stratégie:

  1. L’indicateur de la vague de Weiss permet de déterminer efficacement les principales tendances.

  2. La bande de Brin peut trouver des points de résistance de support critiques.

  3. L’utilisation combinée d’indicateurs peut améliorer l’exactitude des jugements.

Le risque de cette stratégie:

  1. Les vagues de Weiss et la ceinture de Brin sont à la traîne, avec de mauvaises places pour l’entrée.

  2. Les transactions de rupture sont faciles à piéger et nécessitent une protection contre les pertes.

  3. Il est difficile d’identifier une tendance persistante et une rupture claire.

En résumé, la stratégie combine les ondes de Weiss et les courbes de Brin pour déterminer la direction de la tendance et effectuer des transactions de rupture aux points critiques. Elle permet d’améliorer la précision dans une certaine mesure, mais il faut être vigilant face aux problèmes de stagnation et de choc des marchés.

Code source de la stratégie
/*backtest
start: 2023-08-13 00:00:00
end: 2023-09-12 00:00:00
period: 1h
basePeriod: 15m
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/
// © sharatgbhat

//@version=4
// strategy("Weis BB Strategy", overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 10,max_lines_count = 500, max_labels_count = 500)
maxIdLossPcnt = input(1, "Max Intraday Loss(%)", type=input.float)
// strategy.risk.max_intraday_loss(maxIdLossPcnt, strategy.percent_of_equity)

method = input(defval="ATR", options=["ATR", "Traditional", "Part of Price"], title="Renko Assignment Method")
methodvalue = input(defval=14.0, type=input.float, minval=0, title="Value")
pricesource = input(defval="Close", options=["Close", "Open / Close", "High / Low"], title="Price Source")
useClose = pricesource == "Close"
useOpenClose = pricesource == "Open / Close" or useClose
useTrueRange = input(defval="Auto", options=["Always", "Auto", "Never"], title="Use True Range instead of Volume")
isOscillating = input(defval=false, type=input.bool, title="Oscillating")
normalize = input(defval=false, type=input.bool, title="Normalize")
vol = useTrueRange == "Always" or useTrueRange == "Auto" and na(volume) ? tr : volume
op = useClose ? close : open
hi = useOpenClose ? close >= op ? close : op : high
lo = useOpenClose ? close <= op ? close : op : low

if method == "ATR"
    methodvalue := atr(round(methodvalue))
if method == "Part of Price"
    methodvalue := close / methodvalue

currclose = float(na)
prevclose = nz(currclose[1])
prevhigh = prevclose + methodvalue
prevlow = prevclose - methodvalue
currclose := hi > prevhigh ? hi : lo < prevlow ? lo : prevclose

direction = int(na)
direction := currclose > prevclose ? 1 : currclose < prevclose ? -1 : nz(direction[1])
directionHasChanged = change(direction) != 0
directionIsUp = direction > 0
directionIsDown = direction < 0

barcount = 1
barcount := not directionHasChanged and normalize ? barcount[1] + barcount : barcount
vol := not directionHasChanged ? vol[1] + vol : vol
res = barcount > 1 ? vol / barcount : vol

plot(isOscillating and directionIsDown ? -res : res, style=plot.style_columns, color=directionIsUp ? color.green : color.red, transp=75, linewidth=3, title="Wave Volume")

length = input(14, minval=1)
src = input(close, title="Source")
mult = input(2, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))

MomentumBull = close>upper
MomentumBear = close<lower

if (MomentumBull and directionIsUp)
	strategy.entry("Buy", strategy.long)
if (MomentumBear and directionIsDown)
	strategy.entry("Sell", strategy.short)
    strategy.exit("exit","Buy",when=directionIsDown,qty_percent=100,profit=20,loss=10)
    strategy.exit("exit","Sell",when=directionIsUp,qty_percent=100,profit=20,loss=10)