Stratégie de trading quantitative avancée combinant les bandes de Bollinger dynamiques avec l'indicateur PSAR

BB PSAR SMA TP SL
Date de création: 2025-02-18 14:11:00 Dernière modification: 2025-02-18 14:11:00
Copier: 0 Nombre de clics: 355
1
Suivre
1617
Abonnés

Stratégie de trading quantitative avancée combinant les bandes de Bollinger dynamiques avec l’indicateur PSAR

Aperçu

Il s’agit d’une stratégie de négociation intégrée combinant les bandes de Brin et les paramètres de conversion des lignes de parachute (PSAR) pour la gestion des transactions à l’aide d’un rapport de risque/bénéfice fixe. La stratégie fonctionne principalement pendant les heures de négociation de la journée, pour identifier les opportunités de négociation par la rupture des bandes de Brin et des motifs graphiques, tout en confirmant les tendances à l’aide de l’indicateur PSAR. La stratégie utilise un paramètre de stop-loss dynamique et un objectif de profit pour maintenir un rapport de risque/bénéfice de 1: 3.

Principe de stratégie

La stratégie utilise plusieurs indicateurs techniques pour la confirmation des signaux de transaction:

  1. Utilisation de la bande de Brin à 20 cycles comme indicateur principal de la gamme de fluctuation des prix
  2. Par l’indicateur PSAR ((début 0.02, maximum 0.2) comme outil de confirmation de tendance
  3. Calculer le rapport entre les entités du câble ((longueur de l’entité / longueur totale ≥ 0,33) pour assurer la fiabilité du signal
  4. Exécuter des transactions dans la fenêtre de temps de transaction spécifiée (de 7h30 à 16h00 GMT-5)
  5. Conditions d’entrée multiples: prix de clôture atteint le sommet et le ratio de titres de titres est satisfaisant
  6. Conditions d’entrée à vide: le cours de clôture est en baisse et la proportion de titres de titres est satisfaisante

Avantages stratégiques

  1. Une combinaison de multiples indicateurs techniques pour améliorer la fiabilité du signal
  2. L’adoption d’un ratio de risque/bénéfice fixe de 1: 3 est favorable à la stabilité des bénéfices à long terme.
  3. Filtrez par le temps pour éviter les perturbations pendant les périodes de faible liquidité
  4. Filtrage proportionnel par entités de silicium pour réduire les fausses percées
  5. Définir des objectifs de stop-loss et de profit dynamiques pour s’adapter aux fluctuations du marché
  6. La logique de la stratégie est claire, facile à comprendre et à optimiser

Risque stratégique

  1. Un risque de glissement dans un marché très volatil
  2. Le risque-bénéfice fixe est supérieur à la possibilité de manquer une partie des opportunités de profit.
  3. Le filtrage du temps pourrait nous faire manquer des opportunités de marché importantes
  4. Plusieurs indicateurs peuvent entraîner un décalage du signal
  5. Une perte continue dans un marché en crise

Orientation de l’optimisation de la stratégie

  1. L’introduction d’un cycle adaptatif de la ceinture de Brin pour s’adapter à différents environnements de marché
  2. Résultats de l’analyse des risques et des avantages du développement dynamique
  3. Ajouter un indicateur de volume comme confirmation auxiliaire
  4. Optimiser les paramètres du PSAR pour améliorer le suivi des tendances
  5. Joignez-vous au filtre de volatilité du marché
  6. Des mécanismes de filtrage du temps plus intelligents

Résumer

La stratégie est construite sur un système de trading complet par l’application intégrée des bandes de Brin, des indicateurs PSAR et de l’analyse de la trame. Les principaux avantages de la stratégie résident dans la synergie de plusieurs indicateurs techniques et la gestion rigoureuse des risques. Bien que certains risques inhérents existent, la stabilité et la rentabilité de la stratégie peuvent être encore améliorées par l’orientation optimisée proposée.

Code source de la stratégie
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-17 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Estrategia Bollinger con PSAR y TP Máximo/ Mínimo", overlay=true)

// Parámetros de las Bandas de Bollinger
bb_length = input.int(20, title="Periodo de Bandas de Bollinger", minval=1)
bb_stddev = input.float(2.0, title="Desviación Estándar", step=0.1)

// Parámetros del Parabolic SAR
psar_start = input.float(0.02, title="PSAR Factor Inicial", step=0.01)
psar_increment = input.float(0.02, title="PSAR Incremento", step=0.01)
psar_max = input.float(0.2, title="PSAR Máximo", step=0.01)

// Cálculo de Bandas de Bollinger
basis = ta.sma(close, bb_length)
upper_band = basis + bb_stddev * ta.stdev(close, bb_length)
lower_band = basis - bb_stddev * ta.stdev(close, bb_length)

// Cálculo del Parabolic SAR
psar = ta.sar(psar_start, psar_increment, psar_max)

// Cálculo del cuerpo de la vela
body_high = math.max(open, close)
body_low = math.min(open, close)
body_length = body_high - body_low
total_length = high - low
body_ratio = body_length / total_length

// Condiciones de Entrada
long_condition = close > upper_band and body_ratio >= 0.33
short_condition = close < lower_band and body_ratio >= 0.33

// Filtro de tiempo: Operar solo de 7:30 AM a 4:00 PM hora colombiana
start_time = timestamp("GMT-5", year, month, dayofmonth, 7, 30)
end_time = timestamp("GMT-5", year, month, dayofmonth, 16, 0)
time_condition = (time >= start_time) and (time <= end_time)

// Variables para mantener el TP máximo y mínimo
var float max_tp = na
var float min_tp = na
var float dynamic_stop = na

// Condiciones de Entrada y Salida
if (long_condition and time_condition)
    entry_price = close  // Precio de entrada
    stop_loss = low  // SL en el mínimo de la vela
    take_profit = entry_price + 3 * (entry_price - stop_loss)  // TP con relación 1:3
    strategy.entry("Compra", strategy.long)
    strategy.exit("Exit Compra", "Compra", stop=stop_loss, limit=take_profit)

    // Dibujar las etiquetas para SL y TP para la operación larga
    label.new(bar_index, stop_loss, text="SL: " + str.tostring(stop_loss), style=label.style_label_up, color=color.red, textcolor=color.white, size=size.small)
    label.new(bar_index, take_profit, text="TP: " + str.tostring(take_profit), style=label.style_label_down, color=color.green, textcolor=color.white, size=size.small)

if (short_condition and time_condition)
    entry_price = close  // Precio de entrada
    stop_loss = high  // SL en el máximo de la vela
    take_profit = entry_price - 3 * (stop_loss - entry_price)  // TP con relación 1:3
    strategy.entry("Venta", strategy.short)
    strategy.exit("Exit Venta", "Venta", stop=stop_loss, limit=take_profit)

    // Dibujar las etiquetas para SL y TP para la operación corta
    label.new(bar_index, stop_loss, text="SL: " + str.tostring(stop_loss), style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
    label.new(bar_index, take_profit, text="TP: " + str.tostring(take_profit), style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)

// Dibujar Bandas de Bollinger
plot(upper_band, color=color.red, title="Banda Superior")
plot(lower_band, color=color.green, title="Banda Inferior")
plot(basis, color=color.blue, title="Media Base")

// Dibujar Parabolic SAR
plot(psar, style=plot.style_circles, color=color.orange, title="Parabolic SAR")