Tendance du volume des bandes de Bollinger suivant une stratégie quantitative

BB RSI EMA SMA SD SL
Date de création: 2024-11-12 15:53:44 Dernière modification: 2024-11-12 15:53:44
Copier: 1 Nombre de clics: 459
1
Suivre
1617
Abonnés

Tendance du volume des bandes de Bollinger suivant une stratégie quantitative

Aperçu

La stratégie est un système de trading intégré basé sur les bandes de Brin, l’indicateur RSI et les moyennes mobiles. La stratégie identifie les opportunités de trading potentielles en filtrant les bandes de Brin, les niveaux de surachat et de survente du RSI et les tendances EMA. Le système prend en charge les transactions en plus et en déficit et offre plusieurs mécanismes de sortie pour protéger les fonds.

Principe de stratégie

La stratégie repose sur les éléments fondamentaux suivants :

  1. Brines avec un écart de 1,8 fois la norme pour déterminer la zone de fluctuation des prix
  2. L’indicateur RSI à 7 cycles est utilisé pour juger de l’excédent de vente
  3. EMA à 500 cycles en option comme filtre de tendance
  4. Conditions d’entrée :
    • Le RSI est en dessous de 25 et le cours a dépassé la barre de Brin
    • Le RSI est supérieur à 75 et le cours dépasse la courbe de Bollinger
  5. La méthode de sortie est de soutenir la baisse du RSI ou une rupture de la courbe de Brin
  6. Pourcentage de protection contre les dommages

Avantages stratégiques

  1. La synergie de multiples indicateurs techniques améliore la fiabilité du signal
  2. Les paramètres flexibles permettent de s’adapter aux différentes conditions du marché
  3. Soutenir les échanges bilatéraux et saisir les opportunités du marché
  4. Offre de multiples mécanismes de retrait adaptés à différents styles de négociation
  5. Le filtrage des tendances réduit efficacement les faux signaux
  6. Les mécanismes de freinage des pertes offrent un bon contrôle des risques

Risque stratégique

  1. Des faux signaux peuvent fréquemment se produire sur des marchés volatils
  2. Plusieurs indicateurs peuvent entraîner un décalage du signal
  3. Le seuil RSI fixe peut ne pas être suffisamment flexible dans différents environnements de marché
  4. Les paramètres de la bande de Bryn doivent être ajustés en fonction des fluctuations du marché
  5. Les paramètres de stop-loss peuvent être facilement déclenchés en cas de fortes fluctuations

Orientation de l’optimisation de la stratégie

  1. Introduction d’un multiplicateur de bande de Bryn adapté, qui s’adapte dynamiquement aux fluctuations du marché
  2. Ajouter un indicateur de volume comme confirmation auxiliaire
  3. Pensez à ajouter un filtrage temporel pour éviter les transactions à des périodes spécifiques
  4. Développement d’un système dynamique de dépréciation du RSI
  5. L’intégration de plus d’indicateurs de confirmation de tendance
  6. Optimiser le mécanisme de stop loss et envisager d’utiliser le stop loss dynamique

Résumer

Il s’agit d’une stratégie de trading quantitative bien conçue pour saisir les opportunités du marché grâce à la combinaison de multiples indicateurs techniques. La stratégie est hautement configurable et peut s’adapter à différentes exigences de trading. Bien que certains risques inhérents existent, la stabilité et la fiabilité peuvent être encore améliorées en optimisant les paramètres et en ajoutant des indicateurs auxiliaires.

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

//@version=5
strategy("Bollinger Bands Scalp Pro", overlay=true)

// Inputs for the strategy
length = input(20, title="Bollinger Band Length")
src = input(close, title="Source")
mult = input(1.8, title="Bollinger Band Multiplier")
rsiLength = input(7, title="RSI Length")
rsiOverbought = input(75, title="RSI Overbought Level")
rsiOversold = input(25, title="RSI Oversold Level")

// Custom RSI exit points
rsiExitLong = input(75, title="RSI Exit for Long (Overbought)")
rsiExitShort = input(25, title="RSI Exit for Short (Oversold)")

// Moving Average Inputs
emaLength = input(500, title="EMA Length")
enableEMAFilter = input.bool(true, title="Enable EMA Filter")

// Exit method: Choose between 'RSI' and 'Bollinger Bands'
exitMethod = input.string("RSI", title="Exit Method", options=["RSI", "Bollinger Bands"])

// Enable/Disable Long and Short trades
enableLong = input.bool(true, title="Enable Long Trades")
enableShort = input.bool(false, title="Enable Short Trades")

// Enable/Disable Stop Loss
enableStopLoss = input.bool(false, title="Enable Stop Loss")
stopLossPercent = input.float(1.0, title="Stop Loss Percentage (%)", minval=0.1) / 100

// Bollinger Bands calculation
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upperBB = basis + dev
lowerBB = basis - dev

// RSI calculation
rsi = ta.rsi(src, rsiLength)

// 200 EMA to filter trades (calculated but only used if enabled)
ema200 = ta.ema(src, emaLength)

// Long condition: RSI below oversold, price closes below the lower Bollinger Band, and optionally price is above the 200 EMA
longCondition = enableLong and (rsi < rsiOversold) and (close < lowerBB) and (not enableEMAFilter or close > ema200)
if (longCondition)
    strategy.entry("Long", strategy.long)

// Short condition: RSI above overbought, price closes above the upper Bollinger Band, and optionally price is below the 200 EMA
shortCondition = enableShort and (rsi > rsiOverbought) and (close > upperBB) and (not enableEMAFilter or close < ema200)
if (shortCondition)
    strategy.entry("Short", strategy.short)

// Stop Loss setup
if (enableStopLoss)
    strategy.exit("Long Exit", "Long", stop = strategy.position_avg_price * (1 - stopLossPercent))
    strategy.exit("Short Exit", "Short", stop = strategy.position_avg_price * (1 + stopLossPercent))

// Exit conditions based on the user's choice of exit method
if (exitMethod == "RSI")
    // Exit based on RSI
    exitLongCondition = rsi >= rsiExitLong
    if (exitLongCondition)
        strategy.close("Long")
    
    exitShortCondition = rsi <= rsiExitShort
    if (exitShortCondition)
        strategy.close("Short")
else if (exitMethod == "Bollinger Bands")
    // Exit based on Bollinger Bands
    exitLongConditionBB = close >= upperBB
    if (exitLongConditionBB)
        strategy.close("Long")
    
    exitShortConditionBB = close <= lowerBB
    if (exitShortConditionBB)
        strategy.close("Short")