La stratégie de négociation en bandes de fluctuation multicouches est une méthode de négociation quantitative basée sur la volatilité des prix. Cette stratégie utilise plusieurs fluctuations pour identifier les zones de survente et de survente du marché et pour négocier lorsque les prix touchent ces zones. L’idée centrale de la stratégie est d’établir une position lorsque les prix s’écartent de la moyenne et de tirer profit de la reprise des prix.
Calcul de la moyenne: la stratégie utilise les types de moyenne disponibles (SMA, EMA, SMMA, WMA, VWMA) pour calculer la ligne de référence.
Configuration des bandes d’ondulation: sur la base de la ligne de référence, la différence standard est multipliée par le multiplicateur pour configurer des bandes d’ondulation à plusieurs niveaux.
Niveaux de Fibonacci: utilisez les niveaux de rétractation de Fibonacci ((23.6%, 38.2%, 50%, 61.8%) pour segmenter les bandes de volatilité et créer plus d’opportunités de négociation.
Adaptation dynamique: vous pouvez choisir d’utiliser un multiplicateur dynamique pour ajuster automatiquement la bande passante en fonction de l’ATR.
Logique d’entrée: la stratégie établit une position dans cette direction lorsque le prix touche ou traverse une zone de fluctuation.
Le mécanisme d’accumulation de la position: si le prix continue à se déplacer dans une direction défavorable, la stratégie augmente la position à des niveaux de bande plus éloignés, reflétant l’idée de la stratégie de Martingale.
Logique de sortie: lorsque le prix revient à la ligne de référence, il est possible de choisir de faire un profit de placement. Il est également possible de définir un placement lorsque le prix traverse la ligne de référence.
Entrée à plusieurs niveaux: la stratégie offre plus d’opportunités de négociation en définissant plusieurs bandes de volatilité et niveaux de Fibonacci, captant les fluctuations du marché à différents niveaux de prix.
Flexibilité: la stratégie permet aux utilisateurs de choisir différents types de courbe, cycles et paramètres pour s’adapter à différents environnements de marché et types de transactions.
Adaptation dynamique: la fonction de multiplicateur dynamique en option permet aux stratégies de s’adapter automatiquement à la volatilité du marché, ce qui améliore leur adaptabilité.
Gestion des risques: la stratégie tente de réduire le prix d’entrée moyen et d’augmenter la probabilité de profit final en augmentant les positions sur une tendance défavorable.
L’idée de retour à la valeur moyenne: la stratégie est basée sur l’idée que le prix finit par revenir à la valeur moyenne, ce qui fonctionne bien dans de nombreux marchés et périodes.
Personnalisabilité: les utilisateurs peuvent ajuster des paramètres tels que le nombre d’actions, l’équilibre de Fibonacci en fonction de leurs préférences de risque et de leur style de trading.
Risque de pertes consécutives: dans un marché en forte tendance, les prix peuvent perpétuellement franchir plusieurs bandes de volatilité, entraînant des hausses consécutives et des pertes massives.
La pression sur la gestion des fonds: une stratégie de mise en place de la marginalité pourrait entraîner une forte augmentation de la demande de fonds au-delà de la capacité du compte.
Trop de transactions: les bandes de fluctuation à plusieurs niveaux peuvent générer trop de signaux de transactions dans un marché en crise, augmentant les coûts de transaction.
Sensitivité des paramètres: les performances des stratégies sont fortement dépendantes des paramètres qui leur sont attribués. Des paramètres incorrects peuvent entraîner une mauvaise performance des stratégies.
Les points de glissement et les risques de liquidité: dans les marchés très volatils, il est possible de faire face à de graves points de glissement, en particulier lors de la prise de position.
Risque de retrait: Bien que la stratégie vise à réduire le coût moyen par la prise de position, il est possible de faire face à des retraits importants dans des conditions de marché extrêmes.
Introduction d’un filtre de tendance: vous pouvez ajouter des indicateurs de tendance à long terme, ouvrir des positions uniquement dans la direction de la tendance et éviter de négocier fréquemment à l’envers dans une tendance forte.
Gestion dynamique des positions: le nombre d’actions par transaction est ajusté en fonction de la taille du compte et de la dynamique de la volatilité du marché, afin de mieux contrôler les risques.
Optimisation des mécanismes de sortie: l’introduction d’un trailing stop ou d’un stop dynamique basé sur la volatilité peut être envisagée pour mieux localiser les bénéfices et contrôler les risques.
Augmentation du filtrage temporel: ajout d’une limite de fenêtre de temps de transaction afin d’éviter les périodes de plus grande ou moindre volatilité.
Intégration des indicateurs de l’humeur du marché: en combinaison avec des indicateurs de volatilité tels que VIX, ajuster les paramètres de la stratégie ou suspendre la négociation pendant les périodes de forte volatilité.
L’introduction de l’apprentissage automatique: optimisation dynamique des paramètres de l’algorithme d’apprentissage automatique pour améliorer l’adaptation des stratégies aux changements du marché.
Augmentation du filtrage de base: en combinant les données de base, la qualité des transactions est améliorée en autorisant les transactions uniquement dans des conditions de base spécifiques.
La stratégie de négociation en bandes de fluctuation multicouches est un système de négociation complexe qui combine l’analyse technique, la théorie des probabilités et la gestion des risques. Elle tente de capturer des bénéfices dans les fluctuations des prix grâce à des points d’entrée multicouches et à une méthode de mise en position de type Martin-Engels. L’avantage de la stratégie réside dans sa flexibilité et son utilisation de la régression par rapport à la valeur moyenne, mais elle est également exposée à des risques dans des marchés à forte tendance.
Pour réussir à appliquer cette stratégie, les traders doivent avoir une compréhension approfondie des caractéristiques du marché, définir soigneusement les paramètres et mettre en œuvre une gestion rigoureuse des risques. Grâce à une optimisation et une rétroaction continues, combinées à des informations sur le marché, cette stratégie a le potentiel d’être un outil de trading efficace. Cependant, compte tenu de sa complexité et de ses risques potentiels, il est recommandé de procéder à des tests de simulation et à une évaluation des risques suffisants avant de négocier en direct.
Dans l’ensemble, les stratégies de négociation en bandes de fluctuation multicouches offrent un cadre intéressant et stimulant pour les traders quantifiés, dont la mise en œuvre réussie nécessite des compétences en analyse technique, des compétences en gestion des risques et une optimisation continue de la stratégie.
/*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")