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())
import { InvestflexClient, OrdType, SecurityExchange, Side } from "@investflex/sdk";
const client = InvestflexClient.fromEnv();
const ack = await client.orders.create({
symbol: "PETR4",
side: Side.BUY,
qtty: 100,
ordType: OrdType.LIMIT,
price: 20.0,
account: process.env.INVESTFLEX_ACCOUNT!,
exchange: SecurityExchange.XBSP, // ou SecurityExchange.XBMF para derivativos
name: "hello", // opcional
basketId: "b01", // opcional
});
console.log("created", ack.orderId);
Alterar / cancelar
await client.orders.replace(ack.order_id, price=20.50, qtty=200)
await client.orders.cancel(ack.order_id)
await client.orders.replace(orderId, { price: 20.5, qtty: 200 });
await client.orders.cancel(orderId);
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
const o = await client.orders.get(orderId); // ordem única
const 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,
)
import { OrderStatus } from "@investflex/sdk";
// O filtro aceita qualquer combinação dos quatro filtros abaixo.
const rows = await client.orders.filter({
orderStatus: OrderStatus.CANCELED, // também aceita "4"
account: process.env.INVESTFLEX_ACCOUNT!,
sponsor: "flx",
strategyId: "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.