Stratégie d'option synthétique intraday basée sur la session VWMA : système de trading adaptatif pour les signaux longs et courts

VWMA ATM IST
Date de création: 2025-02-24 10:07:39 Dernière modification: 2025-02-27 16:46:17
Copier: 0 Nombre de clics: 354
2
Suivre
319
Abonnés

Stratégie d’option synthétique intraday basée sur la session VWMA : système de trading adaptatif pour les signaux longs et courts Stratégie d’option synthétique intraday basée sur la session VWMA : système de trading adaptatif pour les signaux longs et courts

Aperçu

Il s’agit d’une stratégie de trading intraday basée sur des moyennes mobiles pondérées en volume de transaction (VWMA) permettant des opérations bidirectionnelles multi-zones via un portefeuille d’options synthétiques. Le cœur de la stratégie est l’indicateur VWMA recalculé chaque jour de négociation, générant un signal de négociation en fonction de la position relative du prix par rapport à la VWMA et équilibrant automatiquement la position avant la clôture. La stratégie dispose d’un bon mécanisme de contrôle des risques, comprenant la gestion des positions et des limites de fréquence de négociation.

Principe de stratégie

La logique fondamentale de la stratégie repose sur les points suivants :

  1. Utilisation de VWMA réinitialisé quotidiennement comme indicateur de tendance dynamique
  2. Lorsque le prix dépasse la VWMA, construisez un portefeuille de bullish ((acheter une option bullish + vendre une option bearish)
  3. Construire un portefeuille baissier lorsque le prix est en dessous de la VWMA (acheter une option baissière + vendre une option baissière)
  4. La clôture obligatoire de toutes les positions à 15h29 IST
  5. Introduction d’une variable hasExited pour contrôler la fréquence de la prise de position et éviter les transactions excessives
  6. Le soutien à la hausse pyramidale des positions lors d’une rupture de synchronisation

Avantages stratégiques

  1. Dynamique et adaptabilité - les réajustements quotidiens de la VWMA assurent que l’indicateur reflète toujours la situation actuelle du marché
  2. Risque-bénéfice équilibre - limiter les risques tout en conservant le potentiel de profit grâce à un portefeuille d’options synthétiques
  3. Discipline de négociation stricte - avec des mécanismes d’entrée, de prise et de levée de position clairs
  4. position sizing flexible - prise en charge de la gestion des pourcentages de position
  5. La logique d’opération est claire - les conditions de génération du signal sont simples et intuitives

Risque stratégique

  1. Risque de choc des marchés - la rupture du VWMA pourrait générer de fréquents faux signaux sur les marchés à plat
  2. Risque de faille - les fluctuations massives du jour au lendemain peuvent entraîner des pertes plus importantes
  3. Risque de portefeuille d’options - Options synthétiques présentant un écart de delta neutre
  4. Points de glissement d’exécution - les transactions à haute fréquence peuvent faire face à des points de glissement plus importants
  5. Efficacité des fonds - La clôture obligatoire quotidienne augmente le coût des transactions

Orientation de l’optimisation de la stratégie

  1. Introduction d’un filtre de volatilité pour ajuster les paramètres de stratégie dans un environnement à forte volatilité
  2. Augmenter les indicateurs de confirmation de tendance et réduire les pertes causées par les fausses percées
  3. Optimiser la structure du portefeuille d’options, par exemple en envisageant d’introduire une stratégie de différence de prix verticale
  4. Réalisation d’un cycle VWMA qui s’adapte et s’adapte en fonction de la dynamique du marché
  5. Ajout d’indicateurs de contrôle des risques, tels que la limite maximale de retrait

Résumer

Il s’agit d’une stratégie de négociation intraday structurée et logiquement rigoureuse. Elle capte les tendances à court terme à l’aide des indicateurs VWMA, est négociée en combinaison avec un portefeuille d’options synthétiques et dispose d’un bon mécanisme de contrôle des risques. L’espace d’optimisation de la stratégie réside principalement dans la réduction des faux signaux, l’amélioration de l’efficacité de l’exécution et l’amélioration du système de gestion des risques.

Code source de la stratégie
/*backtest
start: 2025-02-16 00:00:00
end: 2025-02-23 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy("Session VWMA Synthetic Options Strategy", overlay=true, initial_capital=100000, 
     default_qty_type=strategy.percent_of_equity, default_qty_value=10, pyramiding=10, calc_on_every_tick=true)

//──────────────────────────────
// Session VWMA Inputs
//──────────────────────────────
vwmaLen   = input.int(55, title="VWMA Length", inline="VWMA", group="Session VWMA")
vwmaColor = input.color(color.orange, title="VWMA Color", inline="VWMA", group="Session VWMA", tooltip="VWMA resets at the start of each session (at the opening of the day).")

//──────────────────────────────
// Session VWMA Calculation Function
//──────────────────────────────
day_vwma(_start, s, l) =>
    bs_nd = ta.barssince(_start)
    v_len = math.max(1, bs_nd < l ? bs_nd : l)
    ta.vwma(s, v_len)

//──────────────────────────────
// Determine Session Start
//──────────────────────────────
// newSession becomes true on the first bar of a new day.
newSession = ta.change(time("D")) != 0

//──────────────────────────────
// Compute Session VWMA
//──────────────────────────────
vwmaValue = day_vwma(newSession, close, vwmaLen)
plot(vwmaValue, color=vwmaColor, title="Session VWMA")

//──────────────────────────────
// Define Signal Conditions (only on transition)
//──────────────────────────────
bullCond = low > vwmaValue      // Bullish: candle low above VWMA
bearCond = high < vwmaValue     // Bearish: candle high below VWMA

// Trigger signal only on the bar where the condition first becomes true
bullSignal = bullCond and not bullCond[1]
bearSignal = bearCond and not bearCond[1]

//──────────────────────────────
// **Exit Condition at 15:29 IST**
//──────────────────────────────
sessionEnd = hour == 15 and minute == 29

// Exit all positions at 15:29 IST
if sessionEnd
    strategy.close_all(comment="Closing all positions at session end")

//──────────────────────────────
// **Trade Control Logic**
//──────────────────────────────
var bool hasExited = true  // Track if an exit has occurred since last entry

// Reset exit flag when a position is exited
if strategy.position_size == 0
    hasExited := true

//──────────────────────────────
// **Position Management: Entry & Exit**
//──────────────────────────────
if newSession
    hasExited := true  // Allow first trade of the day

// On a bullish signal: 
//   • If currently short, close the short position and then enter long
//   • Otherwise, add to any existing long position **only if an exit happened before**
if bullSignal and (hasExited or newSession)
    if strategy.position_size < 0
        strategy.close("Short", comment="Exit Short on Bull Signal")
        strategy.entry("Long", strategy.long, comment="Enter Long: Buy Call & Sell Put at ATM")
    else
        strategy.entry("Long", strategy.long, comment="Add Long: Buy Call & Sell Put at ATM")
    hasExited := false  // Reset exit flag

// On a bearish signal: 
//   • If currently long, close the long position and then enter short
//   • Otherwise, add to any existing short position **only if an exit happened before**
if bearSignal and (hasExited or newSession)
    if strategy.position_size > 0
        strategy.close("Long", comment="Exit Long on Bear Signal")
        strategy.entry("Short", strategy.short, comment="Enter Short: Buy Put & Sell Call at ATM")
    else
        strategy.entry("Short", strategy.short, comment="Add Short: Buy Put & Sell Call at ATM")
    hasExited := false  // Reset exit flag

//──────────────────────────────
// **Updated Alert Conditions**
//──────────────────────────────
// Alerts for valid trade entries
alertcondition(bullSignal and (hasExited or newSession), 
     title="Long Entry Alert", 
     message="Bullish signal: BUY CALL & SELL PUT at ATM. Entry allowed.")

alertcondition(bearSignal and (hasExited or newSession), 
     title="Short Entry Alert", 
     message="Bearish signal: BUY PUT & SELL CALL at ATM. Entry allowed.")