Stratégie de trading quantitative révolutionnaire à bande étroite et à double moyenne mobile dynamique

SMA ATR RR Elephant Bar Color Change Narrow Band Slope Angle
Date de création: 2025-05-14 15:19:51 Dernière modification: 2025-05-14 15:19:51
Copier: 0 Nombre de clics: 281
2
Suivre
319
Abonnés

Stratégie de trading quantitative révolutionnaire à bande étroite et à double moyenne mobile dynamique Stratégie de trading quantitative révolutionnaire à bande étroite et à double moyenne mobile dynamique

Aperçu

La stratégie de trading quantitative de rupture de la bande étroite des moyennes mobiles oscillantes est un système de trading avancé basé sur les principes de l’enseignement d’Oliver Velez, combinant les éléments centraux de l’analyse technique et du trading dynamique. La stratégie exploite principalement la relation entre les moyennes mobiles simples (SMA) à court terme (20 cycles) et à long terme (200 cycles), combinant dynamique des prix, volatilité et forme de chute, pour rechercher des opportunités de rupture de négociation à haute probabilité dans les zones étroites de la bande étroite.

Principe de stratégie

La stratégie repose sur la synergie de plusieurs facteurs clés:

  1. Système de moyennes mobiles doublesStratégie: Utilisez les SMA à 20 cycles et les SMA à 200 cycles pour créer un cadre de négociation. Lorsque les deux lignes sont relativement éloignées l’une de l’autre (état de bande étroite, différence inférieure à 1,5%), le système recherche des signaux de négociation potentiels.

  2. Vérification de l’inclinaison moyenneStratégie: en calculant l’angle du SMA à 20 cycles (en utilisant le calcul de la fonction de coupe inverse), assurez-vous que le marché a suffisamment de dynamisme et ne considérez l’entrée que si l’angle est supérieur à 30 degrés.

  3. Type de signal d’entrée

    • Signal d’entrée principal ((“colonne éléphant”): c’est un signal de comportement de prix fort qui demande que la longueur de la barre soit supérieure à 1,5 fois celle de l’ATR, et que le point le plus élevé soit supérieur à la barre précédente ((multi-têtes) ou le point le plus bas soit inférieur à la barre précédente ((air)) [2].
    • Signal d’entrée secondaire ((“changement de couleur”): c’est un signal complémentaire qui est déclenché lorsque la couleur du plateau passe du rouge au vert ((multi-têtes) ou du vert au rouge ((têtes vides)).
  4. Cadre de gestion des risques

    • Arrêt de la perte: arrêt de la perte de plusieurs transactions à deux fois l’ATR au-dessous du dernier bas ou du prix d’entrée; arrêt de la perte de transactions à vide à deux fois l’ATR au-dessus du dernier haut ou du prix d’entrée.
    • Profit échelonné: deux prix cibles sont définis à l’aide des ratios de risque/rendement de 2.5R et 4.0R, le stop loss est déplacé vers le point d’équilibre des pertes et des gains lorsque le premier prix cible est atteint.
    • Gestion des positions: 10% des fonds du compte sont utilisés pour chaque transaction, permettant jusqu’à deux superpositions.
  5. Déterminer le marchéLa stratégie consiste à déterminer l’état du marché en calculant la distance relative entre deux lignes de moyenne:

    • L’état de la bande étroite: la distance moyenne est inférieure à 1,5%, ce qui est approprié pour rechercher des opportunités de percée.
    • État de la large bande: la distance moyenne est supérieure à 2%, ce qui signifie que la tendance est établie et ne convient pas aux nouveaux entrants.

Conditions d’entrée multiples: état de bande étroite + inclinaison efficace + prix de clôture supérieur à SMA20 + SMA20 supérieur à SMA200 + forme de pilier éléphant. Conditions d’entrée à vide: état de bande étroite + inclinaison efficace + prix de clôture inférieur à SMA20 + SMA20 inférieur à SMA200 + forme de pilier éléphant.

Avantages stratégiques

En analysant en profondeur le code, cette stratégie présente les avantages suivants:

  1. Mécanisme de confirmation multipleLa stratégie combine des facteurs de confirmation de plusieurs dimensions, tels que la relation de parité, la pente de parité, la position des prix et les formes spéciales de baisse, pour filtrer efficacement les signaux de mauvaise qualité et améliorer la qualité des transactions.

  2. Adaptation à la situation du marchéEn distinguant les états de bande étroite et de bande large, la stratégie est capable de rechercher des opportunités dans les conditions de marché les plus appropriées et d’éviter de suivre des tendances qui se sont déjà élargies.

  3. Gestion dynamique des risquesUtilisation de l’ATR comme un outil de mesure de la volatilité pour s’assurer que les objectifs de stop loss et de profit s’adaptent à la dynamique de la volatilité du marché actuel, plutôt que d’utiliser un nombre de points fixe.

  4. Stratégie de répartition par tranchesLa stratégie des deux phases de profit partiel et profit final permet de s’assurer que la partie des bénéfices est verrouillée dans des conditions favorables et de ne pas rater la grande tendance en quittant prématurément la totalité des bénéfices.

  5. Le mécanisme d’augmentation de la position: offre des opportunités de mise en position grâce à des signaux de changement de couleur, permettant un maximum de deux positions supplémentaires dans la même tendance, optimisant l’efficacité de l’utilisation du capital.

  6. Protection contre les dommages mobilesLe stop loss est automatiquement transféré à l’équilibre de la perte et de la perte lorsque le prix atteint le premier objectif de profit, permettant une transaction “zéro risque” et protégeant les bénéfices réalisés.

  7. Aide visuelle: La stratégie fournit des indications visuelles claires et un tableau de bord pour aider les traders à identifier intuitivement les signaux et l’état du marché, simplifiant ainsi le processus de décision.

  8. Indicateurs techniques et comportement des prix intégrésLe prix de l’or est le prix de l’or et de l’or est le prix de l’or. Le prix de l’or est le prix de l’or.

Risque stratégique

Malgré la bonne conception de la stratégie, les risques et les défis potentiels sont les suivants:

  1. Paramètre SensibilitéLa performance de la stratégie dépend en grande partie de la configuration de paramètres clés tels que le cycle SMA, la longueur de l’ATR et le rapport de retour sur risque. Différents marchés et périodes de temps peuvent nécessiter des combinaisons de paramètres différentes, nécessitant un suivi historique et une optimisation adéquats.

  2. Risque de fausse percée: Les ruptures dans les zones à bandes étroites peuvent parfois être des fausses ruptures, en particulier dans un environnement de marché à faible volatilité. Bien que la stratégie exige l’utilisation d’une “colonne d’éléphant” pour réduire les fausses ruptures, elles ne peuvent pas être complètement évitées.

  3. Points de glissement et risques d’exécution: Dans les transactions sur le marché réel, en particulier lorsque la volatilité est importante, il est possible de rencontrer des problèmes de points de glissement, ce qui entraîne un désaccord entre le prix d’entrée réel et le prix idéal, affectant la structure globale de risque-rendement.

  4. Le défi de la gestion des fondsLe taux d’intérêt est fixé à 10% et deux marges sont autorisées, ce qui peut entraîner des risques excessifs en cas de pertes consécutives ou de fortes fluctuations du marché.

  5. Une dépendance excessive à la moyenne: la stratégie dépend principalement de la direction de la tendance déterminée par les SMA, mais dans les marchés à basse fréquence, les lignes moyennes peuvent se croiser fréquemment, ce qui génère trop de faux signaux.

  6. Le manque de filtrage du marché: la stratégie n’est pas adaptée aux différents environnements macro-marchés (par exemple, haut ou bas niveau de volatilité, hausse ou baisse des cours), et peut être moins performante à certains stades du marché.

  7. Retraite de la courbe des fondsLa stratégie permettant la prise de position peut entraîner des retraits importants en cas de revers soudain de la tendance, en particulier lorsque le marché se retourne après deux prises de position.

Les solutions comprennent: l’ajout de filtres supplémentaires pour l’environnement du marché, l’ajustement du ratio de gestion des fonds, l’ajustement dynamique des paramètres en fonction des différentes conditions du marché et la prise en compte de l’ajout d’autres indicateurs techniques pour confirmer le signal.

Orientation de l’optimisation de la stratégie

L’analyse du code permet d’optimiser cette stratégie dans les directions suivantes:

  1. Bande étroite dynamique: Les stratégies actuelles utilisent des seuils de jugement fixes de 1,5% et 2% pour les bandes étroites et larges. Il est possible d’envisager d’ajuster ces seuils en fonction de la dynamique des taux d’évolution historiques, afin de mieux adapter la stratégie aux différents environnements de marché.

  2. Amélioration du système de ligne moyenneOn peut envisager d’ajouter des moyennes intermédiaires pour former un système à trois moyennes, ou d’essayer de remplacer les moyennes mobiles indicielles par des moyennes mobiles, afin d’améliorer la sensibilité aux changements de prix. La raison d’être de l’optimisation: l’ajout de points de référence intermédiaires peut fournir une perspective plus complète du marché, tandis que l’EMA est plus sensible aux réactions aux dernières variations de prix.

  3. Amélioration du calcul de l’inclinaison: Le calcul de la pente actuelle est relativement simple et l’on peut envisager d’utiliser une pente de régression linéaire ou une variation de pente à cycles multiples pour obtenir une indication de direction plus stable. Raison d’optimisation: Le calcul de la pente à un seul point est vulnérable aux fluctuations à court terme et une amélioration de la stabilité du jugement de direction.

  4. Ajouter une confirmation de transaction: augmenter les conditions de volume de transaction dans les signaux d’entrée, par exemple en exigeant que le “ pilier de l’éléphant ” soit accompagné d’une rupture supérieure au volume de transaction moyen. Raison d’optimisation: Le volume de transaction est un facteur de confirmation important de l’efficacité des variations de prix, ce qui peut réduire considérablement les fausses ruptures.

  5. Résultats de l’analyse: Ratio de rendement au risque ajusté dynamiquement en fonction de la volatilité du marché ou du pourcentage ATR, utilisation d’un RR plus élevé dans les marchés à faible volatilité et d’un réglage plus conservateur dans les marchés à forte volatilité. Raison d’optimisation: Le potentiel de profit est différent dans différents environnements de volatilité, l’ajustement dynamique peut optimiser les rendements attendus pour chaque transaction.

  6. Optimisation des conditions de prise de positionLes conditions actuelles de prise de position sont relativement laxistes, il est possible d’envisager d’ajouter une confirmation de la force de la tendance ou de prendre des positions uniquement lorsque le prix revient à un support / résistance critique. Raison d’optimisation: des conditions de prise de position plus strictes peuvent améliorer le taux de réussite des positions supplémentaires et réduire le risque global.

  7. Filtrage de l’environnement du marché: Ajout de filtres d’environnement de marché macro, tels que des indicateurs de volatilité (comme VIX) ou des indicateurs de force de tendance, pour réduire ou suspendre les transactions dans des conditions de marché défavorables. Raison d’optimisation: Les stratégies de performance varient considérablement selon les phases de marché et les filtres d’environnement permettent d’éviter les transactions dans des conditions défavorables.

  8. Stratégie de coupe de perte adaptativeDévelopper des stratégies d’arrêt de perte adaptatives basées sur la structure du marché, telles que l’utilisation des hauts et des bas de la période précédente, des pourcentages de volatilité ou de la structure des prix comme points de référence d’arrêt de perte dynamiques. Raisons d’optimisation: Les arrêts de perte avec des multiples ATR fixes ne correspondent parfois pas bien à la structure du marché. Les méthodes d’adaptation peuvent être mieux adaptées au comportement réel des prix.

Résumer

La stratégie de négociation quantifiée de rupture de bande est un système de négociation intégré qui combine plusieurs éléments d’analyse technique pour offrir aux traders une façon structurée de participer au marché grâce à des conditions d’entrée bien définies, des mécanismes de confirmation à plusieurs niveaux et un cadre de gestion des risques bien développé. La stratégie est basée sur les concepts fondamentaux de l’analyse technique tels que les SMA, les ATR et l’action des prix, mais intègre ces éléments dans un système de négociation clairement réglementé grâce à la méthodologie d’Oliver Velez.

Le principal avantage de la stratégie réside dans sa capacité à identifier des opportunités de rupture à forte probabilité dans les zones de bandes étroites des moyennes mobiles et à confirmer l’efficacité des signaux via des modèles de prix spécifiques tels que la “colonne éléphante” et la “changement de couleur”. Parallèlement, une structure de gestion des risques complète assure la sécurité des fonds et la protection des bénéfices.

Cependant, la stratégie est également confrontée à des problèmes tels que la sensibilité des paramètres, le risque de fausse rupture et les défis de gestion des fonds. La robustesse et l’adaptabilité de la stratégie peuvent être encore améliorées en optimisant les seuils de bande étroite, en renforçant le système de la moyenne, en améliorant le calcul de l’inclinaison, en ajoutant la confirmation de la transaction, en mettant en œuvre un ratio de retour sur risque dynamique, en optimisant les conditions de prise de position, en ajoutant le filtrage de l’environnement du marché et en développant des stratégies d’adaptation aux pertes.

Dans l’ensemble, il s’agit d’une stratégie de trading quantitative conçue de manière rationnelle et logique, adaptée aux investisseurs ayant une certaine expérience de la négociation, en particulier ceux qui préfèrent l’analyse technique et la méthodologie de négociation systématisée. Avec une optimisation appropriée des paramètres et une gestion des risques, la stratégie a le potentiel d’obtenir une performance de négociation stable dans divers environnements de marché.

Code source de la stratégie
/*backtest
start: 2024-05-13 00:00:00
end: 2025-05-12 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Oliver Velez Advanced Strategy v2", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, pyramiding=2, calc_on_order_fills=true, calc_on_every_tick=true)

// === INPUTS ===
smaLen1 = input.int(20, title="SMA Short")
smaLen2 = input.int(200, title="SMA Long")
atrLen = input.int(14, title="ATR Length")
rr1 = input.float(2.5, title="RR for Partial Profit", step=0.1)
rr2 = input.float(4.0, title="RR for Final Profit", step=0.1)

// === INDICATORS ===
sma20 = ta.sma(close, smaLen1)
sma200 = ta.sma(close, smaLen2)
atr = ta.atr(atrLen)
angle = math.atan(sma20 - sma20[1]) * 180 / math.pi

// === STATES ===
isNarrow = math.abs(sma20 - sma200) / sma200 < 0.015
isWide = math.abs(sma20 - sma200) / sma200 >= 0.02
validSlope = angle > 30

// === CANDLE PATTERNS ===
elephant_long = close > open and (close - open) > 1.5 * atr and high > high[1]
elephant_short = close < open and (open - close) > 1.5 * atr and low < low[1]
color_change_long = close > open and close[1] < open[1]
color_change_short = close < open and close[1] > open[1]

// === LONG ENTRY ===
long_primary = isNarrow and validSlope and close > sma20 and sma20 > sma200 and elephant_long
long_add = isNarrow and color_change_long and close > sma20
long_entry_price = close
long_stop = math.min(low, close - 2 * atr)
long_risk = long_entry_price - long_stop
long_tp1 = long_entry_price + rr1 * long_risk
long_tp2 = long_entry_price + rr2 * long_risk

// === SHORT ENTRY ===
short_primary = isNarrow and validSlope and close < sma20 and sma20 < sma200 and elephant_short
short_add = isNarrow and color_change_short and close < sma20
short_entry_price = close
short_stop = math.max(high, close + 2 * atr)
short_risk = short_stop - short_entry_price
short_tp1 = short_entry_price - rr1 * short_risk
short_tp2 = short_entry_price - rr2 * short_risk

// === LONG EXECUTION ===
if (long_primary)
    strategy.entry("Long Entry", strategy.long, comment="Elephant Bar Long")
    strategy.exit("Long TP1", from_entry="Long Entry", limit=long_tp1, stop=long_stop)
    strategy.exit("Long TP2", from_entry="Long Entry", qty_percent=50, limit=long_tp2)

if (long_add)
    strategy.entry("Long Add", strategy.long, comment="Color Change Long")
    strategy.exit("Add TP1", from_entry="Long Add", limit=long_tp1, stop=long_stop)
    strategy.exit("Add TP2", from_entry="Long Add", qty_percent=50, limit=long_tp2)

// === SHORT EXECUTION ===
if (short_primary)
    strategy.entry("Short Entry", strategy.short, comment="Elephant Bar Short")
    strategy.exit("Short TP1", from_entry="Short Entry", limit=short_tp1, stop=short_stop)
    strategy.exit("Short TP2", from_entry="Short Entry", qty_percent=50, limit=short_tp2)

if (short_add)
    strategy.entry("Short Add", strategy.short, comment="Color Change Short")
    strategy.exit("Short TP1 Add", from_entry="Short Add", limit=short_tp1, stop=short_stop)
    strategy.exit("Short TP2 Add", from_entry="Short Add", qty_percent=50, limit=short_tp2)

// === BREAKEVEN CHECK ===
var float breakeven_price = na
long_breakeven_trigger = high >= long_tp1
short_breakeven_trigger = low <= short_tp1
breakeven_price := long_breakeven_trigger or short_breakeven_trigger ? close : breakeven_price

// === ALERTS ===
alertcondition(long_primary, title="Long Elephant", message="Elephant Bar Long Entry Triggered!")
alertcondition(long_add, title="Color Change Long", message="Color Change Long Entry Triggered!")
alertcondition(long_breakeven_trigger, title="Long Breakeven", message="Move SL to Breakeven for Long")

alertcondition(short_primary, title="Short Elephant", message="Elephant Bar Short Entry Triggered!")
alertcondition(short_add, title="Color Change Short", message="Color Change Short Entry Triggered!")
alertcondition(short_breakeven_trigger, title="Short Breakeven", message="Move SL to Breakeven for Short")

// === PLOTTING ===
plot(sma20, color=color.orange, title="SMA 20")
plot(sma200, color=color.blue, title="SMA 200")
bgcolor(isNarrow ? color.new(color.green, 85) : na)
plotshape(long_primary, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, text="E")
plotshape(long_add, style=shape.circle, location=location.belowbar, color=color.lime, size=size.tiny, text="A")
plotshape(short_primary, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, text="E")
plotshape(short_add, style=shape.circle, location=location.abovebar, color=color.maroon, size=size.tiny, text="A")

// === DASHBOARD ===
var label dash = na
label.delete(dash)
dash := label.new(x=bar_index, y=high, text=
     "Oliver Velez Strategy\n" +
     "SMA 20 Slope: " + str.tostring(angle, "#.##") + "°\n" +
     "State: " + (isNarrow ? "NARROW" : "WIDE") + "\n" +
     "Last Entry: " + (long_primary ? "Long E-Bar" : long_add ? "Long Add" : short_primary ? "Short E-Bar" : short_add ? "Short Add" : "None") + "\n" +
     "Breakeven: " + (breakeven_price != na ? str.tostring(breakeven_price, "#.##") : "No"), style=label.style_label_left, color=color.new(color.black, 85), textcolor=color.white)