Skip to main content
Voltar à Documentação
📈Ferramentas de Trading

Stop-Loss e Take-Profit

Saídas automáticas no cliente para proteger posições

Os mercados de previsão não oferecem uma ordem de stop nativa. Tanto o CLOB da Polymarket quanto a Kalshi permitem que você coloque ordens a limite e a mercado, mas nenhum dos dois fecha automaticamente uma posição quando o preço se move contra você. Se o seu contrato YES cair de 0.60 para 0.20 enquanto você está dormindo, ninguém está acompanhando a não ser você. A camada de Stop-Loss e Take-Profit da Predite preenche essa lacuna com regras de saída sintéticas, executadas no lado do cliente, que monitoram suas posições abertas e disparam uma ordem de fechamento quando o seu gatilho é atingido.

Isso funciona tanto em posições de paper trading quanto em posições de bot ao vivo, e foi desenvolvido especificamente para proteger você daquilo que mais dói em mercados de previsão de baixa liquidez: o risco de gap.

O Que Este Recurso Faz

Uma ordem de stop-loss é uma regra anexada a uma posição aberta. Você define um preço (ou uma variação percentual em relação à entrada), e a Predite acompanha o mercado até que esse nível seja tocado. Quando isso acontece, a posição é fechada automaticamente e registrada.

A Predite suporta três tipos de gatilho:

  • Stop-loss — fecha a posição quando o preço do lado que você detém cai até o seu gatilho ou abaixo dele. Isso limita o seu downside.
  • Take-profit — fecha a posição quando o preço do lado que você detém sobe até o seu gatilho ou acima dele. Isso trava os ganhos para que um vencedor não faça o caminho de volta até o break-even.
  • Time-stop — fecha a posição em um timestamp fixo, independentemente do preço. Útil para trades orientados a eventos em que você só quer exposição durante uma janela conhecida (a divulgação de resultados, um debate, uma decisão do Fed) e quer sair depois, aconteça o que acontecer.

Toda ordem é ciente do lado (side-aware). A Predite sabe se você está comprado em YES ou comprado em NO e avalia o gatilho em relação à perna correta. A Polymarket cota YES e NO como um par complementar (preço de NO = 1 − preço de YES), portanto, se você detém NO a 0.30 e define um stop a 0.20, a Predite acompanha a perna NO (1 − yesPrice) e dispara quando o *seu* preço efetivo atinge 0.20 — não quando a cotação de YES o faz. Você sempre raciocina em termos do contrato que de fato possui.

Por Que Isso Importa: Risco de Gap em Mercados Rasos

A maioria dos mercados de previsão é rasa. Um mercado que negocia alguns milhares de dólares por dia pode ter um spread amplo e um book raso. Quando uma notícia estoura, o livro de ofertas não desliza suavemente de 0.55 para 0.45 — ele dá um gap. A melhor oferta de compra desaparece, e a próxima oferta de compra em repouso pode estar 15 centavos abaixo. Quando você percebe, já cruzou o nível em que queria sair.

Um stop-loss não vai magicamente te executar no seu gatilho exato em um mercado em gap — nenhum stop em qualquer venue consegue fazer isso. O que ele faz é garantir que, no momento em que a Predite observar o preço no seu nível ou através dele, ela envie um fechamento em vez de esperar você acordar e reagir. Na prática, essa é a diferença entre sair perto do seu plano e sair com o que sobrou depois de uma cascata. Para trades orientados a eventos, o time-stop costuma ser a ferramenta mais limpa: ele não se importa com um pavio momentâneo, apenas remove a exposição assim que a janela da sua tese se encerra.

É também por isso que tratamos o take-profit como um gatilho de primeira classe. Em mercados rasos, uma posição pode disparar com uma única ordem grande e depois reverter à média em questão de minutos. Um take-profit permite que você colha esse pico em vez de assistir a ele evaporar.

Como Funciona o Monitoramento: Lado do Cliente + Cron

A Predite monitora suas saídas em duas camadas, e entender ambas mostra exatamente em que você pode confiar.

Camada 1 — Lado do cliente (navegador)

Enquanto você mantém o dashboard aberto, a visão de Posições consulta os preços ao vivo e avalia seus gatilhos ativos no navegador em tempo quase real. Você verá a distância-até-o-gatilho atualizar continuamente e receberá um toast instantâneo dentro do app no momento em que um nível for tocado. Essa camada é responsiva e excelente enquanto você está negociando ativamente, mas só funciona quando uma aba está aberta.

Camada 2 — Cron no lado do servidor (a camada durável)

A camada que de fato protege você quando está ausente é o cron do servidor. Um job agendado (/api/cron/check-stop-losses) roda a cada 2 minutos, 24 horas por dia, 7 dias por semana, independentemente de qualquer navegador. A cada execução, ele:

  1. Carrega todas as ordens com status = 'active'.
  2. Agrupa-as por mercado e busca os preços atuais na Gamma API da Polymarket em lotes (de modo que 40 ordens no mesmo mercado custem uma única consulta de preço, e não 40).
  3. Avalia cada gatilho em relação ao preço ao vivo (ou, no caso dos time-stops, em relação ao relógio).
  4. Para qualquer ordem que dispare, ele reivindica atomicamente a ordem (mudando-a para triggered somente se ela ainda estiver active) e, em seguida, envia o fechamento.

Como o cron é a fonte da verdade, você não precisa manter uma aba aberta para que seus stops funcionem. A camada do lado do cliente é uma conveniência para feedback instantâneo; o cron é a garantia.

A cadência de 2 minutos é a resolução prática do sistema. Os stops são avaliados em um intervalo de polling, e não tick a tick, então, em um gap violento, sua saída real pode ficar alguns minutos e vários centavos além do seu gatilho. Defina os níveis levando essa folga em conta, em vez de colocar um stop um centavo abaixo do preço atual.

Comportamento em Paper vs Ao Vivo

As mesmas regras se aplicam a ambos os modos, mas o que acontece em um disparo é diferente.

Posições de paper

Para uma posição de paper, uma saída disparada fecha a posição dentro do simulador da Predite. O cron marca a posição como fechada no preço de saída observado, calcula o P&L realizado a partir da sua entrada, da quantidade de cotas e da direção, e o grava no seu histórico de paper. Nada toca um venue real. Este é o lugar ideal para ensaiar a sua disciplina de saída — ver como um stop de 20% teria se comportado ao longo de uma semana de trades antes de arriscar capital. O stop-loss em paper está incluído a partir do plano Starter.

Posições ao vivo (bot)

Para uma posição ao vivo, uma saída disparada envia uma ordem de fechamento real no CLOB da Polymarket através da sua carteira conectada, tratada pelo motor de execução do bot em sua próxima passagem. A execução é uma ação de mercado real, sujeita à liquidez real e ao spread, e o seu P&L ao vivo e o seu diário de trades são atualizados de acordo.

O trading ao vivo exige o plano Bot ($99/mês). As saídas ao vivo passam pelo mesmo caminho de execução do restante da sua automação, incluindo o envio sem gas via Builder Program onde estiver disponível. Se um fechamento ao vivo falhar (erro de rede, ordem rejeitada, a posição já ter sido fechada manualmente), a ordem é marcada como failed com um motivo, em vez de ser repetida silenciosamente, e você é notificado para poder agir.

> Resumo dos planos: Stop-loss e take-profit em paper — Starter, Pro, Bot. Stop-loss e take-profit ao vivo em posições reais — somente Bot.

Duas Formas de Definir Saídas

Existem dois pontos de entrada complementares, dependendo de você negociar manualmente ou com um bot.

A. Ordens por posição (manual)

Anexe uma ordem explícita a uma única posição aberta a partir do painel de Posições. Você escolhe o tipo de gatilho e o preço (um valor entre 0 e 1, correspondendo à forma como o mercado cota). Este é o método mais preciso — você está definindo um nível exato.

Para adicionar um stop por posição:

  1. Abra Dashboard → Posições (paper ou ao vivo) e encontre a posição aberta.
  2. Clique em Adicionar saída naquela linha.
  3. Escolha Stop-loss, Take-profit ou Time-stop.
  4. Para stop-loss/take-profit, informe o preço de gatilho do lado que você detém (ex.: 0.20). Para um time-stop, escolha o horário de expiração.
  5. Confirme. A ordem aparece como active com uma leitura ao vivo da distância-até-o-gatilho.

Você pode empilhar um stop-loss e um take-profit na mesma posição para criar um bracket — sai por qualquer um dos lados, o que vier primeiro.

B. Padrões percentuais (bots)

Quando você cria ou edita um bot, define `stop_loss_pct` e `take_profit_pct` na configuração da estratégia. Esses são movimentos percentuais medidos a partir do preço de entrada de cada posição, aplicados automaticamente a todas as posições que o bot abre — assim você não coloca um stop manualmente por trade. O motor do bot verifica essas condições de saída a cada execução como parte do execute-bots e fecha qualquer posição cujo P&L cruze o limiar (motivo de saída registrado como stop_loss ou take_profit).

Se você não os definir, os bots usam padrões sensatos: stop-loss de 30% e take-profit de 50%. Estes são pontos de partida, não recomendações — ajuste-os por estratégia e valide com [Backtesting](/docs/backtesting) antes de ir ao vivo.

Os dois sistemas coexistem. As regras percentuais de um bot cobrem todo o portfólio automaticamente; uma ordem por posição permite que você sobreponha ou adicione um nível mais apertado, definido à mão, em um trade específico que lhe importa.

Passo a Passo: Seu Primeiro Trade Protegido

  1. Abra uma posição — em paper a partir do EV Scanner, ou ao vivo via um bot.
  2. Vá até Posições e clique em Adicionar saída naquela posição.
  3. Defina um stop-loss a uma distância sensata abaixo da sua entrada (dê espaço para o spread e para a cadência de 2 minutos).
  4. Opcionalmente, adicione um take-profit acima da entrada para travar ganhos.
  5. Confirme. Acompanhe a distância-até-o-gatilho ao vivo; o cron agora protege a posição 24 horas por dia.
  6. Quando um gatilho disparar, você recebe uma notificação e a posição aparece como fechada com o P&L realizado.

Dicas e Pegadinhas

  • Não coloque stops dentro do spread. Em um mercado raso com um spread de 0.55/0.62, um stop em 0.60 pode disparar com o ruído normal das cotações. Coloque os níveis fora do spread e da resolução de 2 minutos.
  • Atenção ao lado. Sempre defina o gatilho em termos da perna que você detém. Se você está comprado em NO, o seu stop é sobre o preço de NO, e a Predite cuida da conversão YES↔NO para você.
  • Stops não são execuções garantidas. Em um gap, a sua saída real pode ser pior que o gatilho. Dimensione as posições assumindo que o stop é uma rede de segurança, não um piso preciso.
  • Os gatilhos são idempotentes. Uma ordem disparada é reivindicada atomicamente antes de o fechamento rodar, então execuções de cron sobrepostas não conseguem fechar uma posição em duplicidade.
  • O cancelamento é um soft-cancel. Remover uma ordem a define como cancelled e a mantém no histórico para fins de auditoria — o seu registro de ordens disparadas/canceladas permanece intacto para o [Diário de Trades](/docs/trade-journal).
  • Fechar uma posição manualmente deixa as ordens dela órfãs; o cron pula uma posição já fechada e não dá erro, mas organize as ordens ativas para manter o painel limpo.
  • Um time-stop ignora o preço — ele dispara puramente pelo relógio. Combine-o com um stop-loss quando quiser tanto um piso de preço quanto um horário de saída rígido.

Como Isso se Conecta ao Resto da Predite

O stop-loss fica no meio do seu fluxo de trabalho. Use o [EV Scanner](/docs/ev-scanner) e a [Probabilidade por IA](/docs/ai-probability) para encontrar um edge, a [Calculadora de Kelly](/docs/kelly-calculator) para dimensioná-lo, e um stop-loss para limitar o downside no trade que você acabou de dimensionar. Para entradas grandes, combine stops com [Ordens TWAP](/docs/twap-orders) para que você escale a posição de forma gradual e tenha uma saída definida. Toda saída disparada flui para o seu [Diário de Trades](/docs/trade-journal) e para o P&L do [Portfólio](/docs/portfolio), e as suas estratégias de bot em [Estratégias de Bot](/docs/bot-strategies) carregam seus próprios stops baseados em percentual em cada posição que abrem.

Documentos Relacionados