Stratégie de swing trading avec les bandes de Bollinger


Date de création: 2024-02-21 14:39:14 Dernière modification: 2024-02-21 14:39:14
Copier: 0 Nombre de clics: 356
1
Suivre
1237
Abonnés

Stratégie de swing trading avec les bandes de Bollinger

Aperçu

La stratégie de trading de rupture des courbes de Bollinger est une stratégie de trading utilisée lorsque le marché est en état de choc. Elle utilise les indicateurs de la courbe de Bollinger pour juger de l’état de choc du marché et envoie un signal de trading lorsque le prix touche la courbe de Bollinger et descend. Contrairement à la stratégie traditionnelle de suivi de la tendance, la stratégie est plus adaptée à un environnement de marché de couverture horizontale.

Principe de stratégie

La stratégie est basée sur l’indicateur de la ceinture de Brin. La ceinture de Brin se compose de la voie moyenne, de la voie supérieure et de la voie inférieure. Lorsque le prix est proche de la voie supérieure ou de la voie inférieure, ce qui représente une hausse ou une baisse excessive du marché, il y a une plus grande probabilité de reprise.

Plus précisément, la stratégie utilise d’abord l’indicateur DMI pour déterminer si le marché est en état de choc. Lorsque la différence entre + DMI et -DMI est inférieure à 20, le marché est considéré comme en état de choc horizontal. Dans ces conditions, lorsque le prix est en hausse, le cours est en hausse et lorsque le prix est en baisse, il est en baisse.

Avantages stratégiques

Par rapport à la stratégie de suivi de la tendance, cette stratégie est mieux adaptée aux conditions de marché où les fluctuations horizontales sont plus fréquentes et ne perd pas d’intérêt en poursuivant la tendance. Par rapport à la stratégie de négociation de choc traditionnelle, cette stratégie utilise l’indicateur de la bande de Brin pour déterminer avec plus de précision les surachats et les surventes du marché, ce qui augmente la probabilité d’entrée.

Risque stratégique

La stratégie repose principalement sur la courbe de Brin pour évaluer les fluctuations du marché et les sur-achats et les sur-vente. La diffusion ou la contraction anormale de la courbe de Brin peut entraîner des signaux erronés. De plus, le point d’arrêt est proche et la perte d’un seul arrêt peut être plus importante.

Orientation de l’optimisation de la stratégie

On peut envisager de filtrer les signaux d’entrée en combinant d’autres indicateurs, tels que les indicateurs de choc tels que le RSI, pour améliorer l’exactitude de l’entrée. De plus, il est important d’optimiser la stratégie de stop-loss pour éviter de faire de gros stops. Il est également possible de choisir des variétés de transactions plus adaptées à cette stratégie, telles que les pièces de faible valeur marchande.

Résumer

Cette stratégie est globalement adaptée aux marchés instables et peut être utilisée lorsque la stratégie de tendance échoue. Cependant, il reste de la place pour l’optimisation de l’efficacité de sa dépendance aux indicateurs pour juger de l’état du marché. Nous pouvons améliorer encore cette stratégie en utilisant des méthodes telles que la combinaison de plusieurs indicateurs et la gestion des fonds, afin de rendre ses effets plus stables et plus efficaces.

Code source de la stratégie
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle='Sideways Strategy DMI + Bollinger Bands',title='Sideways Strategy DMI + Bollinger Bands (by Coinrule)', overlay=true, initial_capital = 100, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)

// Works on ETHUSD 3h, 1h, 2h, 4h

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2021, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 12,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 31,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2022, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true

[pos_dm, neg_dm, adx] = dmi(14, 14)


lengthBB = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, lengthBB)
dev = mult * stdev(src, lengthBB)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)

sideways = (abs(pos_dm - neg_dm) < 20)



//Stop_loss= ((input (3))/100)
//Take_profit= ((input (2))/100)

//longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
//longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

//closeLong = close < longStopPrice or close > longTakeProfit or StopRSI


//Entry 
strategy.entry(id="long", long = true, when = sideways and (crossover(close, lower)) and window())


//Exit
strategy.close("long", when = (crossunder(close, upper)))