Stratégie de retour à la moyenne avec bande de Bollinger

BB DCA EMA SMA
Date de création: 2024-12-12 17:17:15 Dernière modification: 2024-12-12 17:17:15
Copier: 2 Nombre de clics: 447
1
Suivre
1617
Abonnés

Stratégie de retour à la moyenne avec bande de Bollinger

Aperçu

Cette stratégie est une stratégie d’investissement intelligente qui combine la loi du coût moyen en dollars (DCA) et les indicateurs techniques de la ceinture de Brin. Elle consiste à investir en utilisant le principe de la régression des valeurs moyennes en construisant systématiquement des positions pendant les retournements de prix.

Principe de stratégie

La stratégie est basée sur trois principes: 1) la méthode du coût moyen en dollars, qui réduit le risque d’optionalisation en investissant régulièrement des montants fixes; 2) la théorie du retour à la moyenne, qui considère que le prix reviendra à sa moyenne historique; 3) l’indicateur de la ceinture de Brin, qui est utilisé pour identifier les zones de survente. Lorsque le prix franchit la ceinture de Brin, le signal d’achat est déclenché.

Avantages stratégiques

  1. Réduire le risque de choix - réduire l’erreur humaine en achetant systématiquement plutôt qu’avec un jugement subjectif
  2. Capture d’opportunités de rebond - exécutez automatiquement des opérations d’achat lorsque le prix est en hausse
  3. Configuration de paramètres flexible - les paramètres et le montant de l’investissement peuvent être ajustés en fonction des différentes conditions du marché
  4. Des règles claires d’entrée et de sortie - des signaux objectifs basés sur des indicateurs techniques
  5. L’exécution automatisée - sans intervention humaine et évitant les transactions émotionnelles

Risque stratégique

  1. Risque d’échec de la régression de la moyenne - plus de faux signaux peuvent être générés dans un marché en tendance
  2. Risques de gestion des fonds - besoin de réserver suffisamment de fonds pour faire face à des signaux d’achat continus
  3. Risque d’optimisation des paramètres - une optimisation excessive peut entraîner l’échec de la stratégie
  4. Dépendance aux conditions du marché - risque de mauvaise performance dans des marchés très volatils Il est recommandé d’adopter un système de gestion de fonds rigoureux et d’évaluer régulièrement la performance de la stratégie pour gérer ces risques.

Orientation de l’optimisation de la stratégie

  1. Introduire des filtres de tendance pour éviter les opérations de revers dans une tendance forte
  2. Ajout d’un mécanisme de confirmation de cycle de temps multiple
  3. Optimiser le système de gestion des fonds et ajuster les montants d’investissement en fonction de la dynamique des fluctuations
  4. Adhésion à un mécanisme de clôture des bénéfices, qui est clôturé lorsque le prix revient à la valeur moyenne
  5. Considérer d’améliorer la fiabilité du signal en combinaison avec d’autres indicateurs techniques

Résumer

Il s’agit d’une stratégie robuste qui combine l’analyse technique et une approche d’investissement systématisée. La stratégie est basée sur la reconnaissance des opportunités d’excédent et de baisse, en utilisant les méthodes de Brin, et sur la méthode du coût moyen en dollars pour réduire les risques. La clé du succès de la stratégie réside dans un réglage rationnel des paramètres et une discipline stricte d’exécution.

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

//@version=5
strategy("DCA Strategy with Mean Reversion and Bollinger Band", overlay=true) // Define the strategy name and set overlay=true to display on the main chart

// Inputs for investment amount and dates
investment_amount = input.float(10000, title="Investment Amount (USD)", tooltip="Amount to be invested in each buy order (in USD)") // Amount to invest in each buy order
open_date = input(timestamp("2024-01-01 00:00:00"), title="Open All Positions On", tooltip="Date when to start opening positions for DCA strategy") // Date to start opening positions
close_date = input(timestamp("2024-08-04 00:00:00"), title="Close All Positions On", tooltip="Date when to close all open positions for DCA strategy") // Date to close all positions

// Bollinger Band parameters
source = input.source(title="Source", defval=close, group="Bollinger Band Parameter", tooltip="The price source to calculate the Bollinger Bands (e.g., closing price)") // Source of price for calculating Bollinger Bands (e.g., closing price)
length = input.int(200, minval=1, title='Period', group="Bollinger Band Parameter", tooltip="Period for the Bollinger Band calculation (e.g., 200-period moving average)") // Period for calculating the Bollinger Bands (e.g., 200-period moving average)
mult = input.float(2, minval=0.1, maxval=50, step=0.1, title='Standard Deviation', group="Bollinger Band Parameter", tooltip="Multiplier for the standard deviation to define the upper and lower bands") // Multiplier for the standard deviation to calculate the upper and lower bands

// Timeframe selection for Bollinger Bands
tf = input.timeframe(title="Bollinger Band Timeframe", defval="240", group="Bollinger Band Parameter", tooltip="The timeframe used to calculate the Bollinger Bands (e.g., 4-hour chart)") // Timeframe for calculating the Bollinger Bands (e.g., 4-hour chart)

// Calculate BB for the chosen timeframe using security
[basis, bb_dev] = request.security(syminfo.tickerid, tf, [ta.ema(source, length), mult * ta.stdev(source, length)]) // Calculate Basis (EMA) and standard deviation for the chosen timeframe
upper = basis + bb_dev // Calculate the Upper Band by adding the standard deviation to the Basis
lower = basis - bb_dev // Calculate the Lower Band by subtracting the standard deviation from the Basis

// Plot Bollinger Bands
plot(basis, color=color.red, title="Middle Band (SMA)") // Plot the middle band (Basis, EMA) in red
plot(upper, color=color.blue, title="Upper Band") // Plot the Upper Band in blue
plot(lower, color=color.blue, title="Lower Band") // Plot the Lower Band in blue
fill(plot(upper), plot(lower), color=color.blue, transp=90) // Fill the area between Upper and Lower Bands with blue color at 90% transparency

// Define buy condition based on Bollinger Band 
buy_condition = ta.crossunder(source, lower) // Define the buy condition when the price crosses under the Lower Band (Mean Reversion strategy)

// Execute buy orders on the Bollinger Band Mean Reversion condition
if (buy_condition ) // Check if the buy condition is true and time is within the open and close date range
    strategy.order("DCA Buy", strategy.long, qty=investment_amount / close) // Execute the buy order with the specified investment amount

// Close all positions on the specified date
if (time >= close_date) // Check if the current time is after the close date
    strategy.close_all() // Close all open positions

// Track the background color state
var color bgColor = na // Initialize a variable to store the background color (set to 'na' initially)

// Update background color based on conditions
if close > upper // If the close price is above the Upper Band
    bgColor := color.red // Set the background color to red
else if close < lower // If the close price is below the Lower Band
    bgColor := color.green // Set the background color to green

// Apply the background color
bgcolor(bgColor, transp=90, title="Background Color Based on Bollinger Bands") // Set the background color based on the determined condition with 90% transparency

// Postscript:
// 1. Once you have set the "Investment Amount (USD)" in the input box, proceed with additional configuration. 
// Go to "Properties" and adjust the "Initial Capital" value by calculating it as "Total Closed Trades" multiplied by "Investment Amount (USD)" 
// to ensure the backtest results are aligned correctly with the actual investment values.
//
// Example:
// Investment Amount (USD) = 100 USD
// Total Closed Trades = 10 
// Initial Capital = 10 x 100 = 1,000 USD

// Investment Amount (USD) = 200 USD
// Total Closed Trades = 24 
// Initial Capital = 24 x 200 = 4,800 USD