La stratégie de trading multi-couches de volatilité est une approche quantitative basée sur la volatilité des prix. Cette stratégie utilise plusieurs bandes de volatilité pour identifier les zones de surachat et de survente sur le marché, en initiant des transactions lorsque les prix touchent ces zones.
Calcul des moyennes mobiles: la stratégie utilise des types de moyennes mobiles sélectionnables (SMA, EMA, SMMA, WMA, VWMA) pour calculer la ligne de base.
Configuration des bandes de volatilité: des bandes de volatilité multiples sont établies sur la base de la ligne de base, en utilisant l'écart type multiplié par un facteur.
Niveaux de Fibonacci: Les niveaux de retracement de Fibonacci (23,6%, 38,2%, 50%, 61,8%) sont utilisés pour subdiviser les bandes de volatilité, créant ainsi plus d'opportunités de trading.
L'exposition au risque de défaillance de l'épargne-investissement est considérée comme un risque de défaillance de l'épargne-investissement.
Logique d'entrée: les positions sont établies lorsque le prix touche ou traverse une bande de volatilité dans la direction correspondante.
Scaling de position: si le prix continue de se déplacer de manière défavorable, la stratégie ajoute à la position à d'autres niveaux de bandes de volatilité, incarnant le concept de stratégie Martingale.
Logique de sortie: les bénéfices sont réalisés lorsque le prix revient à la ligne de base.
Entrée à plusieurs niveaux: en définissant plusieurs bandes de volatilité et niveaux de Fibonacci, la stratégie offre plus d'opportunités de négociation, capturant la volatilité du marché à différents niveaux de prix.
Une grande flexibilité: la stratégie permet aux utilisateurs de choisir différents types de moyennes mobiles, de périodes et de paramètres pour s'adapter à divers environnements de marché et instruments de négociation.
Adaptation dynamique: la fonctionnalité de multiplicateur dynamique facultative permet à la stratégie de s'ajuster automatiquement en fonction de la volatilité du marché, ce qui améliore l'adaptabilité.
Gestion des risques: en augmentant les positions lors de mouvements de prix défavorables, la stratégie tente d'abaisser le prix d'entrée moyen, augmentant ainsi la probabilité de rentabilité finale.
Concept d'inversion moyenne: La stratégie est basée sur l'idée que les prix reviendront éventuellement à la moyenne, qui fonctionne bien sur de nombreux marchés et délais.
Personnalisabilité: les utilisateurs peuvent ajuster des paramètres tels que la taille des actions et les niveaux de Fibonacci en fonction de leurs préférences en matière de risque et de leur style de trading.
Risque de perte consécutive: dans les marchés où les tendances sont fortes, les prix peuvent continuellement franchir plusieurs bandes de volatilité, ce qui entraîne des augmentations consécutives des positions et accumule des pertes importantes.
Pression de gestion des capitaux: la mise à l'échelle des positions à la Martingale peut entraîner une augmentation rapide des besoins en capital, dépassant potentiellement la capacité du compte.
Surtrading: les bandes de volatilité multiples peuvent générer des signaux de trading excessifs sur les marchés à fourchette, ce qui augmente les coûts de transaction.
Sensibilité des paramètres: la performance de la stratégie dépend fortement des paramètres; des paramètres inappropriés peuvent entraîner de mauvaises performances.
Risque de glissement et de liquidité: sur les marchés très volatils, un glissement important peut se produire, en particulier lors de la mise à l'échelle des positions.
Risque de retrait: bien que la stratégie vise à réduire les coûts moyens grâce à la mise à l'échelle de la position, elle peut encore faire face à des retraitements importants dans des conditions de marché extrêmes.
Introduire des filtres de tendance: ajouter des indicateurs de tendance à long terme pour ouvrir des positions uniquement dans la direction de la tendance, en évitant les transactions fréquentes contre tendance dans des tendances fortes.
Taille dynamique des positions: ajuster le nombre d'actions négociées en fonction de la taille du compte et de la volatilité du marché afin de mieux contrôler le risque.
Optimiser les mécanismes de sortie: envisager l'introduction d'arrêts de traînée ou d'arrêts de perte dynamiques basés sur la volatilité pour mieux bloquer les bénéfices et contrôler les risques.
Ajouter des filtres de temps: mettre en œuvre des restrictions de fenêtre de temps de négociation pour éviter les périodes de forte volatilité ou de faible liquidité.
Intégrer des indicateurs de sentiment du marché: intégrer des indicateurs de volatilité comme le VIX pour ajuster les paramètres de la stratégie ou mettre en pause les transactions pendant les périodes de forte volatilité.
Introduire l'apprentissage automatique: utiliser des algorithmes d'apprentissage automatique pour optimiser dynamiquement les paramètres, améliorant ainsi l'adaptabilité de la stratégie aux changements du marché.
Ajouter des filtres fondamentaux: intégrer des données fondamentales pour ne permettre la négociation que dans des conditions fondamentales spécifiques, améliorant ainsi la qualité des échanges.
La stratégie de trading multi-couches de volatilité est un système de trading complexe combinant l'analyse technique, la théorie des probabilités et la gestion des risques.
Pour appliquer avec succès cette stratégie, les traders ont besoin d'une compréhension approfondie des caractéristiques du marché, d'un réglage minutieux des paramètres et d'une mise en œuvre stricte de la gestion des risques.
Dans l'ensemble, la stratégie de trading multi-couches offre un cadre intéressant et stimulant pour les traders quantitatifs.
/*backtest start: 2024-06-30 00:00:00 end: 2024-07-30 00:00:00 period: 2h basePeriod: 15m 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/ // © abtov //@version=5 strategy("Spider Strategy", overlay=true) ma(source, length, type) => switch type "SMA" => ta.sma(source, length) "Bollinger Bands" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) stdev = input.int(56, "STDEV", group="Stdev") mult = input.float(2.3, "Multiplier", group="Stdev") ma_len = input.int(230, "Basis Length", group="Stdev") ma_type = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Stdev") auto_mult = input.bool(true, "Dynamic Mult.", group="Stdev") basis_exit = input.bool(false, "Basis Exit", group="Stdev") col_int = input.int(12, "Collective Value", group="Collective") col_input = input.bool(true, "Collective Input", group="Collective") fib1 = input.float(0.236, "Fibonacci Level 1", group = "Fibonacci") fib2 = input.float(0.382, "Fibonacci Level 2", group = "Fibonacci") fib3 = input.float(0.5, "Fibonacci Level 3", group = "Fibonacci") fib4 = input.float(0.618, "Fibonacci Level 4", group = "Fibonacci") atr_len = input.int(30, "ATR", group="ATR") atr_bias = input.float(0.72, "Bias", group="ATR") shares = input.int(1, "Shares Amount", group="Strategy") if(col_input == true) stdev := col_int ma_len := col_int atr_len := col_int if(auto_mult == true) mult := ma(ta.tr(true), atr_len, ma_type) * atr_bias basis = ma(close, ma_len, ma_type) lower = basis - stdev * mult upper = basis + stdev * mult lower2 = basis - stdev * mult * fib1 upper2 = basis + stdev * mult * fib1 lower3 = basis - stdev * mult * fib2 upper3 = basis + stdev * mult * fib2 lower4 = basis - stdev * mult * fib3 upper4 = basis + stdev * mult * fib3 lower5 = basis - stdev * mult * fib4 upper5 = basis + stdev * mult * fib4 var lowerAct = false var lower2Act = false var lower3Act = false var lower4Act = false var lower5Act = false var upperAct = false var upper2Act = false var upper3Act = false var upper4Act = false var upper5Act = false plot(upper, "limit short", color.red) plot(upper2, "limit 1 short", color.red) plot(upper3, "limit 2 short", color.red) plot(upper4, "limit 3 short", color.red) plot(upper5, "limit 4 short", color.red) plot(basis, "basis", color.white) plot(lower, "limit long", color.green) plot(lower2, "limit 1 long", color.green) plot(lower3, "limit 2 long", color.green) plot(lower4, "limit 3 long", color.green) plot(lower5, "limit 4 long", color.green) if(lowerAct == false) if(close < lower) strategy.entry("long", strategy.long, shares) lowerAct := true else if(low > basis) lowerAct := false if(lower2Act == false) if(close < lower2) strategy.entry("long", strategy.long, shares) lower2Act := true else if(low > basis) lower2Act := false if(lower3Act == false) if(close < lower3) strategy.entry("long", strategy.long, shares) lower3Act := true else if(low > basis) lower3Act := false if(lower4Act == false) if(close < lower4) strategy.entry("long", strategy.long, shares) lower4Act := true else if(low > basis) lower4Act := false if(lower5Act == false) if(close < lower5) strategy.entry("long", strategy.long, shares) lower5Act := true else if(low > basis) lower5Act := false if(upperAct == false) if(close > upper) strategy.entry("short", strategy.short, shares) upperAct := true else if(high < basis) upperAct := false if(upper2Act == false) if(close > upper2) strategy.entry("short", strategy.short, shares) upper2Act := true else if(high < basis) upper2Act := false if(upper3Act == false) if(close > upper3) strategy.entry("short", strategy.short, shares) upper3Act := true else if(high < basis) upper3Act := false if(upper4Act == false) if(close > upper4) strategy.entry("short", strategy.short, shares) upper4Act := true else if(high < basis) upper4Act := false if(upper5Act == false) if(close > upper5) strategy.entry("short", strategy.short, shares) upper5Act := true else if(high < basis) upper5Act := false if((ta.crossover(close, basis) and basis_exit == true)) strategy.close("short") strategy.close("long")