Stratégies de croisement de tendance pondérées par la volatilité, le momentum et la capacité

VMI VWPC ATR RMA 波动加速度指标 容量加权价格中心 趋势跟踪
Date de création: 2025-07-14 14:35:54 Dernière modification: 2025-07-14 14:35:54
Copier: 1 Nombre de clics: 197
2
Suivre
319
Abonnés

Stratégies de croisement de tendance pondérées par la volatilité, le momentum et la capacité Stratégies de croisement de tendance pondérées par la volatilité, le momentum et la capacité

Aperçu

La stratégie de croisement de tendance pondérée par la volatilité et la capacité est un système de négociation quantitative basé sur la courbe du marché, qui prend des décisions de négociation en identifiant les points de transition du marché de la basse volatilité à la haute volatilité. Cette stratégie combine deux indicateurs clés: l’indicateur de volatilité (VMI) et le centre de prix pondéré par la capacité (VWPC). Le VMI mesure l’accélération de la volatilité, qui est utilisée pour entrer en jeu lorsque le marché passe d’une phase calme à une phase active et s’en échapper lorsque la volatilité atteint un seuil de chaos.

Principe de stratégie

Le principe central de cette stratégie est d’utiliser les cycles de changement et la direction des tendances volatiles du marché pour prendre des décisions de négociation.

  1. Calcul de l’indicateur de volatilité

    • Comptez d’abord la portée réelle moyenne actuelle (ATR) et ses variations
    • Distinguer l’accélération de montée (ATR montée) et l’accélération de descente (ATR descente)
    • En utilisant la moyenne mobile (RMA) pour lisser ces valeurs d’accélération
    • Calculer l’intensité relative et la convertir en une valeur VMI dans la plage 0-100
  2. Calcul du centre des prix pondérés par la capacité (VWPC)

    • calcul basé sur le prix typique (moyenne des prix de clôture) et le volume des transactions
    • Obtention d’un indicateur qui met l’accent sur les niveaux de prix à volume élevé en pondérant le prix typique par rapport au volume correspondant
    • Cet indicateur peut être considéré comme le “centre de gravité” du marché, aidant à déterminer la direction de la tendance globale.
  3. Implémentation de la logique de transaction en deux étapes

    • Phase préparatoire ((Condition “Armed”): vérifier si le VMI se trouve dans la zone de calme ((inférieur au seuil de zone de calme défini)
    • Phase de déclenchement (condition “Fire”): déclenchement lorsque le VMI monte au-dessus du seuil de zone de calme
    • Condition d’entrée: satisfaire à la fois à la direction de la tendance (le prix est supérieur à VWPC pour tendance à la hausse, et vice versa pour tendance à la baisse) et aux deux conditions de phase ci-dessus
    • Conditions de sortie: Pause lorsque le VMI atteint le seuil de la zone de chaos (indiquant que la volatilité a atteint son apogée)

Les stratégies permettent de configurer l’orientation de la transaction (commercialisation en solo, en solo ou bi-directionnelle) et d’optimiser les paramètres pour s’adapter à différents environnements de marché.

Avantages stratégiques

Une analyse approfondie du code de la stratégie permet de résumer les avantages suivants:

  1. Sélection du moment de la transaction en fonction des cycles du marchéLa stratégie identifie les points de transition du marché de basse à haute volatilité via l’indicateur VMI, qui représente souvent le début d’un nouveau mouvement de prix et aide à l’entrée au début de la tendance.

  2. Confirmation de la tendance combinée au volume des transactions: Le VWPC fournit un indicateur de tendance plus représentatif que la simple moyenne mobile, en ajoutant un poids de volume de transactions, ce qui réduit les faux signaux.

  3. Des conditions d’entrée et de sortie claires: la stratégie a une logique d’entrée claire ((la fluctuation commence à augmenter) et une logique de sortie ((la fluctuation atteint la valeur maximale), évitant le jugement subjectif.

  4. Très adaptable: Grâce à l’optimisation des paramètres, la stratégie peut s’adapter à différents environnements de marché et variétés de transactions. En particulier, les seuils de zone de calme et de zone de chaos du VMI peuvent être ajustés en fonction des caractéristiques du marché.

  5. Intégration de la gestion des risques: La stratégie intègre la gestion des positions (par défaut, 15% des fonds utilisés dans le compte) et la restriction des transactions inversées (pyramiding = 0), ce qui aide à contrôler les risques.

  6. Aide visuelle: La stratégie trace les lignes de tendance du VWPC et les signaux d’entrée/sortie sur le graphique, ce qui permet aux traders de comprendre de manière intuitive l’état du marché et la logique de la stratégie.

  7. Une efficacité de calcul élevée: Grâce à l’utilisation de fonctions intégrées telles que ta.rma et ta.barssince, la stratégie est plus efficace sur le plan du calcul et convient aux applications de négociation en temps réel.

Risque stratégique

Bien que cette stratégie présente de nombreux avantages, elle comporte les risques suivants:

  1. Risque de fausse percée: Il peut y avoir une situation où le marché recule rapidement après une augmentation de volatilité brève, ce qui entraîne un faux signal. La solution est d’ajuster le seuil de zone de calme VMI ou d’augmenter les conditions de confirmation.

  2. Le retard dans le jugement des tendances:Le VWPC peut être un indicateur de tendance en retard et ne peut pas réagir rapidement en cas de changement brusque du marché. Un jugement auxiliaire peut être envisagé en combinaison avec un indicateur de dynamique à court terme.

  3. Paramètre Sensibilité: les performances stratégiques sont sensibles aux paramètres de réglage (en particulier la longueur et le seuil du VMI), et différentes combinaisons de paramètres peuvent être nécessaires dans différents environnements de marché. Il est recommandé d’optimiser les paramètres en répondant aux différents environnements de marché.

  4. Incertitude sur la fréquence des transactionsLa fréquence des signaux de négociation peut varier considérablement à différents stades du marché, ce qui affecte la rentabilité globale et le contrôle des retraits.

  5. Effets sur le coût des transactions: Bien que la stratégie prenne en compte la commission de négociation ((0.075%), dans les transactions réelles, les points de glissement et autres coûts de transaction peuvent encore affecter la performance de la stratégie.

  6. Dépendance au volume des transactionsL’indicateur VWPC dépend des données de volume de transactions, qui peuvent être inexactes ou peu fiables dans certains marchés ou périodes, ce qui affecte l’exactitude de l’indicateur.

Orientation de l’optimisation de la stratégie

L’analyse approfondie du code permet de proposer les orientations d’optimisation suivantes:

  1. Ajouter un filtre dynamiqueIl est possible d’introduire un mécanisme d’ajustement dynamique des seuils basé sur la volatilité historique, permettant aux seuils des zones de calme et des zones de chaos du VMI de s’ajuster automatiquement en fonction du niveau de volatilité du marché global, améliorant ainsi l’adaptabilité de la stratégie.

  2. Renforcement du mécanisme de confirmation des tendances: il est possible d’ajouter une confirmation de tendance à plusieurs périodes sur la base du VWPC, ou en combinaison avec d’autres indicateurs de tendance (comme l’indicateur directionnel ADX), pour améliorer la précision des jugements de tendance.

  3. Optimisation du mécanisme de sortieLes stratégies actuelles ne sont activées que lorsque le VMI atteint la zone de chaos. Vous pouvez envisager d’ajouter des niveaux de stop loss et de profit cible, ou une stratégie de stop loss dynamique basée sur la volatilité pour mieux contrôler le risque et bloquer les bénéfices.

  4. Augmenter le filtrage du volume des transactions: il est possible d’ajouter une condition de confirmation de volume de transaction et d’accéder à l’émission uniquement si le volume de transactions augmente, afin d’éviter de négocier dans un environnement de faible liquidité.

  5. Ajouter un filtre temporel: certains marchés peuvent présenter des modèles de volatilité pendant une période donnée, il est possible d’ajouter des conditions de filtrage temporel afin d’éviter les périodes de négociation connues pour être inefficaces.

  6. Mécanisme d’adaptation des paramètresIl est possible de développer un mécanisme permettant d’ajuster automatiquement les paramètres en fonction de la performance récente du marché, afin que la stratégie puisse mieux s’adapter aux changements du marché.

  7. Optimisation de la gestion des fondsIl permet de gérer des positions dynamiques basées sur la volatilité, d’ajuster la taille des transactions dans différents environnements de volatilité et d’équilibrer les risques et les gains.

Résumer

La stratégie de croisement de tendance pondérée par la volatilité et la capacité est un système de trading quantitatif combinant l’analyse de la volatilité et le suivi des tendances. Elle capture l’entrée du marché à partir du moment où il passe de calme à actif à l’aide de l’indicateur VMI et la sortie lorsque la volatilité atteint son apogée.

Cependant, la stratégie est également confrontée à des défis tels que les fausses ruptures de volatilité, les retards de jugement de la tendance et la sensibilité des paramètres. La robustesse et l’adaptabilité de la stratégie peuvent être encore améliorées par l’introduction d’ajustements dynamiques des seuils, l’amélioration des mécanismes de confirmation de la tendance, l’optimisation de la logique de sortie et la réalisation de paramètres d’adaptation.

En fin de compte, la stratégie fournit un cadre de négociation basé sur les fluctuations et les cycles de volatilité du marché, adapté à une variété d’environnements de marché, mais les traders doivent encore optimiser les paramètres et ajuster la stratégie en fonction des variétés de transactions et des caractéristiques du marché pour obtenir des résultats optimaux.

Code source de la stratégie
/*backtest
start: 2024-07-14 00:00:00
end: 2025-07-12 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":200000}]
*/

// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TiamatCrypto

//@version=5
strategy("Market Entropy Strategy V2.5", 
         overlay=true, 
         initial_capital=10000, 
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=15, // Slightly more aggressive allocation
         commission_type=strategy.commission.percent,
         commission_value=0.075,
         pyramiding=0) // Allow only one trade in one direction

// --- General Settings ---
trade_direction = input.string("Both", "Trade Direction", options=["Long", "Short", "Both"], group="General Settings")

// --- Inputs for Optimization ---
// VMI Settings
vmi_length = input.int(14, "VMI Length", group="VMI Settings")
atr_period = input.int(10, "ATR Period for VMI", group="VMI Settings")
vmi_calm_zone = input.int(25, "VMI Calm Zone (Entry Level)", group="VMI Settings", step=5)
vmi_chaos_zone = input.int(85, "VMI Chaos Zone (Exit Level)", group="VMI Settings", step=5)

// VWPC Settings
vwpc_length = input.int(50, "VWPC Filter Length", group="VWPC Trend Filter")
setup_lookback = input.int(10, "How far to look for 'Armed' (candles)", group="Entry Logic")

// --- Indicator #1: Volatility Momentum Index (VMI) ---
current_atr = ta.atr(atr_period)
atr_change = current_atr - current_atr[1]
up_accel = atr_change > 0 ? atr_change : 0
down_accel = atr_change < 0 ? -atr_change : 0
avg_up_accel = ta.rma(up_accel, vmi_length)
avg_down_accel = ta.rma(down_accel, vmi_length)
rs_vmi = avg_down_accel == 0 ? 0 : avg_up_accel / avg_down_accel
vmi = avg_down_accel == 0 ? 100 : avg_up_accel == 0 ? 0 : 100 - (100 / (1 + rs_vmi))

// --- Indicator #2: Volume-Weighted Price Center (VWPC) ---
// Function to calculate VWPC
f_vwpc(length) =>
    sum_price_volume = 0.0
    sum_volume = 0.0
    // We use the typical price, which better represents the candle
    typical_price = (high + low + close) / 3
    for i = 0 to length - 1
        sum_price_volume += typical_price[i] * nz(volume[i])
        sum_volume += nz(volume[i])
    sum_volume == 0 ? typical_price : sum_price_volume / sum_volume

vwpc = f_vwpc(vwpc_length)

// --- Strategy Logic ---

// Trend Definition
is_uptrend = close > vwpc
is_downtrend = close < vwpc

// Phase 1: "Armed" Condition (Setup)
// We check if VMI WAS in the calm zone in the recent past
was_calm_recently = ta.barssince(vmi < vmi_calm_zone) < setup_lookback

// Phase 2: "Fire" Condition (Trigger)
// VMI is currently crossing the Calm Zone upwards
trigger_fire = ta.crossover(vmi, vmi_calm_zone)

// Combination for ENTRY
buy_signal = is_uptrend and was_calm_recently and trigger_fire
sell_signal = is_downtrend and was_calm_recently and trigger_fire

// Condition for EXIT ("Exhaustion")
// The same condition applies for both long and short - peak chaos
exit_signal = ta.crossover(vmi, vmi_chaos_zone)

// --- Executing Orders ---
// Entry Conditions
allow_longs = trade_direction == "Long" or trade_direction == "Both"
allow_shorts = trade_direction == "Short" or trade_direction == "Both"

// Entries
if (buy_signal and allow_longs)
    strategy.entry("Buy", strategy.long, comment="Enter LONG (Armed->Fire)")

if (sell_signal and allow_shorts)
    strategy.entry("Sell", strategy.short, comment="Enter SHORT (Armed->Fire)")

// Exits
if (strategy.position_size > 0 and exit_signal)
    strategy.close("Buy", comment="Exit LONG (Chaos)")

if (strategy.position_size < 0 and exit_signal)
    strategy.close("Sell", comment="Exit SHORT (Chaos)")

// --- Plotting on the chart for visual inspection ---
plot(vwpc, "VWPC Center of Gravity", color=color.new(color.yellow, 0), linewidth=2)
plotshape(buy_signal and allow_longs, "LONG Entry", shape.labelup, location.belowbar, color=color.new(color.aqua, 0), text="ENTRY ↑", textcolor=color.white, size=size.small)
plotshape(sell_signal and allow_shorts, "SHORT Entry", shape.labeldown, location.abovebar, color=color.new(color.fuchsia, 0), text="ENTRY ↓", textcolor=color.white, size=size.small)

// Plotting the exit signal for a better overview
exit_marker_y_pos = strategy.position_size > 0 ? high : low
plotshape(series=(exit_signal and strategy.position_size != 0 ? exit_marker_y_pos : na), title="Exit", style=shape.xcross, location=location.absolute, color=color.new(color.orange, 0), size=size.tiny, text="END")