Ordens

API de Ordens (client.orders)

API direta de ordens para ordens simples a mercado ou limite que seguem diretamente para a bolsa, sem lógica de estratégia algorítmica. Use esta interface quando precisar apenas de uma ordem única; ela é mais simples do que encapsular uma ordem avulsa em uma estratégia.

Enviar uma ordem

import os, asyncio
from investflex import AsyncInvestflexClient
from investflex.models.common import OrdType, SecurityExchange, Side

async def main():
    async with AsyncInvestflexClient.from_env() as client:
        ack = await client.orders.create(
            symbol="PETR4",
            side=Side.BUY,
            qtty=100,
            ord_type=OrdType.LIMIT,
            price=20.00,
            account=os.environ["INVESTFLEX_ACCOUNT"],
            exchange=SecurityExchange.XBSP,  # ou SecurityExchange.XBMF para derivativos
            name="hello",            # opcional
            basket_id="b01",         # opcional
        )
        print("created", ack.order_id)

asyncio.run(main())

Alterar / cancelar

await client.orders.replace(ack.order_id, price=20.50, qtty=200)
await client.orders.cancel(ack.order_id)

replace exige pelo menos um dos campos price ou qtty.

Consultar

o = await client.orders.get(order_id)                 # ordem única
rows = await client.orders.list(limit=100, offset=0)  # coleção

Filtrar

from investflex.models.orders import OrderStatus

# O filtro aceita qualquer combinação dos quatro filtros abaixo.
rows = await client.orders.filter(
    order_status=OrderStatus.CANCELED,   # também aceita "4" ou 4
    account=os.environ["INVESTFLEX_ACCOUNT"],
    sponsor="flx",
    strategy_id="ABC123",                # id do algo pai
    limit=200,
    offset=0,
)

OrderStatus espelha os códigos da API:

Valor Significado
"0" NEW
"1" PARTIALLY_FILLED
"2" FILLED
"4" CANCELED
"5" REPLACED
"8" REJECTED
"C" EXPIRED

Quando usar uma estratégia

Use client.algos.create(...) apenas quando precisar de algo que a bolsa não executa nativamente: fatiamento de execução (TWAP, VWAP, Iceberg), entradas por gatilho (MIT, Skew, LongShort), grades (Gradiente) ou execução coordenada de múltiplas pernas (Spread, Troca Contínua, Financiamento). Para uma ordem única, a API direta de ordens desta página é a ferramenta mais adequada.