HFT Elite

Tipos de ordem

Cada tipo de ordem que um trader de opções de mesa espera, sobreposto ao CLOB do Polymarket. Stops, brackets, OCO, trailing stops, gatilhos condicionais cross-market, TWAP e iceberg — com flags TIF completos (GTC, GTD, IOC, FOK).

Por que o Polymarket precisa de tipos de ordem sintéticos

O CLOB do Polymarket expõe apenas duas primitivas: market e limit. Não há stop nativo, nem bracket, nem OCO, nem trailing stop. Para copy-trading ou qualquer gestão ativa de posição, esse buraco te força a vigiar a tela ou aceitar que uma posição pode despencar para zero. A Pro Workstation fecha esse buraco com ordens condicionais do lado servidor que enviam a ordem CLOB subjacente pelo mesmo caminho de execução de um ticket manual assim que um gatilho dispara.

Toda ordem da workstation é assinada no cliente com o oficial polymarket_client_sdk_v2 e enviada com o código de builder V2 anexado para atribuição. PolyZig nunca custodia seus fundos, nunca guarda sua chave privada, e nunca reassina sua ordem — o watcher de ordens condicionais é apenas um gatilho automatizado que reaproveita sua sessão autenticada.

Stop e stop-limit

Um stop dispara uma ordem market quando o preço cruza seu gatilho. Um stop-limit dispara uma ordem limit no preço que você definir, dando controle de slippage ao custo de um possível não-fill em mercados rápidos. Ambos se aplicam em qualquer direção: um sell stop dispara quando o preço cai abaixo do gatilho; um buy stop dispara quando o preço sobe acima dele.

side=sell, trigger_price=0,45  →  dispara quando preço ≤ 0,45
side=buy,  trigger_price=0,55  →  dispara quando preço ≥ 0,55

Trailing stop

Um trailing stop reancora seu gatilho ao pico (lado venda) ou vale (lado compra) corrente do preço observado. O offset de trail define quanto o preço precisa retroceder desse pico antes do stop disparar. Útil para deixar os vencedores correrem mantendo um teto no drawdown de ida e volta — a workstation rastreia o pico em memória dentro da tarefa de monitor por ordem.

sell trailing-stop, trail_offset=0,05
  → pico sobe a 0,70, gatilho fica em 0,65
  → se preço cai a 0,65, o stop dispara

OCO e bracket — atômicos, links recíprocos

Um ticket OCO são duas pernas que se cancelam mutuamente no fill: tipicamente um stop loss e um take profit. Um bracket é o padrão OCO envolvendo uma posição existente. A Workstation cria as duas pernas em uma única transação de banco de dados e escreve um linked_order_id recíproco, então a perna que disparar primeiro cancela a irmã — não há cenário em que você termine com um bracket cancelado pela metade.

O cancelamento é com escopo de usuário: o watcher só vai cancelar uma irmã que pertença ao mesmo usuário da ordem que dispara, mesmo que um link malicioso fosse de algum modo injetado.

Gatilhos condicionais cross-market

Uma ordem condicional observa um mercado e age sobre outro. Exemplo: «se o YES de Trump-2024 cair abaixo de $0,40, dispara um buy na perna correlacionada Trump-loss». A Workstation persiste essas igual aos stops; o avaliador cross-market é cabeado junto com o construtor de tickets multi-leg.

TWAP e iceberg (roadmap)

Em pares finos do Polymarket até alguns milhares de dólares conseguem mover o livro. O plano: TWAP fatia uma ordem grande em N ordens filhas em uma janela configurável; iceberg mostra ao livro só a fatia visível e a recompõe à medida que a porção visível preenche, escondendo o tamanho total. Ambos reduzem slippage por market-impact em mercados ilíquidos. Nenhum está implementado nesta build — pertencem ao corte Fase 4 de estratégias de execução, depois do watcher de ordens condicionais expor um executor CLOB real.

Flags time-in-force

Hoje todo ticket limit é enviado como GTC (good-till-cancelled), pois é o que `polymarket_client_sdk_v2` expõe no construtor de ordens. GTD, IOC e FOK são parte do corte TIF da Fase 1b — quando o branch upstream do SDK incluir o flag (ou a workstation contribuir), a UI do ticket vai expor um dropdown TIF e a API de ordens estende `PlaceOrderRequest` com `time_in_force` + `expires_at`. Até lá, comportamento estilo IOC pode ser aproximado enviando um limit apertado e cancelando no próximo passo do poller.

Sizing definido por risco

O ticket de ordem inclui um auxiliar de «perda máxima». Informe o valor em dólares que está disposto a arriscar e os preços de entrada + stop, e o ticket calcula automaticamente o size que limita sua perda exatamente nesse valor. A mesma primitiva que traders de opções usam para dimensionar verticals: posicione seu downside, não seu notional.

size = max_loss / |entry_price − stop_price|
i

Live today: Market & Limit orders. Coming soon: Stop / Stop-limit / Trailing stop / OCO / Bracket / Conditional / TWAP / Iceberg — the production CLOB executor adapter is the remaining piece. The status column on the matrix below reflects the real deployment state; HFT subscribers get the rest on launch without re-upgrading.

Reference matrix

Every order type at a glance

TypeStatusTrigger conditionFills atBest for
MarketLiveImmediateBest available depthSpeed > slippage
LimitLiveImmediateYour limit price or restsSlippage control
StopComing soonSell: price ≤ trigger · Buy: price ≥ triggerMarket once triggeredCap downside on a position
Stop-limitComing soonSame as StopLimit once triggeredStops with slippage control
Trailing stopComing soonAnchored to running peak/troughMarket once trail offset crossedLet winners run with capped giveback
OCOComing soonEither leg fires → cancels siblingPer leg type (stop/limit)Bracket a position with both ends
BracketComing soonOCO of take-profit + stopPer leg typeWrap an open position
Conditional (cross-market)Coming soonWatches a different marketMarket or limit on the targetPair / hedge automation
TWAPComing soonContinuous over a windowSliced child ordersReduce market impact on thin pairs
IcebergComing soonShow visible slice; refill on fillPer visible sliceHide total size from the book

Time-in-force

TIF flags — when each one wins

TIFMeaningWhen to use
GTCGood-til-cancelDefault for limits you intend to leave on the book
GTDGood-til-dateAuto-expire near a known event window
IOCImmediate-or-cancelTake whatever fills now, drop the rest
FOKFill-or-killAll-or-none atomic execution

Worked example

Bracket on a long YES at $0.42

Open 100 shares YES at $0.42. Cap downside at the cost of 6¢ per share, ride upside to a 12¢ take-profit. Created in one ticket with reciprocal links — whichever leg fires cancels the sibling.

POSITION  long 100 YES @ 0.42
BRACKET   take-profit  → sell @ 0.54   (bracket_target)
          stop loss   → sell @ 0.36   (bracket_stop)
RESULT    max gain 12¢ × 100  =  +$12.00
          max loss  6¢ × 100  =  − $6.00
          R:R 2.0

Páginas relacionadas da Workstation

FAQ

Perguntas frequentes

O Polymarket suporta ordens stop-loss nativamente?

Não. O CLOB do Polymarket expõe apenas market e limit. A PolyZig Pro Workstation fecha esse buraco persistindo ordens sintéticas (stops, stop-limits, trailing stops, OCO, brackets, gatilhos condicionais cross-market) do lado servidor e disparando a ordem CLOB subjacente pelo mesmo caminho de execução de um ticket manual assim que o gatilho avalia verdadeiro. O watcher, schema, validação e lógica de cancelamento de irmã OCO são entregues hoje; o executor CLOB de produção que transforma um gatilho disparado em uma ordem postada é o cabeamento restante.

Como OCO é implementado no Polymarket?

PolyZig cria as duas pernas do OCO em uma transação de banco de dados e escreve um linked_order_id recíproco para cada perna referenciar a outra. Quando uma perna dispara, o watcher cancela a irmã. O cancelamento tem escopo no mesmo user_id que detém a ordem disparadora, então um link perdido nunca pode chegar a outra conta.

Quão rápido um stop vai disparar quando a execução estiver ligada?

O watcher de ordens condicionais se inscreve no mesmo gerenciador de assinaturas WebSocket que alimenta o gráfico de preços. Em um evento de cruzamento de preço, ele promove atomicamente a linha de pending → triggered e está cabeado para enviar a ordem CLOB subjacente pelo OrderExecutor no mesmo hot-path que o ticket manual usa. O executor Noop é o placeholder entregue hoje; quando o adapter OrderExecutor de produção chegar, a latência mediana de cruzamento-de-preço-até-envio-CLOB será publicada no hub da workstation.

Posso anexar um stop e um take-profit a uma posição existente?

É exatamente para isso que a primitiva bracket foi feita: abra uma posição normalmente, depois crie um bracket — uma perna target (limit no seu take-profit) e uma perna stop (stop ou stop-limit), ligadas atomicamente, com a primeira a preencher cancelando a outra. O bracket persiste hoje; a execução ao vivo do gatilho-para-CLOB chega com o cabeamento do OrderExecutor de produção sinalizado no banner de status acima.

O que acontece com minhas ordens condicionais se o PolyZig reiniciar?

Elas persistem no Postgres. Na inicialização, o ConditionalOrderWatcher chama restore() e se reinscreve no token de cada ordem pending. Não há estado só em memória, então um reinício não te custa nada.

Ative isso na sua conta

A superfície Pro Workstation — e tudo o que está descrito nesta página — vem com o plano HFT Elite ($149/mês, taxa de 0,10 % por operação).

Fazer upgrade para HFT Elite