
La stratégie des bandes de Bollinger est une stratégie classique qui utilise les bandes de Bollinger pour suivre la tendance et sur-acheter les signaux de survente. Cette version ajoute un mécanisme de stop-loss pour contrôler le risque sur la base de la stratégie originale.
Les stratégies permettent de juger de l’excédent d’achat et de vente du marché en suivant les bandes de Brin. La zone située entre les bandes de Brin et les bandes de Brin reflète l’étendue des fluctuations du marché actuel.
La zone de Brin est un indicateur technique qui reflète la volatilité et l’ampleur des fluctuations du marché. Lorsque le prix touche juste la zone de Brin, il indique que le marché est en survente.
Cette stratégie est combinée à la réalisation de signaux de surachat et de survente de la ceinture de Brin pour établir des positions de suivi de tendance et ajouter des mécanismes de stop-loss pour contrôler le risque.
Lorsque le prix est en hausse et en baisse, cela indique que le marché est entré dans une zone raisonnable à partir d’une zone de survente. Une position à plusieurs positions peut être établie. Lorsque le prix est en baisse, cela indique que le marché est entré dans une zone de survente.
Après avoir créé une position, définissez un point de perte de pourcentage fixe pour contrôler le risque. Lorsque la perte dépasse la marge de perte de perte définie, la perte de perte s’arrête et se retire de la position actuelle, afin d’éviter une perte excessive.
Cette stratégie, combinée à l’indicateur de la ceinture de Brin, détermine les zones de survente et de survente, permettant d’obtenir des prix bas et des prix élevés en détectant une intersection des rails ascendants et descendants.
Utilisez la volatilité des bandes de Brin pour suivre les tendances
Augmentation des mécanismes de blocage des pertes, permettant de contrôler efficacement les pertes maximales sur une seule transaction
La combinaison de suivi de tendance et de stop loss permet d’obtenir des gains stables
La définition des paramètres de la ceinture de Brin affecte la qualité du signal de négociation. La longueur de la voie médiane n et le multiple de la différence standard k doivent être raisonnablement réglés en fonction des différents marchés, sinon cela affectera la précision du signal de négociation.
Un arrêt trop élevé ou trop faible peut affecter la stabilité des gains. Un arrêt trop élevé augmente le risque de perte individuelle et un arrêt trop faible augmente la probabilité d’être déclenché. Un arrêt raisonnable en pourcentage selon les variétés est nécessaire.
Le filtrage des signaux en combinaison avec d’autres indicateurs peut être envisagé pour améliorer la précision des signaux de trading.
Il est possible de tester différents réglages de tenue de position, comme la combinaison d’une échelle horaire ou d’une courte période de Brin pour des transactions plus fréquentes et une meilleure efficacité d’utilisation des fonds.
Cette stratégie est une stratégie de suivi de tendance courante, combinée à la construction de positions dans les zones de survente et de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente de la zone de survente.
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Bollinger Bands Strategy", overlay=false, shorttitle="BBS", pyramiding=0, currency=currency.USD, commission_type=strategy.commission.percent, commission_value=0.03, initial_capital=1000)
source = input(close, "Source")
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50, step=0.001)
stopLossFactor = input.float(1, "Stop Loss Percent", maxval = 100, minval = 0, step=0.1)
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev
var float lastTradePrice = na
var float stopLossLow = na
var float stopLossHigh = na
var bool currentIsLong = na
var bool nextExpectedIsLong = true
var bool existedLong = false
var bool existedShort = false
buyEntry = ta.crossover(source, lower)
sellEntry = ta.crossunder(source, upper)
if (buyEntry and nextExpectedIsLong == true)
strategy.entry("BBandLE", strategy.long, comment="BBandLE")
nextExpectedIsLong := false
if(nz(strategy.position_size[1], 0) < 0) // new position detected
lastTradePrice := close
stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
else
strategy.cancel("BBandLE")
if (sellEntry and nextExpectedIsLong == false)
strategy.entry("BBandSE", strategy.short, comment="BBandSE")
nextExpectedIsLong := true
if(nz(strategy.position_size[1], 0) > 0) // new position detected
lastTradePrice := close
stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
else
strategy.cancel("BBandSE")
strategy.close("BBandLE", close < stopLossLow)
strategy.close("BBandSE", close > stopLossHigh)
// if(nz(strategy.position_size[1], 0) < 0 and close > stopLossHigh)
// strategy.entry("BBandLE", strategy.long, comment="BBandLE")
// lastTradePrice := close
// stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
// stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
// if(nz(strategy.position_size[1], 0) > 0 and close < stopLossLow)
// strategy.exit("BBandSE", strategy.short, comment="BBandSE")
// lastTradePrice := close
// stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
// stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
plot(source, "close", color.blue)
plot(lower, "lower", color.red)
plot(upper, "upper", color.red)
plot(stopLossLow, "StopLossLow", color.black)
plot(stopLossHigh, "StopLossHigh", color.black)
plot(lastTradePrice, "lastTradePrice", color.green)
plotchar(strategy.position_size > 0, char="-", size=size.tiny, location=location.bottom, color=color.green)
plotchar(strategy.position_size < 0, char="-", size=size.tiny, location=location.bottom, color=color.red)