Stratégie de trading sur les bandes de Bollinger


Date de création: 2023-12-19 14:08:45 Dernière modification: 2023-12-19 14:08:45
Copier: 0 Nombre de clics: 639
1
Suivre
1621
Abonnés

Stratégie de trading sur les bandes de Bollinger

Aperçu

Cette stratégie est basée sur la trajectoire ascendante et descendante de la ceinture de Brin, jugeant que le prix fait plus lorsqu’il franchit la ceinture de Brin et fait moins lorsqu’il franchit la ceinture de Brin.

Principe de stratégie

La stratégie utilise les courbes moyenne, supérieure et inférieure de la ceinture de Brin pour déterminer la gamme de prix extrême. La courbe moyenne est la moyenne mobile simple des prix de clôture des 25 derniers cycles, la courbe supérieure et inférieure étant respectivement la distance entre la courbe moyenne et la courbe inférieure.

Si le prix est inférieur à la ligne descendante, achetez plus; si le prix est supérieur à la ligne descendante, vendez à zéro. Lorsque le prix est supérieur à la ligne descendante, définissez la ligne d’arrêt comme le prix d’entrée multiplié par le facteur d’arrêt, et la ligne d’arrêt comme le prix d’entrée multiplié par le facteur d’arrêt.

La stratégie a également ajouté des règles auxiliaires, telles que l’autorisation d’envoyer un seul signal par 24 heures, afin d’éviter des transactions inutiles.

Avantages stratégiques

  1. L’utilisation de bandes de Brin pour déterminer des gammes de prix anormales est une stratégie de suivi de tendance qui permet de capturer les tendances des prix.
  2. Les paramètres sont définis selon le principe de l’arrêt de la perte et permettent de contrôler les pertes individuelles.
  3. Des règles complémentaires ont été ajoutées pour éviter la répétition des signaux et les transactions inutiles.

Risque stratégique

  1. Les bandes de Brin ne sont pas représentatives de la tendance des prix et peuvent donner de faux signaux.
  2. Le mauvais timing des signaux de rupture peut entraîner des pertes
  3. Les marchés tendanciels sont difficiles à prévoir en raison de la durée et de la volatilité de leur absence, ce qui peut conduire à des achats inutiles.

Mesures de contrôle des risques :

  1. Ajustez les paramètres de la bande de Bryn pour optimiser le moment du signal de rupture
  2. Les tendances majeures combinées à d’autres indicateurs
  3. Définition de la marge stop-loss en fonction des variétés et des conditions du marché

Orientation de l’optimisation de la stratégie

  1. On peut envisager d’adapter les paramètres de la ceinture de Brin pour les optimiser afin qu’ils soient plus proches de l’état actuel du marché
  2. Il peut être combiné avec d’autres indicateurs pour juger de la fiabilité des signaux de tendance et éviter les faux signaux.
  3. Les modèles d’apprentissage automatique peuvent être combinés pour identifier automatiquement le meilleur moment pour acheter et vendre.

Résumer

La stratégie est une stratégie de suivi de tendance simple, utilisant les bandes de Brin pour détecter les anomalies de prix et suivre la tendance. Il y a de la place pour l’optimisation des paramètres, le contrôle des risques et le filtrage des signaux, mais l’idée centrale est simple et claire, adaptée à l’apprentissage de la stratégie.

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

//@version=5
strategy("I11L OIL Bot",overlay=true, initial_capital=1000000,default_qty_value=1000000,default_qty_type=strategy.cash,commission_type=strategy.commission.percent,commission_value=0.00)

leverage = input.float(1,"Leverage (x)",step=1)
SL_Factor = 1 - input.float(1,"Risk Capital per Trade (%)", minval=0.1, maxval=100, step=0.05) / 100 / leverage
TP_Factor = input.float(2, step=0.1)
invertBuyLogic = input.bool(false)
 
lookbackDistance = input.int(25)
devMult = input.float(2,step=0.1)

var lastSellHour = 0
var disableAdditionalBuysThisDay = false


if(time > lastSellHour + 1000 * 60 * 60 * 6)
    disableAdditionalBuysThisDay := false
if(strategy.position_size != strategy.position_size[1])
    disableAdditionalBuysThisDay := true
    lastSellHour := time

source = close

//Trade Logic
basis = ta.sma(source, lookbackDistance)
dev = devMult * ta.stdev(source, lookbackDistance)
upper = basis + dev
lower = basis - dev
isBuy = ta.crossunder(source, upper)
isBuyInverted = ta.crossover(source, lower)

plot(upper, color=color.white)
plot(lower, color=color.white)

strategy.initial_capital = 50000

if((invertBuyLogic ? isBuyInverted : isBuy) and not(disableAdditionalBuysThisDay))
    strategy.entry("Long", strategy.long, (strategy.initial_capital / close) * leverage)

if(strategy.position_size > 0)
    strategy.exit("SL Long", "Long", stop=strategy.position_avg_price * SL_Factor)
    strategy.close("Long",  when=close > strategy.position_avg_price * (1 + (1 - SL_Factor) * TP_Factor), comment="TP Long")