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)
import { InvestflexClient, Iceberg, Side } from "@investflex/sdk";
const ice = new Iceberg({
name: "winq-ice",
initTime: "09:00:00",
endTime: "17:00:00",
priceLimit: 30.05,
fixedOpenQuantity: "N",
symbol: "WINQ19",
side: Side.SELL,
quantity: 10000,
account: "YOUR_ACCOUNT",
maxClipSize: 100,
});
const client = InvestflexClient.fromEnv();
const handle = await client.algos.create(ice);
console.log(handle.clOrdId, handle.status);
await client.close();
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" |
sim | não | — | Escolha explícita: Y mantém todas as fatias do mesmo tamanho; N permite que variem. Sem padrão. |
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)
await client.algos.edit(
handle.clOrdId,
{
PriceLimit: 30.2,
},
{ strategyCode: "iceberg" },
);
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)
await client.commands.cancel(handle.clOrdId);
await client.commands.suspend(handle.clOrdId);
await client.commands.resume(handle.clOrdId);
Notas de comportamento
- O livro vê
max_clip_size; o restante dequantityfica 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 quemax_clip_sizese o saldo restante também for.