Algos

Market-If-Touched (MIT)

Fica inativa até o mercado tocar um preço-gatilho; uma vez acionada, envia imediatamente uma ordem comum (a mercado ou limitada).

Quando usar

  • Você quer entrar ou sair só se um nível de preço for atingido.
  • Está esperando um rompimento, recuo ou suporte para agir.
  • Não quer que a ordem fique visível no livro antes do gatilho.

Início rápido

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

mit = MIT(
    name="petr4-mit",
    init_time="09:00:00",
    end_time="17:00:00",
    price_limit=30.05,
    resting_price=0.01,
    resting_quantity=100,
    symbol="PETR4",
    side=Side.SELL,
    quantity=1000,
    account="YOUR_ACCOUNT",
    max_clip_size=100,
    min_clip_size=100,
)

async with AsyncInvestflexClient.from_env() as client:
    handle = await client.algos.create(mit)
    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 Teto da varredura agressiva disparada após o gatilho.
resting_price número sim sim Preço-gatilho; nível que o mercado deve tocar.
resting_quantity int sim sim Quantidade exposta no preço-gatilho (> 0).

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 não não Maior pedaço visível da varredura pós-gatilho.
min_clip_size int não não Menor pedaço visível da varredura pós-gatilho.
security_exchange str não não Padrão XBSP.

Editando um MIT em execução

await client.algos.edit(
    handle.clord_id,
    PriceLimit=29.00,
    RestingPrice=29.50,
    RestingQuantity=200,
)

Editáveis: PriceLimit, RestingPrice, RestingQuantity.

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 perna do gatilho usa uma ordem passiva minúscula para que o algo detecte um cruzamento sem mostrar tamanho relevante no livro.
  • Após disparada, a varredura não é desfeita. Cancele o algo antes do toque se mudar de ideia.
  • Se o end_time chegar antes do gatilho disparar, o algo é cancelado.