Estratégia de opções sintéticas intradiárias baseada na sessão VWMA: sistema de negociação adaptável para sinais longos e curtos

VWMA ATM IST
Data de criação: 2025-02-24 10:07:39 última modificação: 2025-02-27 16:46:17
cópia: 0 Cliques: 354
2
focar em
319
Seguidores

Estratégia de opções sintéticas intradiárias baseada na sessão VWMA: sistema de negociação adaptável para sinais longos e curtos Estratégia de opções sintéticas intradiárias baseada na sessão VWMA: sistema de negociação adaptável para sinais longos e curtos

Visão geral

Trata-se de uma estratégia de negociação intradiária baseada em uma média móvel ponderada por volume de transação (VWMA), que permite a operação bidirecional de múltiplos espaços por meio de uma carteira de opções sintéticas. O núcleo da estratégia é o indicador VWMA recalculado a cada dia de negociação, que gera um sinal de negociação com base na posição relativa do preço em relação ao VWMA e que automaticamente se equilibra antes do fechamento.

Princípio da estratégia

A lógica central da estratégia baseia-se nos seguintes pontos:

  1. Usando VWMA de reset diário como indicador de tendência dinâmica
  2. Quando o preço ultrapassa o VWMA acima, construindo uma carteira de opções de baixa ((comprar uma opção de baixa + vender uma opção de baixa))
  3. Construir uma carteira de baixa quando o preço cai abaixo da VWMA (comprar uma opção de baixa + vender uma opção de baixa)
  4. Assegurar que todos os detentores de posições em equilíbrio sejam obrigados a fechar as suas posições às 15:29 UTC.
  5. Introdução de variáveis de hasExited para controlar a frequência de adição de estoque, evitando o excesso de negociação
  6. Aumento de posições em pirâmide para apoiar a quebra de equilíbrio

Vantagens estratégicas

  1. Dinâmico e adaptável - a reformulação diária do VWMA garante que os indicadores reflitam sempre a situação atual do mercado
  2. Equilíbrio de risco e ganhos - mantendo o potencial de lucro ao mesmo tempo que limita o risco por meio de uma carteira de opções sintéticas
  3. Disciplina de negociação rigorosa - com mecanismos claros de entrada, adição e eliminação obrigatória de posições
  4. posicionamento de tamanho flexível - suporte a gestão de posições em percentagem
  5. Lógicas de operação claras - condições de geração de sinais simples e intuitivas

Risco estratégico

  1. Risco de choque do mercado - a ruptura do VWMA pode gerar falsos sinais frequentes no mercado de ativos
  2. Risco de brecha - flutuações significativas durante a noite podem levar a maiores perdas
  3. Risco de portfólio de opções - Opções sintéticas com desvio delta neutro
  4. Execução de pontos de deslizamento - transações de alta frequência podem enfrentar grandes pontos de deslizamento
  5. Eficiência de capital - O custo de transação aumenta com a obrigação de liquidação diária

Direção de otimização da estratégia

  1. Introdução de filtros de taxa de flutuação para ajustar os parâmetros de política em ambientes de alta taxa de flutuação
  2. Aumentar os indicadores de confirmação de tendências e reduzir os prejuízos causados por brechas falsas
  3. Optimizar a estrutura do portfólio de opções, como considerar a introdução de estratégias de diferença de preço vertical
  4. Realizar um ciclo VWMA adaptável, ajustado de acordo com a dinâmica do mercado
  5. Adicionar mais indicadores de controle de risco, como limites máximos de retirada

Resumir

Trata-se de uma estratégia de negociação intradiária estruturada e rigorosamente lógica. Capta tendências de curto prazo por meio de indicadores VWMA, negocia em combinação com portfólios de opções sintéticas e possui um bom mecanismo de controle de risco. O espaço de otimização da estratégia reside principalmente na redução de falsos sinais, na melhoria da eficiência de execução e no aperfeiçoamento do sistema de gerenciamento de risco.

Código-fonte da estratégia
/*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.")