Stratégie de négociation de réversion moyenne de la bande de Bollinger

Auteur:ChaoZhang est là., Date: 2023-12-27 17:18:26 Les résultats ont été publiés dans le journal officiel de l'ONU.
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de négociation de réversion moyenne basée sur les bandes de Bollinger, qui combine le trading de réversion moyenne et des mécanismes de gestion des risques pour saisir les opportunités de renversement à court terme sur les marchés en tendance.

La logique de la stratégie

La stratégie utilise des bandes de Bollinger de 20 jours pour identifier les zones de prix sur-étendues.

Il définit également un stop loss et un take profit basé sur l'ATR. Le stop loss est fixé au prix en brisant la moyenne mobile moins 2 fois l'ATR. Le take profit est fixé au prix plus 3 fois l'ATR. Cela contrôle efficacement le risque par transaction.

Plus précisément, la stratégie comprend:

  1. Calculer les bandes de Bollinger à 20 jours en bande supérieure, en bande inférieure et en moyenne mobile
  2. Calcul du RTA à 14 jours
  3. Long lorsque le prix dépasse la fourchette inférieure; Short lorsque le prix dépasse la fourchette supérieure
  4. Mettre un stop loss au prix moins 2 fois ATR et prendre un profit au prix plus 3 fois ATR lorsque long
  5. Mettre en place un stop loss au prix plus 2 fois ATR et prendre un profit au prix moins 3 fois ATR lorsque court

Analyse des avantages

Les principaux avantages sont les suivants:

  1. Les bandes de Bollinger permettent d'identifier efficacement les zones de prix dépassées
  2. Profit des réversions par réversion moyenne
  3. ATR arrête de régler les contrôles des risques
  4. Résultats positifs des backtests avec plusieurs transactions rentables

Analyse des risques

Les risques potentiels sont les suivants:

  1. Risque d'échec de l'inversion si la tendance du prix se maintient
  2. Le risque d'arrêt-perte des écarts de prix est évité
  3. Optimisation des paramètres requise pour les marchés changeants

Les solutions:

  1. Suivre strictement les règles de stop loss pour limiter les pertes par transaction
  2. Optimiser les paramètres en fonction des marchés actuels
  3. Utiliser des options ou d'autres outils pour couvrir le risque de déficit

Directions d'optimisation

La stratégie peut être encore optimisée par:

  1. Test de différentes moyennes mobiles pour obtenir les meilleurs paramètres
  2. Ajout de filtres pour améliorer la détermination des tendances
  3. Ajustement des multiples ATR pour les arrêts et limites de réglage fin
  4. Intégration de mécanismes de sortie dynamiques basés sur des régimes de marché

Cela améliorera davantage la stabilité et le profil de rendement.

Résumé

En résumé, la stratégie de réversion moyenne de la bande de Bollinger avec des filtres de tendance et la gestion des risques a démontré des résultats positifs.


/*backtest
start: 2022-12-20 00:00:00
end: 2023-08-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Mean Reversion with Risk Management", overlay=true)

// Inputs for Bollinger Bands and Risk Management
length = input(20, minval=1, title="Bollinger Bands Length")
mult = input(2.0, title="Bollinger Bands Multiplier")
stopLossATRMult = input(2.0, title="Stop Loss ATR Multiplier")
takeProfitATRMult = input(3.0, title="Take Profit ATR Multiplier")

// Bollinger Bands Calculation
src = close
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
plot(upper, "Upper Band", color=color.red)
plot(lower, "Lower Band", color=color.green)

// ATR for Stop Loss and Take Profit
atr = atr(14)

// Trading Conditions
longCondition = crossover(src, lower)
shortCondition = crossunder(src, upper)

// Order Execution with Stop Loss and Take Profit
if (longCondition)
    sl = src - stopLossATRMult * atr
    tp = src + takeProfitATRMult * atr
    strategy.entry("Long", strategy.long, stop=sl, limit=tp)

if (shortCondition)
    sl = src + stopLossATRMult * atr
    tp = src - takeProfitATRMult * atr
    strategy.entry("Short", strategy.short, stop=sl, limit=tp)


Plus de