Stratégie de trading haute fréquence combinant les bandes de Bollinger et le DCA


Date de création: 2024-03-29 16:20:13 Dernière modification: 2024-03-29 16:20:13
Copier: 5 Nombre de clics: 828
1
Suivre
1617
Abonnés

Stratégie de trading haute fréquence combinant les bandes de Bollinger et le DCA

Aperçu

La stratégie est appelée “DCA Booster (1 minute) ” et est une stratégie de trading à haute fréquence qui fonctionne sur une période de 1 minute. La stratégie combine les deux techniques de la bande de Brin et de la DCA (Dollar-Cost Averaging, la méthode du coût moyen en dollars) afin d’exploiter les fluctuations du marché pour acheter et vendre plusieurs fois pour tenter de tirer un profit.

Principe de stratégie

  1. Calcul de la bande de Bryn: calcul de la bande de Bryn en utilisant les moyennes mobiles simples et le décalage standard.
  2. Paramètre DCA: Divisez le montant fixe en plusieurs tranches, comme le montant de la DCA pour chaque installation.
  3. Conditions de mise en place: La stratégie peut être mise en place pour un maximum de 5 positions, selon que le prix reste ou non en dessous de la trajectoire descendante.
  4. Conditions de mise en équilibre: Lorsque le prix est en train de s’effondrer, effacez toutes les positions.
  5. La pyramide: si le cours continue à baisser, la stratégie continue à augmenter les positions, jusqu’à un maximum de 5 positions.
  6. Gestion des positions: la stratégie enregistre la constitution de chaque position et la liquidation de la position correspondante lorsque les conditions de liquidation sont remplies.

Avantages stratégiques

  1. La combinaison des deux technologies, Brin Belt et DCA, permet de capturer efficacement les fluctuations du marché et de réduire le coût d’achat.
  2. La pyramide est autorisée à accumuler des positions, ce qui permet de continuer à construire des positions pendant que les prix continuent à baisser, ce qui augmente les chances de profit.
  3. Les conditions de placement sont simples et claires, permettant de verrouiller rapidement les bénéfices.
  4. Convient pour une utilisation sur des périodes courtes telles que 1 minute, et permet des transactions à haute fréquence.

Risque stratégique

  1. Si les fluctuations du marché sont fortes et que les prix dépassent rapidement la barre de Brent, la stratégie peut être retardée et entraîner des pertes.
  2. Les pyramides risquent d’exposer les investisseurs à une exposition excessive et d’accroître les risques si les prix continuent à baisser.
  3. Les stratégies peuvent être moins efficaces en cas de choc, car les achats et les ventes fréquents peuvent entraîner des coûts de transaction plus élevés.

Orientation de l’optimisation de la stratégie

  1. On peut envisager d’ajouter un stop loss dans les conditions de placement pour contrôler la perte maximale d’une seule transaction.
  2. La logique d’une pyramide peut être optimisée, par exemple en ajustant le montant de la mise en fonction de la baisse des prix, afin d’éviter une surexposition.
  3. Il peut être combiné avec d’autres indicateurs, tels que le RSI, le MACD, etc., pour améliorer la précision des entrées et des sorties.
  4. Les paramètres peuvent être optimisés, tels que le cycle de la bande de Bryn et le multiple de la différence standard, pour s’adapter à différentes conditions de marché.

Résumer

Le DCA Booster (1 minute) est une stratégie de trading à haute fréquence combinant les bandes de Brin et les bandes de DCA, qui permet de capturer les fluctuations du marché et de tenter de tirer profit en créant des positions en lots lorsque le prix est en dessous de la bande de Brin et en les déposant lorsque la bande de Brin est en place. La stratégie permet une augmentation pyramidale de la position, mais présente également le risque d’une forte fluctuation du marché et d’une exposition excessive.

Code source de la stratégie
/*backtest
start: 2024-02-27 00:00:00
end: 2024-03-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("DCA Booster (1 minute)",
  overlay=true )

// Parameters for Bollinger Bands
length = input.int(50, title="BB Length")
mult = input.float(3.0, title="BB Mult")

// Bollinger Bands calculation
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev

// Variables for DCA
cantidad_dolares = 50000
orden1 = cantidad_dolares / close
orden2 = orden1 * 1.2
orden3 = orden2 * 1.3
orden4 = orden3 * 1.5
orden5 = orden4 * 1.5

// Variables for tracking purchases
var comprado1 = false
var comprado2 = false
var comprado3 = false
var comprado4 = false
var comprado5 = false

// Buy conditions
condicion_compra1 = close < lower and close[1] < lower[1] and not comprado1
condicion_compra2 = close < lower and close[1] < lower[1] and comprado1 and not comprado2
condicion_compra3 = close < lower and close[1] < lower[1] and comprado2 and not comprado3
condicion_compra4 = close < lower and close[1] < lower[1] and comprado3 and not comprado4
condicion_compra5 = close < lower and close[1] < lower[1] and comprado4 and not comprado5
// Variables de control
var int consecutive_closes_below_lower = 0
var int consecutive_closes_above_upper = 0

// Entry logic
if condicion_compra1 and barstate.isconfirmed
    consecutive_closes_below_lower := consecutive_closes_below_lower + 1
    if consecutive_closes_below_lower >= 2
        strategy.entry("Compra1", strategy.long, qty=orden1)
        comprado1 := true
        consecutive_closes_below_lower := 0

if condicion_compra2 and barstate.isconfirmed
    consecutive_closes_below_lower := consecutive_closes_below_lower + 1
    if consecutive_closes_below_lower >= 2
        strategy.entry("Compra2", strategy.long, qty=orden2)
        comprado2 := true
        consecutive_closes_below_lower := 0

if condicion_compra3 and barstate.isconfirmed
    consecutive_closes_below_lower := consecutive_closes_below_lower + 1
    if consecutive_closes_below_lower >= 2
        strategy.entry("Compra3", strategy.long, qty=orden3)
        comprado3 := true
        consecutive_closes_below_lower := 0

if condicion_compra4 and barstate.isconfirmed
    consecutive_closes_below_lower := consecutive_closes_below_lower + 1
    if consecutive_closes_below_lower >= 2
        strategy.entry("Compra4", strategy.long, qty=orden4)
        comprado4 := true
        consecutive_closes_below_lower := 0

if condicion_compra5 and barstate.isconfirmed
    consecutive_closes_below_lower := consecutive_closes_below_lower + 1
    if consecutive_closes_below_lower >= 2
        strategy.entry("Compra5", strategy.long, qty=orden5)
        comprado5 := true
        consecutive_closes_below_lower := 0


// Sell conditions
if close > upper  and comprado1 and barstate.isconfirmed
    strategy.close("Compra1")
    comprado1 := false

if close > upper  and comprado2 and barstate.isconfirmed
    strategy.close("Compra2")
    comprado2 := false

if close > upper  and comprado3 and barstate.isconfirmed
    strategy.close("Compra3")
    comprado3 := false

if close > upper and comprado4 and barstate.isconfirmed
    strategy.close("Compra4")
    comprado4 := false

if close > upper and comprado5 and barstate.isconfirmed
    strategy.close("Compra5")
    comprado5 := false