Stratégie de trading dynamique avec seuil de choc RSI adaptatif

RSI ATR BAT LR SD
Date de création: 2024-11-12 16:07:32 Dernière modification: 2024-11-12 16:07:32
Copier: 2 Nombre de clics: 498
1
Suivre
1617
Abonnés

Stratégie de trading dynamique avec seuil de choc RSI adaptatif

Aperçu

La stratégie est un système de trading auto-adaptatif basé sur le RSI (indicateur de la relative faiblesse) qui optimise la génération de signaux de trading en ajustant dynamiquement les seuils de surachat et de survente. L’innovation centrale de la stratégie réside dans l’introduction de la méthode Bufi d’adaptation aux seuils (BAT), qui ajuste les seuils de déclenchement du RSI en fonction des tendances du marché et de la dynamique de la volatilité des prix, améliorant ainsi l’efficacité de la stratégie traditionnelle du RSI.

Principe de stratégie

Le cœur de la stratégie est de mettre à niveau le système RSI traditionnel à un système de dépréciation dynamique. Les modalités de mise en œuvre sont les suivantes:

  1. Utilisez le RSI à court terme pour calculer les conditions de survente du marché
  2. Calcul de l’inclinaison de la tendance des prix par régression linéaire
  3. Le décalage standard est utilisé pour mesurer la volatilité des prix.
  4. Intégrer les informations sur les tendances et les fluctuations pour ajuster dynamiquement les valeurs inférieures du RSI
  5. Augmentation de la dépréciation dans une tendance à la hausse, réduction de la dépréciation dans une tendance à la baisse
  6. Diminution de la sensibilité à la marge lorsque les prix sont plus éloignés de la moyenne

La stratégie comprend également deux mécanismes de contrôle des risques:

  • Mécanisme de plafonnement à période fixe
  • Système de couverture des pertes maximales

Avantages stratégiques

  1. La plupart des gens ne sont pas d’accord avec cette idée.
  • La capacité d’ajuster automatiquement les seuils de négociation en fonction de l’état du marché
  • Les inconvénients d’utiliser des paramètres fixes dans différents environnements de marché
  1. Le risque est bien maîtrisé:
  • Il y a une limite à la durée maximale de détention.
  • Incluant une protection contre les pertes de fonds
  • Gestion des positions en pourcentage
  1. La qualité du signal est améliorée:
  • Faux signaux pour réduire les chocs du marché
  • Améliorer la capacité de capture des marchés tendances
  • La sensibilité et la stabilité sont équilibrées

Risque stratégique

  1. Sensitivité des paramètres:
  • Le choix du coefficient BAT influence la performance de la stratégie
  • Les réglages de la période RSI doivent être bien testés
  • Adaptation des paramètres de longueur à optimiser
  1. Le contexte du marché dépend:
  • Une opportunité peut être manquée dans un marché très volatil
  • Les stop-loss peuvent être plus importants en cas de fortes fluctuations
  • Paramètres à adapter aux différents marchés
  1. Limites techniques:
  • Threshold calculé en fonction des données historiques
  • Peut-être un retard
  • Les coûts de transaction doivent être pris en compte

Orientation de l’optimisation de la stratégie

  1. Optimisation des paramètres:
  • Mise en place d’un mécanisme de sélection des paramètres adaptatifs
  • Paramètres d’ajustement en fonction de la dynamique des cycles de marché
  • Ajout d’une fonction d’optimisation automatique des paramètres
  1. Optimisation du signal :
  • Vérification combinée avec d’autres indicateurs techniques
  • Ajout d’une fonctionnalité de reconnaissance des cycles de marché
  • Optimiser le timing des admissions
  1. Optimisation du contrôle des risques :
  • Mise en place d’un mécanisme d’arrêt dynamique
  • Optimisation des stratégies de gestion des positions
  • Ajouter un mécanisme de contrôle de retracement

Résumer

Il s’agit d’une stratégie de trading innovante et auto-adaptative, qui résout les limites de la stratégie traditionnelle RSI grâce à l’optimisation de la dépréciation dynamique. La stratégie prend en compte les tendances et la volatilité du marché et possède une forte capacité d’adaptation et de contrôle des risques. Bien qu’il existe des défis tels que l’optimisation des paramètres, la stratégie est susceptible d’obtenir une performance stable dans les transactions réelles grâce à une amélioration et une optimisation continues.

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"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PineCodersTASC

//  TASC Issue: October 2024
//     Article: Overbought/Oversold
//              Oscillators: Useless Or Just Misused
//  Article By: Francesco P. Bufi
//    Language: TradingView's Pine Script™ v5
// Provided By: PineCoders, for tradingview.com

//@version=5
title  ='TASC 2024.10 Adaptive Oscillator Threshold'
stitle = 'AdapThrs'
strategy(title, stitle, false, default_qty_type = strategy.percent_of_equity,
         default_qty_value = 10, slippage = 5)

// --- Inputs ---
string sys    = input.string("BAT", "System", options=["Traditional", "BAT"])
int rsiLen    = input.int(2, "RSI Length", 1)
int buyLevel  = input.int(14, "Buy Level", 0)
int adapLen   = input.int(8, "Adaptive Length", 2) 
float adapK   = input.float(6, "Adaptive Coefficient")
int exitBars  = input.int(28, "Fixed-Bar Exit", 1, group = "Strategy Settings")
float DSL     = input.float(1600, "Dollar Stop-Loss", 0, group = "Strategy Settings")

// --- Functions --- 
//  Bufi's Adaptive Threshold
BAT(float price, int length) =>
    float sd = ta.stdev(price, length)
    float lr = ta.linreg(price, length, 0)
    float slope = (lr - price[length]) / (length + 1)
    math.min(0.5, math.max(-0.5, slope / sd))

// --- Calculations ---
float osc = ta.rsi(close, rsiLen)

// Strategy entry rules
// - Traditional system
if sys == "Traditional" and osc < buyLevel
    strategy.entry("long", strategy.long)
// - BAT system 
float thrs = buyLevel * adapK * BAT(close, adapLen)
if sys == "BAT" and osc < thrs
    strategy.entry("long", strategy.long)

// Strategy exit rules
// - Fixed-bar exit
int nBar = bar_index - strategy.opentrades.entry_bar_index(0)
if exitBars > 0 and nBar >= exitBars
    strategy.close("long", "exit")
// - Dollar stop-loss
if DSL > 0 and strategy.opentrades.profit(0) <= - DSL
    strategy.close("long", "Stop-loss", immediately = true)

// Visuals
rsiColor  = #1b9e77
thrsColor = #d95f02
rsiLine   = plot(osc, "RSI", rsiColor, 1)
thrsLine  = plot(sys == "BAT" ? thrs : buyLevel, "Threshold", thrsColor, 1)
zeroLine  = plot(0.0, "Zero", display = display.none)
fill(zeroLine, thrsLine, sys == "BAT" ? thrs : buyLevel, 0.0, color.new(thrsColor, 60), na)