Stratégie quantitative à haute fréquence des bandes de Bollinger combinée à une stratégie long-short de franchissement des points hauts et bas

BB SMA SD RR HH LL
Date de création: 2024-12-04 15:15:50 Dernière modification: 2024-12-04 15:15:50
Copier: 2 Nombre de clics: 564
1
Suivre
1617
Abonnés

Stratégie quantitative à haute fréquence des bandes de Bollinger combinée à une stratégie long-short de franchissement des points hauts et bas

Aperçu

La stratégie est un système de trading à haute fréquence combinant un indicateur de la ceinture de Brin et une rupture de prix. La stratégie consiste à surveiller la relation entre la position du prix et la ceinture de Brin, en combinant les signaux de rupture des hauts et des bas de la période précédente, pour effectuer des transactions inversées en cas de survente du marché.

Principe de stratégie

La logique centrale de la stratégie est basée sur deux conditions de jugement principales: un signal de multiplication est déclenché lorsque le prix dépasse le sommet précédent et que le sommet précédent est situé en dessous de la courbe de Brin; un signal de vide est déclenché lorsque le prix dépasse le bas du sommet précédent et que le bas du sommet précédent est situé au-dessus de la courbe de Brin. Les paramètres de la courbe de Brin utilisent une moyenne mobile à 20 cycles avec un écart de 2 fois la norme pour déterminer la portée des fluctuations du marché et le système de zone de survente des zones de survente. Après le déclenchement du signal de transaction, les points d’arrêt et de cible correspondants sont automatiquement définis et affichés visuellement à travers des lignes de différents styles.

Avantages stratégiques

  1. La combinaison de deux stratégies de négociation de rupture de tendance et de retour à la valeur moyenne permet de maintenir la stabilité dans différents environnements de marché
  2. La gestion des positions avec un rapport risque/bénéfice fixe favorise la stabilité des bénéfices à long terme
  3. Amélioration de l’opérabilité de la stratégie en affichant visuellement les entrées, les arrêts et les buts
  4. L’utilisation de l’indicateur de la ceinture de Brin aide à identifier les conditions de survente du marché et améliore la précision des transactions.
  5. La logique de la stratégie est simple et claire, facile à comprendre et à mettre en œuvre

Risque stratégique

  1. Les transactions à haute fréquence peuvent avoir des coûts de transaction plus élevés et doivent prendre en compte l’impact des frais de traitement.
  2. Faux signaux de rupture peuvent être fréquents dans les marchés à basse volatilité
  3. Le rapport risque/bénéfice fixe peut ne pas être en mesure de saisir les grandes tendances
  4. La fixation des paramètres de la bande de Bryn ne peut pas s’appliquer à tous les environnements de marché
  5. La surveillance en temps réel des marchés est nécessaire pour assurer la mise en œuvre en temps réel des signaux.

Orientation de l’optimisation de la stratégie

  1. L’introduction d’indicateurs de quantité de trafic comme signal de confirmation pour améliorer la fiabilité de la percée
  2. Paramètres de la bande de Brin ajustés en fonction de la dynamique des fluctuations du marché
  3. Augmentation des filtres de tendance pour éviter les échanges fréquents sur le marché horizontal
  4. Pensez à ajouter des filtres temporels pour éviter de négocier pendant les périodes d’inactivité
  5. Développer des mécanismes adaptatifs de résultat/risque

Résumer

Il s’agit d’un système de négociation complet intégrant plusieurs concepts d’analyse technique. La stratégie est capable de capturer des opportunités de retournement dans les zones de survente et de survente du marché grâce à la combinaison d’indicateurs de la ceinture de Brin et de ruptures de prix. Bien qu’il existe un certain espace d’optimisation, le cadre de base du système présente une bonne extensibilité et une valeur pratique.

Code source de la stratégie
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-03 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Band Scalping", overlay=true)

// Input for Bollinger Bands length and standard deviation
bbLength = input(20, title="Bollinger Bands Length")
stdDev = input(2.0, title="Bollinger Bands Std Dev")

// Calculate and plot the Bollinger Bands
basis = ta.sma(close, bbLength)
deviation = stdDev * ta.stdev(close, bbLength)
upperBB = basis + deviation
lowerBB = basis - deviation

// Get previous candle's values
prevHigh = high[1]   // Previous candle high
prevLow = low[1]     // Previous candle low

// Buy Signal Condition: Current high crossed above previous high and previous high is below the lower Bollinger Band
buyCondition = ta.crossover(high, prevHigh) and (prevHigh < lowerBB[1])

// Sell Signal Condition: Current low crossed below previous low and previous low is above the upper Bollinger Band
sellCondition = ta.crossunder(low, prevLow) and (prevLow > upperBB[1])

// Entry and exit for Buy signals
if (buyCondition)
    strategy.entry("Buy", strategy.long)
    // Calculate target and stop loss
    stopLossPrice = prevLow
    targetPrice = prevHigh + (prevHigh - stopLossPrice)  // 1:1 RR target

    // Set stop loss and target orders
    strategy.exit("Sell", "Buy", limit=targetPrice, stop=stopLossPrice)

    // // Plot entry line
    // line.new(x1=bar_index, y1=prevHigh, x2=bar_index + 12, y2=prevHigh, color=color.green, width=2, style=line.style_solid)
    // // Plot stop loss line
    // line.new(x1=bar_index, y1=stopLossPrice, x2=bar_index + 12, y2=stopLossPrice, color=color.red, width=1, style=line.style_dashed)
    // // Plot target line
    // line.new(x1=bar_index, y1=targetPrice, x2=bar_index + 12, y2=targetPrice, color=color.blue, width=2, style=line.style_solid)

// Entry and exit for Sell signals
if (sellCondition)
    strategy.entry("Sell", strategy.short)
    // Calculate target and stop loss
    stopLossPriceSell = prevHigh
    targetPriceSell = prevLow - (stopLossPriceSell - prevLow)  // 1:1 RR target

    // Set stop loss and target orders
    strategy.exit("Cover", "Sell", limit=targetPriceSell, stop=stopLossPriceSell)

    // // Plot entry line
    // line.new(x1=bar_index, y1=prevLow, x2=bar_index + 12, y2=prevLow, color=color.red, width=2, style=line.style_solid)
    // // Plot stop loss line
    // line.new(x1=bar_index, y1=stopLossPriceSell, x2=bar_index + 12, y2=stopLossPriceSell, color=color.green, width=1, style=line.style_dashed)
    // // Plot target line
    // line.new(x1=bar_index, y1=targetPriceSell, x2=bar_index + 12, y2=targetPriceSell, color=color.blue, width=2, style=line.style_solid)

// Plotting Bollinger Bands with 70% transparency
plot(upperBB, color=color.red, title="Upper Bollinger Band", transp=70)
plot(lowerBB, color=color.green, title="Lower Bollinger Band", transp=70)
plot(basis, color=color.blue, title="Middle Band", transp=70)