Algos

Skew

Estratégia de três pernas para expressar uma visão de valor relativo entre duas opções do mesmo ativo-objeto, com o próprio ativo-objeto servindo como hedge de delta (ou vega). O algo gerencia as três pernas juntas para que a posição combinada mantenha o skew de volatilidade desejado.

Quando usar

  • Você está operando um par de volatilidade no mesmo ativo-objeto e quer a posição delta-neutra ou vega-neutra.
  • Quer que a plataforma coordene as execuções para que a estrutura permaneça balanceada.
  • Está protegendo risco direcional enquanto expressa uma visão sobre o diferencial relativo de preço entre duas opções.

Início rápido

from investflex import AsyncInvestflexClient
from investflex.models.algos import Skew
from investflex.models.common import DeltaType, ExecutionLimit, ExecutionMode, Side

skew = Skew(
    name="petr-skew",
    init_time="09:00:00",
    end_time="17:00:00",
    trigger_value=2.0,                # limiar do vol-spread (%)
    execution_limit=ExecutionLimit.MARKET,
    execution_limit_value=200.0,
    delta_type=DeltaType.FIXED,
    execution_mode=ExecutionMode.OPTION_ARBITRAGE,
    delta_fixed_value_1=0.001,
    delta_fixed_value_2=0.001,
    interest_rate=6.5,
    days_to_expiration_1=1,
    days_to_expiration_2=1,
    legs=[
        dict(symbol="PETRL215", side=Side.BUY,  quantity=10000,
             alloc_account="YOUR_ACCOUNT", resting="Y", max_clip_size=100),
        dict(symbol="PETRL102", side=Side.SELL, quantity=10000,
             alloc_account="YOUR_ACCOUNT", resting="Y", max_clip_size=100),
        dict(symbol="PETR4",    side=Side.BUY,  quantity=10000,
             alloc_account="YOUR_ACCOUNT", resting="N", max_clip_size=100),
    ],
)

async with AsyncInvestflexClient.from_env() as client:
    handle = await client.algos.create(skew)
    print(handle.clord_id, handle.status.name)

Parâmetros

Estratégia

Campo Tipo Obrigatório Editável Padrão Observações
name str sim não Rótulo.
init_time HH:MM:SS sim não Início da janela.
end_time HH:MM:SS sim não Fim da janela.
expire_date YYYYMMDD não não 20380101 Validade da ordem-dia.
text str não não Comentário livre.
basket_id str não não Chave opcional de agrupamento.
trigger_value número sim sim Limiar do spread de volatilidade, em %.
execution_limit ExecutionLimit sim não ExecutionLimit.MARKET (fechamento em desbalanço), ExecutionLimit.TOLERANCE_PER_LEG.
execution_limit_value número sim não Tolerância em BRL acima do spread.
delta_type DeltaType sim não DeltaType.FIXED, DeltaType.AUTOMATIC.
execution_mode ExecutionMode sim não ExecutionMode.OPTION_ARBITRAGE, ZERO_DELTA_BY_ASSET, ZERO_DELTA_BY_OPTION, ZERO_VEGA_NO_DELTA_HEDGE, ZERO_VEGA_DELTA_HEDGE.
delta_fixed_value_1 número condicional não Delta fixo da opção 1 (usado quando execution_mode ∈ {ExecutionMode.OPTION_ARBITRAGE, ExecutionMode.ZERO_VEGA_NO_DELTA_HEDGE} ou delta_type=DeltaType.FIXED).
delta_fixed_value_2 número condicional não Delta fixo da opção 2.
interest_rate número não não Taxa de juros anual (%) usada no cálculo de delta.
days_to_expiration_1 int não não Dias até o vencimento da opção 1.
days_to_expiration_2 int não não Dias até o vencimento da opção 2.

Pernas

Exatamente três pernas, nesta ordem: opção 1, opção 2, ativo-objeto.

Campo Tipo Obrigatório Editável Observações
symbol str sim não Código do instrumento.
side Side.BUY / Side.SELL sim não
quantity int sim sim Quantidade total (> 0).
alloc_account str sim não Conta da corretora.
security_exchange str não não Padrão XBSP.
resting "Y" / "N" não sim Tipicamente Y nas opções, N no ativo-objeto.
max_clip_size int não sim Maior pedaço visível por ordem filha.

Editando um Skew em execução

await client.algos.edit(handle.clord_id, TriggerValue=0.04)

Editável: TriggerValue.

Comandos de ciclo de vida

await client.algos.commands.cancel(handle.clord_id)
await client.algos.commands.suspend(handle.clord_id)
await client.algos.commands.resume(handle.clord_id)

Notas de comportamento

  • A terceira perna (ativo-objeto) é o hedge — sua quantity deve ser dimensionada pelos deltas das opções, não como exposição direta.
  • execution_mode escolhe o estilo de hedge; modos 4/5 miram neutralidade de vega e requerem entradas de sensibilidade do par de opções (delta_fixed_value_*, interest_rate, days_to_expiration_*).
  • execution_limit_value é a tolerância em BRL que a engine aceita antes de forçar o rebalanceamento via ativo-objeto.