Stratégie de régression bidirectionnelle croisée entre les bandes RSI et Bollinger

RSI BB SMA OCA
Date de création: 2024-11-29 16:42:35 Dernière modification: 2024-11-29 16:42:35
Copier: 3 Nombre de clics: 463
1
Suivre
1617
Abonnés

Stratégie de régression bidirectionnelle croisée entre les bandes RSI et Bollinger

Aperçu

La stratégie est un système de trading basé sur une analyse technique double basée sur des indicateurs relativement faibles (RSI) et des bandes de Bollinger (Bollinger Bands). La stratégie construit un cadre de décision de trading complet en combinant le signal de survente et de survente du RSI avec le signal de rupture du canal de prix de la bande de Bollinger. La stratégie est particulièrement adaptée pour fonctionner dans des environnements de marché plus volatiles et pour réaliser des transactions à risque contrôlable grâce à des conditions d’entrée et de sortie strictes.

Principe de stratégie

La logique centrale de la stratégie repose sur la synergie de deux indicateurs techniques majeurs:

  1. L’indicateur RSI utilise 6 cycles comme cycles de calcul et définit 50 comme un seuil critique pour les surachats et les surventes, afin de capturer les conditions de surachat et de survente des prix.
  2. La ceinture de Brin utilise une moyenne mobile à 200 cycles comme orbite centrale, avec un multiple de différence standard de 2,0 pour former une orbite ascendante et descendante.
  3. Il y a plusieurs conditions: le RSI est déclenché lorsque le cours dépasse le niveau de survente (<50) et que le cours dépasse le niveau de sous-vente (<50).
  4. Condition de dépréciation: déclenchée lorsque le RSI tombe en dessous du niveau de survente (<50) et que le prix tombe en dessous de la bande de Brin.
  5. La stratégie utilise le mécanisme de gestion des commandes OCA (One-Cancels-All) pour s’assurer qu’il n’y a qu’une seule transaction valide à tout moment.

Avantages stratégiques

  1. Mécanisme de double confirmation: réduction des faux signaux par la confirmation commune du RSI et de la bande de Brindé.
  2. Le contrôle des risques est perfectionné: l’utilisation de la bande de Brin comme position d’arrêt des pertes fournit une norme de contrôle des risques claire.
  3. Adaptabilité: les bandes de bourse peuvent s’adapter automatiquement aux fluctuations du marché.
  4. Optimisation de la gestion des commandes: le mécanisme d’OCA permet d’éviter la répétition des transactions et d’améliorer l’efficacité de l’utilisation des fonds.
  5. Les paramètres sont flexibles: les paramètres clés peuvent être ajustés de manière optimale en fonction des différentes caractéristiques du marché.

Risque stratégique

  1. Risque de marché volatil : de faux signaux de cassure peuvent survenir fréquemment dans un marché latéral et volatil.
  2. Risque de retard: la stratégie présente un certain retard en raison de l’utilisation d’une moyenne mobile.
  3. Sensitivité des paramètres: les paramètres RSI et les bandes de Brent ont une influence importante sur la performance de la stratégie.
  4. Dépendance des conditions du marché: la stratégie est plus efficace dans les marchés en tendance, mais peut être moins efficace dans les marchés en turbulence.

Orientation de l’optimisation de la stratégie

  1. Ajustement des paramètres dynamiques: le seuil de sur-achat et de sur-vente du RSI peut être ajusté dynamiquement en fonction de la volatilité du marché.
  2. Ajout de filtres de marché: ajout d’indicateurs de jugement de tendance, utilisant différents paramètres de négociation dans différents environnements de marché.
  3. Optimisation de l’arrêt de freinage: un arrêt de freinage dynamique basé sur l’ATR peut être ajouté.
  4. Optimisation de la gestion des positions: ajustement de la taille des positions en fonction de l’intensité des signaux et de la dynamique de la volatilité du marché.
  5. Filtrage temporel: augmentation de la limite de la fenêtre de temps de négociation pour éviter de négocier à des périodes inappropriées.

Résumer

La stratégie a pour principal avantage de disposer d’un mécanisme de double confirmation et d’une bonne maîtrise des risques, mais il faut également tenir compte de l’impact de l’environnement du marché sur la performance de la stratégie. Les orientations d’optimisation proposées peuvent améliorer encore la stabilité et la rentabilité de la stratégie.

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

//@version=5
strategy("RSI与布林带双重策略 (by ChartArt) v2.2", shorttitle="CA_RSI_布林带策略_2.2", overlay=true)

// ChartArt的RSI + 布林带双重策略 - 精简版
//
// 中文版本 3, BY Henry
// 原创意来自ChartArt,2015年1月18日
// 更新至Pine Script v5版本,删除了背景色、K线颜色和策略收益绘制功能
//
// 策略说明:
// 该策略结合使用RSI指标和布林带。
// 当价格高于上轨且RSI超买时卖出,
// 当价格低于下轨且RSI超卖时买入。
//
// 本策略仅在RSI和布林带同时
// 处于超买或超卖状态时触发。

// === 输入参数 ===

// RSI参数
RSIlength = input.int(6, title="RSI周期长度", minval=1) 
RSIoverSold = input.int(50, title="RSI超卖阈值", minval=0, maxval=100)
RSIoverBought = input.int(50, title="RSI超买阈值", minval=0, maxval=100)

// 布林带参数
BBlength = input.int(200, title="布林带周期长度", minval=1)
BBmult = input.float(2.0, title="布林带标准差倍数", minval=0.001, maxval=50)

// === 计算 ===

price = close
vrsi = ta.rsi(price, RSIlength)

// 布林带计算
BBbasis = ta.sma(price, BBlength)
BBdev = BBmult * ta.stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev

// === 绘图 ===

plot(BBbasis, color=color.new(color.aqua, 0), title="布林带中线(SMA)")
p1 = plot(BBupper, color=color.new(color.silver, 0), title="布林带上轨")
p2 = plot(BBlower, color=color.new(color.silver, 0), title="布林带下轨")
fill(p1, p2, color=color.new(color.silver, 90))

// === 策略逻辑 ===

if (not na(vrsi))
    longCondition = ta.crossover(vrsi, RSIoverSold) and ta.crossover(price, BBlower)
    if (longCondition)
        strategy.entry("RSI_BB_做多", strategy.long, stop=BBlower, oca_name="RSI_BB",  comment="RSI_BB_做多")
    else
        strategy.cancel("RSI_BB_做多")
        
    shortCondition = ta.crossunder(vrsi, RSIoverBought) and ta.crossunder(price, BBupper)
    if (shortCondition)
        strategy.entry("RSI_BB_做空", strategy.short, stop=BBupper, oca_name="RSI_BB", comment="RSI_BB_做空")
    else
        strategy.cancel("RSI_BB_做空")