Les ressources ont été chargées... Je charge...

Stratégie de négociation de bandes de volatilité à plusieurs niveaux

Auteur:ChaoZhang est là., Date: 2024-07-31 14:08:36 Je vous en prie.
Les étiquettes:SMALe taux d'intérêtLe secteur privéLa WMAVWMAATR

img

Résumé

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.

Principes de stratégie

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. Logique d'entrée: les positions sont établies lorsque le prix touche ou traverse une bande de volatilité dans la direction correspondante.

  6. 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.

  7. Logique de sortie: les bénéfices sont réalisés lorsque le prix revient à la ligne de base.

Les avantages de la stratégie

  1. 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.

  2. 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.

  3. 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é.

  4. 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.

  5. 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.

  6. 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.

Risques stratégiques

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

Directions d'optimisation de la stratégie

  1. 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.

  2. 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.

  3. 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.

  4. 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é.

  5. 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é.

  6. 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é.

  7. 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.

Conclusion

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")

Relationnée

Plus de