Stratégie Wave Channel et Stop Loss


Date de création: 2023-11-23 15:49:12 Dernière modification: 2023-11-23 15:49:12
Copier: 1 Nombre de clics: 772
1
Suivre
1617
Abonnés

Stratégie Wave Channel et Stop Loss

Aperçu

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.

Le principe

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.

Les avantages

  1. 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.

  2. Utilisez la volatilité des bandes de Brin pour suivre les tendances

  3. Augmentation des mécanismes de blocage des pertes, permettant de contrôler efficacement les pertes maximales sur une seule transaction

  4. La combinaison de suivi de tendance et de stop loss permet d’obtenir des gains stables

Risque et optimisation

  1. 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.

  2. 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.

  3. Le filtrage des signaux en combinaison avec d’autres indicateurs peut être envisagé pour améliorer la précision des signaux de trading.

  4. 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.

Résumer

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.

Code source de la stratégie
/*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)