Algos

Arbitragem Inteiro/Fracionário

Captura o spread entre o lote-padrão (inteiro) e o fracionário do mesmo ativo, operando ambos os lados ao mesmo tempo quando a diferença de preço for lucrativa.

Quando usar

  • Você quer aproveitar o basis entre inteiro e fracionário em ações brasileiras.
  • Pode manter estoque nos dois tamanhos de lote.
  • Precisa que a plataforma dispare as duas pernas em sincronia para evitar risco de perna.

Status no SDK. Roadmap; o SDK ainda não traz um modelo tipado ArbIntFrac. O envelope abaixo é o canônico SniperArbStrategy aceito pelo engine.

Parâmetros

Strategy (comuns — ver 01-common-fields.md)

Campo wire Tipo Obrigatório Notas
Name str sim Nome de exibição.
InitTime / EndTime HH:MM:SS sim Janela.
ExpireDate YYYYMMDD não Padrão 20380101.
BasketID str não Chave de cesta opcional.

CustomParameters

Campo wire Tipo Obrigatório Editável Notas
Variation double sim sim Basis mínimo lucrativo (diferença de preço) para disparar.
QuantityLimit double sim sim Quantidade total máxima ao longo da vida do algo.
BypassFirewall Y / N não não Padrão N.
InitSuspended Y / N não não Padrão N.

SniperType

Campo wire Notas
SniperType 1 passivo, 2 ativo, 3 ambos. Ver 02-enums.md.

Pernas (duas)

Par de pernas: o ativo inteiro (ex. PETR4) e o fracionário (ex. PETR4F). Cada uma com LegSymbol, LegSide, LegQuantity, ILegAllocAccount, LegSecurityExchange, LegOrdType, LegMaxClipSize — ver 01-common-fields.md.

Edição

Editáveis: Variation, QuantityLimit, SniperType.

Comandos de lifecycle

cancel, suspend, resume. Ver 04-edit-and-commands.md.

Notas de comportamento

  • O algo só dispara quando as duas pernas podem ser executadas a preços que rendam pelo menos Variation; caso contrário fica parado.
  • QuantityLimit limita a posição acumulada considerando os dois lados, não por perna.
  • Use SniperType=1 (passivo) para esperar alguém cruzar suas ordens em descanso; 2 (ativo) para tomar quando o basis aparecer.