Algos
Financiamento
Estratégia de duas pernas que captura o spread de financiamento entre uma posição à vista e o seu equivalente a termo (operações clássicas de termo na B3): ambas as pernas são executadas juntas na taxa de financiamento desejada.
Quando usar
- Você está rolando ou iniciando uma operação de financiamento (vista vs. termo).
- Precisa de execução atômica para travar a taxa implícita de funding.
- Não quer gerenciar as pernas à vista e a termo separadamente.
Início rápido
from investflex import AsyncInvestflexClient
from investflex.models.algos import Financiamento
from investflex.models.common import ExecutionType, Side, Trigger
f = Financiamento(
name="petr-financ",
init_time="09:00:00",
end_time="17:00:00",
execution_type=ExecutionType.ENTRY,
trigger=Trigger.FINANCIAMENTO, # também: Trigger.SPREAD, Trigger.FINANCIAL_DIFF
trigger_value=30,
book_depth=1,
init_suspended="N",
legs=[
dict(symbol="PETRG23", side=Side.SELL, quantity=100,
alloc_account="YOUR_ACCOUNT", resting="N",
max_clip_size=100, first_timeout=5000),
dict(symbol="PETR3", side=Side.BUY, quantity=1000,
alloc_account="YOUR_ACCOUNT", resting="Y",
max_clip_size=1000, first_timeout=5000),
],
)
async with AsyncInvestflexClient.from_env() as client:
handle = await client.algos.create(f)
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. |
execution_type |
ExecutionType |
sim | não | — | ExecutionType.ENTRY, ExecutionType.GAIN_LOSS. |
trigger |
Trigger |
não | não | Trigger.FINANCIAMENTO |
Trigger.SPREAD, Trigger.FINANCIAL_DIFF, Trigger.FINANCIAMENTO. |
trigger_value |
número | sim | sim | — | Valor de entrada ou alvo de ganho. |
to_market_trigger_value |
número | condicional | sim | — | Alvo de perda quando execution_type=ExecutionType.GAIN_LOSS. |
to_market_trigger_value_enabled |
"Y" / "N" |
não | não | — | Y apenas quando execution_type=ExecutionType.GAIN_LOSS. |
compensate_exec |
int | não | não | — | Flag opcional de rebalanceamento. |
book_depth |
int | não | sim | — | Profundidade (1..N) usada para avaliar o gatilho. |
init_suspended |
"Y" / "N" |
não | não | — | Inicia o algo pausado. |
ignore_offers_lt |
int | não | sim | — | Ignora ofertas contrárias menores que este tamanho. |
simulate_sniper_on_resting |
"Y" / "N" |
não | não | — | Simula varredura sniper na perna passiva. |
Pernas
Exatamente duas pernas.
| Campo | Tipo | Obrigatório | Editável | Observações |
|---|---|---|---|---|
symbol |
str | sim | não | Código do instrumento (uma à vista + uma a termo). |
side |
Side.BUY / Side.SELL |
sim | não | |
quantity |
int | sim | sim | Quantidade total (> 0). |
alloc_account |
str | sim | não | Conta da corretora. |
security_exchange |
str | não | não | Padrão XBSP. |
resting |
"Y" / "N" |
não | sim | Y passiva, N agressora. |
max_clip_size |
int | não | sim | Maior pedaço visível por ordem filha. |
first_timeout |
int | não | não | Milissegundos até a primeira reavaliação. |
Editando um Financiamento em execução
await client.algos.edit(
handle.clord_id,
TriggerValue=29,
ToMarketTriggerValue=0,
BookDepth=2,
IgnoreOffersLT=100,
)
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
trigger=Trigger.FINANCIAMENTOé a configuração mais comum em termo B3: o valor do gatilho é a diferença financeira absoluta entre as pernas à vista e a termo.- Em geral a perna à vista fica passiva enquanto a perna a termo
agride (ou vice-versa) — defina
resting="Y"na perna que quer expor. - Use
init_suspended="Y"para carregar o algo sem começar; depois chameresumequando estiver pronto.