Algos

Iceberg

Mostra apenas uma fatia pequena de uma ordem maior por vez, renovando automaticamente a quantidade visível conforme ela é executada até completar o total.

Quando usar

  • Você quer esconder o tamanho real da ordem do livro.
  • Precisa trabalhar uma posição discretamente, sem sinalizar intenção.
  • Aceita ser passivo e ser executado no seu preço.

Início rápido

from investflex import AsyncInvestflexClient
from investflex.models.algos import Iceberg
from investflex.models.common import Side

ice = Iceberg(
    name="winq-ice",
    init_time="09:00:00",
    end_time="17:00:00",
    price_limit=30.05,
    fixed_open_quantity="N",
    symbol="WINQ19",
    side=Side.SELL,
    quantity=10000,
    account="YOUR_ACCOUNT",
    max_clip_size=100,
)

async with AsyncInvestflexClient.from_env() as client:
    handle = await client.algos.create(ice)
    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.
price_limit número sim sim Preço limite de cada fatia visível.
fixed_open_quantity "Y" / "N" não não Y mantém todas as fatias do mesmo tamanho; N permite que variem.

Perna

Perna única, passada de forma plana na estratégia.

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).
account str sim não Conta da corretora.
max_clip_size int sim sim Tamanho do pedaço visível no livro.
security_exchange str não não Padrão XBSP.

Editando um Iceberg em execução

await client.algos.edit(handle.clord_id, PriceLimit=30.20)

Editável: PriceLimit.

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

  • O livro vê max_clip_size; o restante de quantity fica retido no algo até a fatia visível ser executada.
  • Com fixed_open_quantity="Y" você mantém uma presença estável no livro, mas perde a prioridade tempo-preço a cada renovação.
  • Com fixed_open_quantity="N" a última fatia pode ser menor que max_clip_size se o saldo restante também for.