Stratégie de trading quantitative de suivi des tendances d'inversion EMA-VWAP et CBC

EMA VWAP CBC PDH PDL PDVWAP PDC
Date de création: 2025-04-02 10:31:49 Dernière modification: 2025-04-02 10:31:49
Copier: 0 Nombre de clics: 488
2
Suivre
319
Abonnés

Stratégie de trading quantitative de suivi des tendances d’inversion EMA-VWAP et CBC Stratégie de trading quantitative de suivi des tendances d’inversion EMA-VWAP et CBC

Aperçu de la stratégie

La stratégie de négociation quantifiée EMA-VWAP synchronisée CBC est un système de négociation complexe qui combine plusieurs indicateurs techniques. Le cœur de la stratégie est l’utilisation de l’indice des moyennes mobiles (EMA), des prix moyens pondérés par le volume de transaction (VWAP) et de la confirmation de la rupture des prix critiques (CBC) pour former un signal de négociation précis.

Cette stratégie est particulièrement adaptée aux environnements de marché où la tendance est claire, en combinant la direction des EMA à court et à moyen terme avec la relation de position du VWAP et en ajoutant la confirmation de rupture CBC, pour filtrer efficacement les fausses ruptures et les signaux de bruit. La stratégie intègre également les références de prix clés de la journée, y compris les hauts de la journée de négociation précédente (PDH), les bas (PDL), les prix de clôture (PDC) et les niveaux de VWAP, ainsi que les hauts et les bas du lundi comme référence pour toute la semaine, fournissant une richesse d’informations sur le contexte du marché pour les décisions de négociation.

La stratégie utilise des règles d’entrée et de sortie claires, les signaux d’entrée nécessitant plusieurs conditions à la fois, et les signaux de sortie dépendant simplement du signal de retournement inverse de la CBC, réalisant la philosophie de négociation “en hausse, en baisse et en sortie”.

Principe de stratégie

Le principe de base de cette stratégie est basé sur la synergie de quatre éléments techniques clés:

  1. Système EMA à cycles multiplesLa stratégie utilise trois lignes EMA ((9 cycles, 20 cycles et 200 cycles) pour former un cadre de jugement de la tendance. La position relative de l’EMA rapide ((9 cycles) et de l’EMA moyenne ((20 cycles) est utilisée pour déterminer la direction de la tendance à court terme. Lorsque l’EMA rapide est au-dessus de l’EMA moyenne, elle est considérée comme un signal pessimiste; le contraire est considéré comme un signal baissier.

  2. Indice de référence VWAP:Le VWAP, en tant que point d’équilibre entre les prix et les volumes, joue un rôle clé dans la stratégie en tant que ligne de référence de support/résistance. La stratégie exige que le prix, l’EMA rapide et l’EMA moyenne soient tous deux sur le même côté du VWAP pour confirmer la cohérence et la force de la tendance.

  3. CBC (close, break, close) est un signal de retourIl s’agit d’un mécanisme de déclenchement central de la stratégie, en détectant si le prix a franchi le haut ou le bas de la journée de négociation précédente et en confirmant l’efficacité de la rupture à la clôture. Lorsque le prix de clôture dépasse le haut de la journée précédente, le CBC se retourne en hausse; lorsque le prix de clôture tombe le bas de la journée précédente, le CBC se retourne en baisse.

  4. Système de référence des prix clés du jourLa stratégie intègre les hauts, les bas, les prix de clôture et les niveaux de VWAP de la journée de négociation précédente, ainsi que les hauts et les bas du lundi comme référence pour toute la semaine, formant un cadre de référence complet de la structure du marché.

La logique d’entrée exige que les conditions suivantes soient réunies:

  • Entrée à plusieurs têtes: CBC inversion de baisse à hausse + Prix au-dessus du VWAP + Système EMA présentant un alignement à la hausse ((EMA rapide>EMA moyen) + Les deux EMA sont au-dessus du VWAP
  • Entrée en bourse: CBC basculé du bullish vers le bearish + prix en dessous du VWAP + système EMA en position bearish ((EMA rapide < EMA moyen) + les deux EMA sont en dessous du VWAP

La logique de sortie dépend directement de l’inversion de la CBC, c’est-à-dire que le plus-value se transforme en position claire à la baisse sur la CBC et que le vide se transforme en position claire à la hausse sur la CBC, reflétant l’essence de la stratégie.

Avantages stratégiques

L’analyse du code de la stratégie a révélé les avantages notables suivants:

  1. Mécanisme de confirmation multipleLa stratégie nécessite que la direction de la tendance EMA, la relation entre la position des prix et VWAP et le signal de renversement CBC soient en harmonie pour déclencher un signal de négociation, ce qui réduit efficacement le taux de fausses déclarations et améliore la qualité du signal.

  2. La tendance à la suite et à l’inverseLa stratégie consiste à capturer à la fois les tendances (conséquence via EMA et VWAP) et à se fonder sur les signaux CBC pour capturer les ruptures clés, en équilibrant les avantages de suivre la tendance et de négocier des inversions.

  3. Une référence complète de la structure du marché: Il intègre les prix clés de la journée de négociation précédente et les hauts et les bas du lundi, fournissant une mine d’informations sur le contexte du marché pour les décisions de négociation et aidant à comprendre la position actuelle des prix dans la structure du marché plus large.

  4. Un retour visuel clair: La stratégie utilise de nombreux éléments visuels, y compris des changements de couleur de fond, des marqueurs de forme et des étiquettes, permettant aux traders d’identifier intuitivement les signaux et l’état actuel du marché.

  5. Une logique de sortie concise: Utilisation du retournement en arrière du CBC comme signal de sortie, évitant le risque de départ prématuré ou de détention excessive, un système cohérent et symétrique avec la logique d’entrée.

  6. Paramètres d’adaptationLes stratégies offrent une fonction de filtrage de date et plusieurs options d’affichage, permettant aux traders de personnaliser les stratégies en fonction de leurs besoins, ce qui améliore la flexibilité et l’adaptabilité des stratégies.

  7. Intégration de la gestion des fondsStratégie: par défaut, le pourcentage de fonds de compte est utilisé pour les transactions au lieu d’un nombre fixe, ce qui reflète une bonne conscience de la gestion des risques et contribue à la croissance à long terme des fonds et à la maîtrise des risques.

Risque stratégique

Bien que cette stratégie présente de nombreux avantages, une analyse plus approfondie du code a révélé les risques potentiels suivants:

  1. Risque de retard: L’EMA est essentiellement un indicateur de retard qui peut entraîner des retards de signal, des points d’entrée manqués ou des sorties en retard dans des marchés très volatils, entraînant des pertes supplémentaires. La solution est d’envisager d’ajuster les paramètres de l’EMA ou d’augmenter les filtres de taux d’oscillation dans un environnement à forte volatilité.

  2. Risque de fausse percée: Bien que la logique de la CBC exige la confirmation de la rupture du prix de clôture, il est possible que le marché revienne rapidement après une fausse rupture. La solution consiste à envisager d’augmenter la confirmation de la transaction ou de définir des conditions de filtration de la rupture.

  3. Une dépendance excessive au VWAP: Dans les marchés à plat ou à courte volatilité, les prix peuvent traverser fréquemment le VWAP, ce qui augmente le bruit de signal. La solution consiste à suspendre la négociation ou à augmenter les conditions de filtration de la volatilité en identifiant le marché à plat.

  4. Manque de mécanisme de prévention: La stratégie actuelle n’a pas de mécanisme de stop-loss explicite et dépend entièrement de la compensation des signaux de revers de la CBC, ce qui peut entraîner des pertes plus importantes dans des situations extrêmes. La solution consiste à augmenter les stop-loss fixes ou les stop-loss multiples ATR et à définir des limites de perte maximale.

  5. Filtre de date insuffisant: Bien que la stratégie offre une fonction de filtrage de dates, elle ne prend pas en compte l’impact d’événements spéciaux du marché (comme les résultats, les annonces de politiques, etc.) sur la performance de la stratégie. La solution consiste à intégrer la fonction de calendrier économique pour ajuster ou suspendre automatiquement les transactions pendant les événements importants.

  6. Déviation de détectionUtilisation stratégique:fill_orders_on_standard_ohlc = trueParamètres qui peuvent être différents de ceux de la transaction réelle, ce qui conduit à des résultats trop optimistes. La solution est d’utiliser une simulation au penny-by-penny ou de prendre en compte les points de glissement et les coûts de transaction pour une rétroaction plus réaliste.

  7. dépendance à un seul cycle: La stratégie fonctionne uniquement sur une seule période de temps, manque de confirmation de plusieurs périodes, et peut manquer le signal de retour de plus grandes périodes. La solution est de considérer l’intégration d’un mécanisme de confirmation de signaux de plusieurs périodes.

Orientation de l’optimisation de la stratégie

Sur la base d’une analyse complète du code stratégique, nous recommandons les orientations d’optimisation suivantes:

  1. Ajout de paramètres d’adaptationLes cycles EMA peuvent être ajustés en fonction de la dynamique de la volatilité du marché, en utilisant des cycles plus courts dans les marchés à forte volatilité et des cycles plus longs dans les marchés à faible volatilité, ce qui améliore l’adaptabilité de la stratégie aux différents environnements du marché. Cela peut être réalisé en calculant l’ATR (la moyenne réelle de l’ampleur des vagues) et en la cartographiant dans la gamme des cycles EMA.

  2. Confirmation de la quantité intégrée: augmentation de la demande de confirmation de transaction sur la base d’un signal de renversement CBC, qui déclenche le signal uniquement lorsque la rupture est accompagnée d’une augmentation significative du volume de transaction, filtrant les ruptures de faible qualité. Cela peut être réalisé en comparant la relation entre le volume de transaction actuel et le volume de transaction moyen de N cycles.

  3. Adhésion au mécanisme de coupe-faim: Introduction d’un stop dynamique ou d’un stop à pourcentage fixe basé sur l’ATR pour protéger les fonds contre les effets d’une tendance extrême avant d’attendre un signal de retour de la CBC. La mise en place d’une fonction de suivi du stop est recommandée pour ajuster automatiquement le niveau de stop à mesure que le prix se déplace dans une direction favorable.

  4. Confirmation synchrone à cycles multiples: augmentation de la vérification des tendances des périodes de temps plus élevées, entrée dans le marché uniquement lorsque la direction de la tendance des périodes plus élevées est conforme à la direction du marché actuel, amélioration de la qualité du signal. Cela peut être réalisé en demandant des données EMA des périodes plus élevées et en vérifiant leur orientation.

  5. Catégorie des états du marchéDévelopper un module de reconnaissance de l’état du marché, distinguer le marché tendanciel du marché horizontal, ajuster les paramètres de la stratégie ou suspendre la négociation dans différents états du marché. L’ADX (indice de direction moyenne) ou l’analyse de la portée des fluctuations des prix peuvent être utilisés pour identifier l’état du marché.

  6. Optimisation de la gestion des fonds: Ajustez dynamiquement la taille de la position en fonction de la volatilité et du taux de victoire, augmentez la position sur les signaux de compte à rebours élevé et diminuez la position sur les signaux de compte à rebours bas. L’ajustement dynamique de la position peut être réalisé en calculant les statistiques des signaux historiques et la volatilité du marché actuel.

  7. Ajouter un filtrage de tempsIntroduction d’un filtrage de la journée, évitant les périodes de forte volatilité avant l’ouverture et la fermeture du marché, en se concentrant sur les périodes de marché actives mais relativement stables. Des périodes de négociation optimisées peuvent être configurées en fonction des caractéristiques des heures de négociation des différents marchés.

  8. Réponse à l’optimisation de l’environnementUtilisationfill_orders_on_standard_ohlc = falseLes résultats de l’évaluation de la stratégie sont plus fiables en se rapprochant des résultats réels de l’évaluation des commissions et des points de glissement réels.

Résumer

La stratégie de négociation quantifiée EMA-VWAP-CBC est un système de négociation structuré et logiquement clair, qui forme un signal de négociation de haute qualité en intégrant plusieurs indicateurs techniques et méthodes d’analyse du comportement des prix. L’avantage central de la stratégie réside dans le mécanisme de confirmation multiple et le système de référence complet de la structure du marché, qui réduit efficacement le taux d’erreur et améliore la qualité du signal.

La stratégie adopte une philosophie de négociation basée sur le principe “avance par avance, contrecoup par contre” et nécessite une confirmation synchrone de plusieurs conditions à l’entrée et à la sortie en s’appuyant sur les signaux de retournement de la CBC, formant un système de négociation logiquement cohérent et symétrique. En même temps, la stratégie intègre des éléments de rétroaction visuelle riches et des paramètres flexibles, améliorant l’expérience d’utilisation et l’adaptabilité.

Cependant, la stratégie présente également des problèmes potentiels tels que le risque de retard, le risque de fausse percée et l’absence de mécanisme de freinage. La robustesse et la rentabilité de la stratégie peuvent être encore améliorées par l’ajout de paramètres d’adaptation, l’intégration de la confirmation du volume de trafic et des mesures d’optimisation telles que l’ajout de mécanismes de freinage et de confirmation synchrone à plusieurs cycles.

Dans l’ensemble, il s’agit d’un cadre stratégique de base bien conçu qui a le potentiel d’être un système de négociation robuste grâce à une optimisation et une configuration de gestion des risques raisonnables. Dans la pratique, les traders doivent personnaliser les paramètres de la stratégie en fonction de leurs préférences en matière de risque et de leurs objectifs de négociation, et toujours maintenir une discipline appropriée en matière de gestion des fonds.

Code source de la stratégie
/*backtest
start: 2024-04-02 00:00:00
end: 2025-04-01 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Maple&CBC Strategy", overlay = true, fill_orders_on_standard_ohlc = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)


// EMA's
fastEma = ta.ema(close, 9)
middleEma = ta.ema(close, 20)
slowEma = ta.ema(close, 200)
vwap = ta.vwap(close)

plot(fastEma, color=color.blue, title="9 EMA")
plot(middleEma, color=color.green, title="20 EMA")
plot(slowEma, color=color.red, title="200 EMA")
plot(vwap, color=color.yellow, title="VWAP")

// Input instellingen voor zichtbaarheid van lijnen
show_prev_day_high = input.bool(true, title="Toon Previous Day High")
show_prev_day_low = input.bool(true, title="Toon Previous Day Low")
show_prev_day_vwap = input.bool(true, title="Toon Previous Day VWAP")
show_prev_day_close = input.bool(true, title="Toon Previous Day Close")
show_monday_levels = input.bool(true, title="Toon Monday High/Low")

// Vorige dag niveaus
[dh, dl, dc, dv] = request.security(syminfo.tickerid, "D", [high[1], low[1], close[1], ta.vwap(close)[1]])

// Maandag High en Low
isMonday = dayofweek == dayofweek.monday
var float mondayHigh = na
var float mondayLow = na

if isMonday and barstate.isconfirmed
    mondayHigh := high
    mondayLow := low

// CBC Flip Logica
cbc = false
cbc := cbc[1]
if cbc and close < low[1]
    cbc := false
if not cbc and close > high[1]
    cbc := true

cbc_long = cbc and not cbc[1]
cbc_short = not cbc and cbc[1]

// EMA's bullish/bearish check
ema_bullish = fastEma > middleEma
ema_bearish = fastEma < middleEma

// Prijs boven/onder VWAP check
price_above_vwap = close > vwap
price_below_vwap = close < vwap

// ==================== STRATEGIE LOGICA ====================

// Long signaal: prijs boven VWAP + EMA's bullish + EMA's boven VWAP + CBC flip bullish
emas_above_vwap = fastEma > vwap and middleEma > vwap
longCondition = cbc_long and price_above_vwap and ema_bullish and emas_above_vwap and barstate.isconfirmed

// Short signaal: prijs onder VWAP + EMA's bearish + EMA's onder VWAP + CBC flip bearish
emas_below_vwap = fastEma < vwap and middleEma < vwap
shortCondition = cbc_short and price_below_vwap and ema_bearish and emas_below_vwap and barstate.isconfirmed

// Variabelen om bij te houden of we in een positie zitten
var bool inLongPosition = false
var bool inShortPosition = false

// Strategy entrypoints
if longCondition and not inLongPosition and not inShortPosition
    strategy.entry("Long", strategy.long)
    inLongPosition := true
    inShortPosition := false

if shortCondition and not inShortPosition and not inLongPosition
    strategy.entry("Short", strategy.short)
    inShortPosition := true
    inLongPosition := false

// Strategy exitpoints - wacht op tegenovergestelde CBC flip signaal
if cbc_short and inLongPosition
    strategy.close("Long", comment="Exit Long on CBC flip short")
    inLongPosition := false

if cbc_long and inShortPosition
    strategy.close("Short", comment="Exit Short on CBC flip long")
    inShortPosition := false

// Visuele weergave van signalen
plotshape(series=cbc_long, location=location.belowbar, color=color.green, style=shape.triangleup, title="Bulls")
plotshape(series=cbc_short, location=location.abovebar, color=color.red, style=shape.triangledown, title="Bears")

// Achtergrondkleur voor visuele ondersteuning
bgcolor(cbc_long ? color.rgb(255, 235, 59, 71) : cbc_short ? color.rgb(5, 185, 240, 59) : na)

// Extra achtergrondkleur voor trading signalen
bgcolor(longCondition ? color.rgb(0, 255, 0, 90) : shortCondition ? color.rgb(255, 0, 0, 90) : na)

// Labels voor de trading posities
if inLongPosition and barstate.islast
    label.new(bar_index, low - (low * 0.002), "IN LONG", color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)

if inShortPosition and barstate.islast
    label.new(bar_index, high + (high * 0.002), "IN SHORT", color=color.red, style=label.style_label_down, textcolor=color.white, size=size.small)