Estratégias
As rotas de estratégias da API: criar, controlar o ciclo de vida, enviar ordens manuais e consultar estado, trades e ordens.
As rotas de estratégias criam, controlam e consultam estratégias. Todas ficam sob /api/strategy, são autenticadas por token ou chave de API, e respeitam o cabeçalho X-Desk para escolher a mesa. As permissões seguem a matriz de acesso.
Tipos
Tipos de estratégia
O tipo entra na própria rota de criação, POST /api/strategy/{tipo}. Os valores aceitos, e o que cada um significa, estão no Catálogo de Estratégias:
| Rota | Estratégia |
|---|---|
DiDiff2 · DiDiff3 · DiDiff4 | Spread Pts · Fly Pts · Slide Pts |
DiFra2 · DiFra3 · DiFra4 | FRA · Fly FRA · Slide FRA |
DiFra3EdsDiff · DiFra4EdsDiff | Fly FRA EDS Pts · Slide FRA EDS Pts |
Spread | Spread genérico |
SingleOrder | Single Order |
CrossOrder | Direto/Cross |
Criar
Criar uma estratégia
Todo corpo compartilha um envelope comum, e acrescenta os campos do tipo:
| Campo | Tipo | Descrição |
|---|---|---|
| id | int | Identificador da estratégia. Opcional: informe um, de 1 a 65535, ou deixe em branco (ou 0), e o AlgoServer gera um e o devolve. |
| account | uint | Conta. Usa o padrão da sessão se omitido. |
| validateFatFinger | bool | Liga a proteção fat finger. Padrão true. |
| memo | string | Rótulo livre da operação. |
| deskId | string | Mesa da estratégia. |
curl -X POST https://<host>/api/strategy/SingleOrder \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"symbol": "DI1F27", "side": "BUY", "price": 13.505, "quantity": 100}'
Corpo por tipo
Campos de cada tipo
Single Order (SingleOrder):
| Campo | Tipo | Descrição |
|---|---|---|
| symbol | string | Instrumento negociado. |
| side | enum | BUY ou SELL. |
| price | double | Preço limite. |
| quantity | ulong | Quantidade de contratos. |
Direto/Cross (CrossOrder):
| Campo | Tipo | Descrição |
|---|---|---|
| symbol | string | Instrumento negociado. |
| price | double | Preço do negócio. |
| quantity | ulong | Quantidade. |
| buyAccount | uint | Conta compradora. |
| sellAccount | uint | Conta vendedora. |
| maxSweepQty | ulong | Quantidade máxima de varredura. Opcional. |
| crossType | enum | ALL_OR_NONE_CROSS (padrão), CROSS_EXECUTED_AGAINST_BOOK_FROM_CLIENT, VWAP_CROSS ou CLOSING_PRICE_CROSS. |
| crossPrioritization | enum | NONE (padrão), BUY_SIDE_IS_PRIORITIZED ou SELL_SIDE_IS_PRIORITIZED. |
Spreads de curva e genérico (DiDiff*, DiFra*, Spread):
| Campo | Tipo | Descrição |
|---|---|---|
| instruments | array | Os instrumentos do spread. Veja a tabela abaixo. |
| spread | double | Spread alvo. |
| slippageMaxContracts | int | Limite de encilhamento antes de bloquear novas colocações. |
| slippageWaitSeconds | int | Espera antes de agredir o mercado. |
| slippageMaxTicks | int | Deslocamento da agressão, em ticks. |
| startTime · endTime | hh:mm:ss | Janela de operação, em BRT. |
| isEdsEnabled · edsOrderQuantity | bool · ulong | Uso do EDS, nas estratégias de 2 instrumentos. |
Cada item de instruments:
| Campo | Tipo | Descrição |
|---|---|---|
| symbol | string | Instrumento. |
| side | enum | BUY ou SELL. |
| quantity | ulong | Quantidade alvo. |
| maxQuantity | ulong | Teto de quantidade no apregoamento. |
| placementPriceLevels | int | Níveis de preço mantidos, de 1 a 3. |
| maxSimultaneousOrders | int | Ordens simultâneas por nível, de 1 a 5. |
| maxPriceIncrements | int | Incrementos de preço antes de pausar. |
| burstQuantity | ulong | Quantidade extra em rajada. |
| isPlacementEnabled | bool | Apregoa passivamente o instrumento. |
| priceFactor | double | Peso no spread. Apenas no Spread genérico. |
{
"spread": 12.5,
"slippageMaxContracts": 50,
"slippageWaitSeconds": 3,
"slippageMaxTicks": 2,
"startTime": "09:30:00",
"endTime": "16:00:00",
"isEdsEnabled": true,
"edsOrderQuantity": 100,
"instruments": [
{ "symbol": "DI1F27", "side": "BUY", "quantity": 100, "placementPriceLevels": 3, "maxSimultaneousOrders": 5 },
{ "symbol": "DI1F29", "side": "SELL", "quantity": 100, "placementPriceLevels": 3, "maxSimultaneousOrders": 5 }
]
}
O significado desses campos está em Apregoamento, Encilhamento e no Catálogo de Estratégias.
Ciclo de vida
Controlar
Ordem manual
Enviar ordem manual
Envia uma ordem manual para uma estratégia em andamento, útil no desencilhamento. Os campos escolhem o que operar e como:
| Campo | Tipo | Descrição |
|---|---|---|
| id | int | Estratégia alvo. |
| symbolType | enum | All (todos os instrumentos) ou Fixed (um específico). Padrão Fixed. |
| symbol | string | Instrumento, quando symbolType é Fixed. |
| priceType | enum | Market ou Limit. Padrão Limit. |
| price | double | Preço, quando priceType é Limit. |
| quantityType | enum | All ou Fixed. Padrão Fixed. |
| quantity | ulong | Quantidade, quando quantityType é Fixed. |
| trancheType | enum | All ou Fixed, para mirar um tranche. Padrão Fixed. |
| tranchePosition · trancheId | int | O tranche alvo, quando Fixed. |
{ "id": 101, "symbolType": "Fixed", "symbol": "DI1F27", "priceType": "Limit", "price": 13.50, "quantityType": "All", "trancheType": "All" }
O detalhe de cada combinação está em Desencilhamento.
Consultas
Consultar
A rota duration devolve, a partir de um instrumento e de uma quantidade de referência, as quantidades que deixam a posição neutra: em DV nas estratégias em pontos, e em PU nas de FRA. Veja a neutralidade nas estratégias em pontos e a FRA.