Stratégie d'inversion de la valeur des contrats à terme basée sur la règle des 80 %

ETH VOL POC VAH VAL TPO
Date de création: 2025-07-17 15:50:07 Dernière modification: 2025-07-17 15:50:07
Copier: 0 Nombre de clics: 226
2
Suivre
319
Abonnés

Stratégie d’inversion de la valeur des contrats à terme basée sur la règle des 80 % Stratégie d’inversion de la valeur des contrats à terme basée sur la règle des 80 %

Aperçu

La stratégie fonctionne sur une période de temps bien définie de négociation de futures ETH, lorsque le prix réentre dans la zone de valeur de la veille et reste dans cette zone suffisamment longtemps, le système déclenche un signal de négociation, principalement pour le point de contrôle des prix (Point of Control, POC), tout en suivant le parcours complet de la zone de valeur pour l’analyse.

Principe de stratégie

La stratégie est basée sur le principe de la régression de la valeur moyenne des tendances du marché, en particulier sur la relation entre les prix et les zones de valeur. La logique centrale de la stratégie comprend:

  1. Définition de la période de transaction: La stratégie est fixée à la fenêtre réelle de 22 heures pour les futures ETH (de 17h00 à 15h00 heure du Pacifique) et prend en charge le réglage du fuseau horaire mondial. Cela garantit que la stratégie fonctionne dans le bon environnement de marché.

  2. Calcul des zones de valeurLe système calcule automatiquement les points de hauteur de la zone de valeur (VAH), les points de basse de la zone de valeur (VAL) et les points de contrôle des prix (POC):

    • La zone de valeur est définie comme 68% de la différence entre les hauts et les bas de la journée (la zone de différence standard)
    • VAH et VAL calculés à partir des hauts et des bas et de la gamme de zones de valeur
    • POC est calculé comme ((le prix le plus élevé + le prix le plus bas + le prix de clôture) / 3
  3. Mécanisme de confirmation du signal: Le prix doit revenir dans la zone de valeur et rester dans la zone pendant au moins 45 minutes (les 3 lignes K sur le graphique de 15 minutes) pour confirmer le signal d’entrée. Cette exigence assure la véracité de l’intention de renversement des prix.

  4. Filtrage de la journée en vigueur:

    • Validité pour plusieurs jours: prix de clôture du jour inférieur au VAL
    • Jour de clôture de la journée avec un cours supérieur au VAH
  5. Conditions de déclenchement:

    • Signaux multiples: pendant plusieurs jours d’efficacité, le prix est revenu en dessous de la zone de valeur, en gardant les 3 lignes K dans la zone, et a retesté le VAL
    • Signaux de tête vide: le jour de la pause effective, le prix est revenu dans la zone de valeur par le haut, en gardant les 3 lignes K dans la zone et en retraçant le VAH
  6. Stratégie de sortieL’objectif principal est de sortir lorsque le prix atteint le POC, ce qui correspond à l’idée centrale de la régression de la valeur moyenne.

Avantages stratégiques

  1. Statistiques de baseLa stratégie est basée sur les zones de valeur et la loi des 80%, qui ont toutes deux une base statistique solide. Les zones de valeur représentent les zones où 68% de l’activité des prix se produit, ce qui est similaire à une variance standard de la distribution normale.

  2. Définition précise de la fenêtre de transactionLa stratégie consiste à utiliser une véritable fenêtre de 22 heures d’ETH, plutôt qu’une simple tranche de jours, ce qui reflète plus précisément la structure du marché.

  3. Flexible avec le fuseau horaireLes traders du monde entier peuvent adapter leurs stratégies en fonction de leur emplacement géographique pour que le système fonctionne correctement dans n’importe quel fuseau horaire.

  4. Confirmation du signal strict: Le fait de demander au prix de maintenir au moins 3 lignes K dans la zone de valeur pour confirmer un signal réduit considérablement la possibilité d’un faux signal.

  5. Fixez des objectifs précis: L’utilisation du POC comme cible principale offre des avantages évidents, conformes aux caractéristiques de régression de la moyenne courantes sur les marchés à terme.

  6. Mécanisme de double vérification: demande non seulement la réentrée des prix dans la zone de valeur, mais aussi la remise en question des frontières ((VAL ou VAH), ce qui augmente la fiabilité du signal.

  7. Mode de couverture manuelle: Lorsque la logique automatique est insuffisante pour faire face à des conditions de marché particulières, la stratégie permet aux traders d’utiliser des niveaux de zone de valeur définis manuellement.

  8. Fonction de démarrage: Fournit des labels de diagnostic détaillés pour aider à l’élaboration de stratégies et à les tester à l’avenir.

Risque stratégique

  1. Retour à la valeur moyenneBien que la règle des 80% soit valable dans de nombreuses situations, il peut arriver que des tendances puissantes se produisent sur le marché et empêchent le retour des prix au POC. Pour atténuer ce risque, il est possible d’ajouter un filtre de tendance ou de définir un point de rupture.

  2. Paramètre Sensibilité: 3 lignes de K ((45 minutes) est un paramètre clé. Une confirmation trop courte peut entraîner une admission prématurée, et une confirmation trop longue peut entraîner une perte d’opportunité. Il est recommandé de tester différents réglages de temps de confirmation dans différentes conditions de marché.

  3. Dépendance à l’environnement de marché: Cette stratégie fonctionne le mieux dans les marchés à basse fréquence, mais peut être moins efficace dans des environnements à forte tendance ou à forte volatilité. L’ajout d’un filtre d’environnement de marché devrait être envisagé.

  4. Le risque du moment: La performance d’une stratégie peut être influencée par la période de négociation choisie (New York, Londres, Tokyo ou toute la journée). Il est recommandé d’analyser la performance historique des différentes périodes de négociation et de choisir la période la plus optimale.

  5. Limitations de la méthode de calcul des zones de valeur: L’utilisation d’une fourchette fixe de 68% et de calculs simplifiés de POC peut ne pas refléter avec précision la répartition de la valeur réelle de certains marchés. Il peut être plus précis de considérer l’utilisation d’une méthode de calcul des zones de valeur basée sur le volume des transactions.

  6. Manque de mécanisme de préventionLes stratégies actuelles manquent d’un mécanisme de stop-loss clair, ce qui peut entraîner de graves pertes dans des conditions de marché extrêmes. Il est recommandé d’imposer des paramètres de stop-loss basés sur l’ATR ou un pourcentage fixe.

Orientation de l’optimisation de la stratégie

  1. Conditions de confirmation dynamique: La stratégie actuelle utilise une ligne K fixe de 3 lignes comme condition de confirmation, ce paramètre peut être envisagé pour être ajusté en fonction de la volatilité du marché. Un temps de confirmation plus long peut être nécessaire pendant les périodes de forte volatilité et plus court pendant les périodes de faible volatilité.

  2. Région de valeur basée sur le volume des transactionsLe calcul de la zone de valeur actuelle est une méthode simplifiée basée sur le prix. Il peut être amélioré pour une analyse basée sur le nombre de transactions (TPO) ou une distribution de transactions (Volume Profile), ce qui reflète plus précisément la zone de valeur consensuelle des acteurs du marché.

  3. Confirmation de plusieurs périodesLes signaux de la règle de 80% de la bonne marche des transactions, combinés à la direction de la tendance sur un plus grand laps de temps, peuvent filtrer les signaux de contre-courant et améliorer le taux de réussite de la stratégie.

  4. Objectifs personnalisésOn peut envisager de définir des objectifs dynamiques en fonction de la volatilité du marché, par exemple en définissant des objectifs plus éloignés (comme le VAH ou le VAL) dans des marchés à forte volatilité.

  5. Filtre de fluctuation: Ajout d’ATR ou d’autres indicateurs de volatilité comme condition de filtrage pour éviter de négocier dans des environnements de marché extrêmement bas ou extrêmement volatiles.

  6. Optimiser le réglage de la période: Analyse approfondie de la performance stratégique des différents fuseaux horaires et heures de négociation afin de trouver la meilleure combinaison de heures de négociation.

  7. Système d’arrêt intelligent: Mise en œuvre d’une logique d’arrêt intelligente, par exemple un arrêt basé sur des points de support/résistance ou un arrêt de suivi basé sur des fluctuations de prix, pour mieux gérer le risque.

  8. Évaluation de l’intensité du signal: Développer un système de notation de la qualité des signaux, combinant la force de réentrée des prix, la caractéristique de la ligne K confirmée et d’autres facteurs du marché, en attribuant à chaque signal une note de force pour déterminer la taille de la position.

Résumer

La stratégie de retournement de zone de valeur à terme basée sur la règle des 80% est un système de négociation quantitative soigneusement conçu pour capturer les occasions de retournement de prix dans la zone de valeur. Il fournit aux traders une méthode systématique pour appliquer la règle classique des 80% grâce à un mécanisme de confirmation de signal strict, une définition de période précise et un objectif clairement défini.

Les principaux avantages de la stratégie résident dans sa base statistique, ses exigences strictes en matière de confirmation de signaux et ses options de configuration flexibles. Cependant, il existe également des risques tels que l’échec de la régression moyenne, la sensibilité des paramètres et la dépendance aux conditions du marché. La robustesse et l’adaptabilité de la stratégie peuvent être considérablement améliorées par la mise en œuvre de mesures d’optimisation telles que les conditions de confirmation dynamiques, le calcul de la zone de valeur en fonction du volume de transactions, la confirmation de plusieurs délais et la définition d’objectifs d’adaptation.

Pour les traders qui cherchent à appliquer des stratégies de rendement moyen sur les marchés à terme, ce système basé sur la règle des 80% offre un point de départ solide qui peut être personnalisé et optimisé davantage en fonction des préférences de risque personnelles et des perspectives du marché.

Code source de la stratégie
/*backtest
start: 2025-07-09 00:00:00
end: 2025-07-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_OKX","currency":"SOL_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/
// © dscottmuller

// === Update July 15, 2025 ===
// • Converted to strategy for backtesting
// • POC-based exits for precision targeting
// • Full move markers for research tracking
// • Global time zone input (default: America/Los_Angeles)

//@version=5
strategy("80% Rule Backtest", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === General Inputs ===
useAllMarkets    = input.bool(false, "Use 24-Hour Session (All Markets)")
sessionChoice    = input.string("New York", "Market Session", options=["New York", "London", "Tokyo"])
showSessionBox   = input.bool(false, "Highlight Selected Session")
enableSounds     = input.bool(false, "Enable Audible Alerts")
extendLines      = input.bool(true,  "Extend Lines Right")

// === Advanced Session Settings ===
group = "Advanced Session Settings"
showAutoLevels   = input.bool(true, "Show Auto-Calculated VAH/POC/VAL", group=group)
useManualLevels  = input.bool(false, "Use Manual VAH/POC/VAL", group=group)
manualVAH        = input.float(0.0, "Manual VAH", group=group)
manualVAL        = input.float(0.0, "Manual VAL", group=group)
manualPOC        = input.float(0.0, "Manual POC", group=group)
debugMode        = input.bool(false, "Enable Debug Mode", group=group)

// === Time Zone Selection ===
sessionTZ = input.string("America/Los_Angeles", "ETH Session Timezone",
 options=[
     "America/Los_Angeles",  // Default: Pacific Time
     "America/New_York", 
     "America/Chicago", 
     "America/Denver", 
     "Europe/London", 
     "Europe/Paris", 
     "Asia/Tokyo", 
     "Australia/Sydney"
 ], group=group)

// === Market Session Filter ===
nySession     = time(timeframe.period, "0930-1600", "America/New_York")
londonSession = time(timeframe.period, "0800-1630", "Europe/London")
tokyoSession  = time(timeframe.period, "0900-1500", "Asia/Tokyo")
allSession    = time(timeframe.period, "0000-0000")
inSession = useAllMarkets ? not na(allSession) : sessionChoice == "New York" ? not na(nySession) : sessionChoice == "London"   ? not na(londonSession) : sessionChoice == "Tokyo"    ? not na(tokyoSession) : false
bgcolor(showSessionBox and inSession ? color.new(color.blue, 90) : na)

// === ETH Session Window (22-Hour Futures) ===
ethStart = timestamp(sessionTZ, year, month, dayofmonth - 1, 17, 00)
ethEnd   = timestamp(sessionTZ, year, month, dayofmonth,     15, 00)
inEthWindow = time("30") >= ethStart and time("30") <= ethEnd

ethHigh  = inEthWindow ? high : na
ethLow   = inEthWindow ? low  : na
ethClose = inEthWindow ? close : na

extHigh  = ta.highest(ethHigh, 100)
extLow   = ta.lowest(ethLow, 100)
extClose = ta.valuewhen(not na(ethClose), ethClose, 0)

// === Value Area Calculations ===
vaRange = (extHigh - extLow) * 0.68
vah = extHigh - ((extHigh - extLow - vaRange) / 2)
val = extLow  + ((extHigh - extLow - vaRange) / 2)
poc = (extHigh + extLow + extClose) / 3

finalVAH = useManualLevels ? manualVAH : vah
finalVAL = useManualLevels ? manualVAL : val
finalPOC = useManualLevels ? manualPOC : poc

// === Signal Logic ===
validLongDay  = extClose < finalVAL
validShortDay = extClose > finalVAH

insideVA = close > finalVAL and close < finalVAH
reenteredFromBelow = validLongDay and close > finalVAL
reenteredFromAbove = validShortDay and close < finalVAH

var int barsInside = 0
barsInside := ta.change(time("D")) ? 0 : insideVA ? barsInside + 1 : 0
insideConfirmed = barsInside >= 3

retestVAL = validLongDay and low <= finalVAL
retestVAH = validShortDay and high >= finalVAH

longSignal  = inSession and validLongDay and reenteredFromBelow and insideConfirmed and retestVAL
shortSignal = inSession and validShortDay and reenteredFromAbove and insideConfirmed and retestVAH

longBar  = longSignal and not longSignal[1]
shortBar = shortSignal and not shortSignal[1]

// === Strategy Entries ===
if longBar
    strategy.entry("Long", strategy.long, comment="80% Long Signal")

if shortBar
    strategy.entry("Short", strategy.short, comment="80% Short Signal")

// === Strategy Exits at POC ===
strategy.exit("Long to POC",  from_entry="Long",  limit=finalPOC)
strategy.exit("Short to POC", from_entry="Short", limit=finalPOC)

// === Track Full Move (Visual Only) ===
longFullHit  = longBar and high >= finalVAH
shortFullHit = shortBar and low  <= finalVAL

plotshape(longFullHit,  title="Full Move Long",  location=location.abovebar, color=color.green, style=shape.triangleup, text="FULL")
plotshape(shortFullHit, title="Full Move Short", location=location.belowbar, color=color.red,   style=shape.triangledown, text="FULL")

// === Debug Diagnostics ===
if debugMode and (longBar or shortBar)
    debugText = (useManualLevels ? "Manual Mode" : "Auto Mode") +  " | TZ: " + sessionTZ +  " | 80% Triggered | barsInside: " + str.tostring(barsInside)

    label.new(bar_index, close, debugText, xloc.bar_index, longBar ? yloc.belowbar : yloc.abovebar, style=label.style_label_left, textcolor=color.white, size=size.small, color=color.new(color.gray, 70))