A automatização da negociação de mercados de previsão depende de manter consistentes vários registos: o que a estratégia pretendia, o que a plataforma aceitou, o que realmente foi executado e o que permanece comprometido. Estes registos mudam de forma assíncrona. Uma perspetiva correta da conta tem de lidar com atualizações que chegam tarde, se repetem ou se cruzam com um pedido de cancelamento.
O desafio não se limita a sistemas de alta frequência. Mesmo uma estratégia pequena pode encontrar um tempo limite excedido após a submissão, uma execução parcial durante o cancelamento ou uma mudança de conta enquanto um pedido ainda carrega. Se o software tratar apenas a sequência sem interrupções, problemas normais de conectividade podem criar saldos enganadores ou atividade duplicada.
Este guia descreve um modelo de sincronização para operações de mercados de previsão. Os exemplos são testes hipotéticos de estado de conta, não recomendações para negociar contratos específicos. Os módulos Kalshi e Polymarket previstos do ProfitBot devem estabelecer cada um estes comportamentos face aos seus próprios perfis de conta e APIs suportadas antes de ser aceite execução com fundos.
Automatização da negociação de mercados de previsão: preserve a intenção do utilizador antes da atividade externa
Uma intenção regista a ação que o software foi autorizado a tentar. Deve incluir o perfil de conta, contrato, lado, quantidade, política de preços e revisão da estratégia. Persisti-la antes de um pedido externo fornece uma âncora para recuperação se o processo terminar ou perder a resposta.
A intenção é distinta de uma ordem. Pode falhar validação, ser rejeitada externamente ou permanecer por resolver após um tempo limite excedido. Tratá-la imediatamente como ordem concluída pode fazer a interface anunciar exposição inexistente ou libertar recursos que podem já estar comprometidos.
Mantenha a referência original da ordem ligada à decisão local da estratégia. Quando uma ligação é interrompida, use essa relação para inspecionar o que aconteceu em vez de presumir que outra submissão é necessária. Uma referência de cliente só é útil dentro das regras documentadas do serviço selecionado. Analise a informação confirmada de ordens da conta antes de tratar qualquer notificação repetida como compromisso separado.
Associe cada registo ao perfil selecionado
O perfil de conta pertence às chaves de ordens, execuções, posições e reservas. Um identificador numérico de ordem ou título familiar de contrato pode não ser globalmente único entre ambientes. Sem contexto de perfil, uma resposta de uma conta pode ser associada a outra de forma aparentemente plausível mas economicamente incorreta.
Mantenha credenciais e leituras protegidas limitadas ao perfil atual. Se o utilizador mudar de uma conta de demonstração para uma conta real, leituras pendentes da sessão anterior não devem preencher a perspetiva da nova. O mesmo princípio aplica-se ao mudar entre plataformas integradas separadamente ou produtos regionais de conta.
Os relatórios históricos também precisam desta fronteira. Resultados de demonstração não devem misturar-se numa série real de desempenho sem categorização explícita. Uma interface partilhada pode tornar uniforme o processo e preservar registos subjacentes separados. A consistência de apresentação só é útil quando a designação da conta permanece uma descrição verdadeira da informação e da autoridade associadas às ordens visíveis.
Distinga progresso local de estado externo da ordem
O processo local pode saber que construiu ou submeteu um pedido antes de conhecer o resultado da plataforma. São estados locais de progresso. A ordem externa pode depois ser aceite, parcialmente executada, cancelada ou rejeitada segundo o modelo da plataforma. A interface não deve reduzir tudo isto a um único indicador de concluído.
Preserve estados desconhecidos de ordem ou liquidação até o registo da conta os explicar. Escolher a designação familiar mais próxima pode esconder inventário restante ou um compromisso pendente. Analise o registo da plataforma e os termos relevantes do contrato antes de reafetar fundos. Um resultado por resolver é motivo para obter informação mais clara, não um convite a presumir o desfecho mais conveniente.
O resumo apresentado ao utilizador pode permanecer simples. Pode mostrar que a submissão está a ser verificada ou que uma ordem tem quantidade restante. Registos detalhados devem ainda disponibilizar a distinção para apoio e investigação. O objetivo é comunicar progresso significativo sem afirmar certeza económica antes de as provas externas a estabelecerem.
Aplique execuções uma única vez usando provas estáveis
Uma execução altera inventário e custos. Se a mesma notificação de execução chegar duas vezes, não deve criar um segundo efeito económico. A aplicação precisa de uma chave estável de eliminação de duplicados ou outra forma documentada de estabelecer se as provas já foram aplicadas.
Distinga uma execução individual de uma quantidade acumulada executada. Várias atualizações podem descrever o mesmo total em vez de operações adicionais. Analise em conjunto as execuções confirmadas e o montante restante da ordem. Isto importa ao interpretar notificações frequentes, porque contar repetidamente a mesma quantidade concluída exageraria a posição mesmo que cada notificação descrevesse corretamente a conta no seu próprio momento.
Use um exemplo controlado. Uma ordem de cem contratos reporta primeiro vinte executados e depois cinquenta acumulados. Num modelo acumulado, o novo incremento económico é trinta, não cinquenta. Uma repetição de cinquenta não deve acrescentar nada. Os testes devem verificar esta relação através de persistência e reinício para que a interpretação correta não dependa de um contador em memória que desaparece quando o processo é interrompido.
Combine retratos do estado e atualizações sem perder eventos
Muitos sistemas de conta usam uma combinação de retratos do estado e atualizações incrementais. Um retrato dá uma perspetiva num momento, enquanto as atualizações reportam alterações. O método de sincronização tem de definir como as suas fronteiras se relacionam para que os eventos não sejam ignorados nem aplicados duas vezes.
Analise as marcas temporais e referências de ordens associadas a atualizações da conta. Uma atualização posterior do ecrã pode não explicar, por si só, todas as notificações anteriores. Quando os registos parecem inconsistentes, concilie a ordem com a informação atual da conta na plataforma. Mantenha visível o compromisso incerto até concordarem as quantidades relevantes em vez de usar uma perspetiva parcial para autorizar outra posição.
Teste uma atualização que chega enquanto um pedido de retrato do estado decorre. A perspetiva restaurada da conta deve preservar o resultado económico independentemente de que resposta chega primeiro à aplicação segundo o protocolo suportado. Esta é uma fonte comum de erros subtis porque cada resposta pode parecer internamente válida enquanto a sua combinação ingénua descreve um estado que nunca existiu realmente.
Mantenha reservas alinhadas com execuções possíveis
Uma ordem aberta pode comprometer recursos antes de ser executada. O coordenador de risco deve considerar esse compromisso juntamente com posições existentes e intenções pendentes. Caso contrário, várias estratégias podem observar cada uma capital aparentemente disponível enquanto os pedidos pendentes combinados excedem o teto pretendido pelo utilizador.
Quando uma ordem é parcialmente executada, a reserva e o inventário devem mudar de forma coerente. A parte executada torna-se exposição de posição; a parte aberta restante continua representada segundo a política. Não deve existir um intervalo temporário em que ambas estão ausentes e outra estratégia pode reclamar fundos que permanecem economicamente comprometidos.
Use uma transição local atómica quando viável para atualizar os registos relacionados. Se o sistema de armazenamento não puder tornar atómica toda a atualização, defina um estado intermédio recuperável e impeça decisões dependentes de o tratar como final. O montante disponível apresentado ao utilizador deve refletir uma interpretação consistente da conta, não o subconjunto de funções assíncronas que por acaso terminou mais recentemente.
Trate o cancelamento como pedido com um resultado
Pedir cancelamento não prova que a ordem deixou de ser executada no momento em que o utilizador premiu o botão. Uma execução pode ocorrer antes de o cancelamento externo se tornar efetivo, e a notificação correspondente pode chegar depois. O sistema precisa de conciliar ambas as provas.
Retenha o compromisso restante da ordem até o resultado relevante estar estabelecido. Se uma execução tardia for verificada, aplique-a ao inventário e reduza o remanescente segundo a semântica da plataforma. Registe depois o estado final cancelado ou concluído com as provas que o sustentam.
A interface deve comunicá-lo claramente. A cancelar pode ser um estado intermédio seguido de um resultado que inclui execução parcial. Um indicador enganador de cancelamento instantâneo pode levar o utilizador a colocar outra ordem presumindo que não resta exposição. Um estado exato ajuda o operador a compreender por que o resultado final da conta difere da quantidade ainda apresentada quando o cancelamento foi pedido.
Automatização da negociação de mercados de previsão: defina explicitamente substituições e alterações de ordens
Uma mudança de ordem pode usar uma alteração ou um cancelamento seguido de nova ordem, dependendo do serviço. Analise em conjunto a ordem original e qualquer sucessora. Não presuma que pedir um novo preço remove instantaneamente o remanescente antigo. Podem ocorrer execuções durante a transição, pelo que o estado combinado da conta tem de permanecer dentro da afetação pretendida.
Num processo de cancelar e criar, o intervalo entre as duas ações importa. A ordem original pode executar antes de concluir o cancelamento, alterando o montante que deve ser pedido a seguir. Criar imediatamente toda a substituição sem conciliar essa possibilidade pode duplicar a exposição pretendida.
Mantenha o objetivo desejado do utilizador separado dos pedidos individuais usados para o alcançar. Uma quantidade-alvo pode permanecer estável enquanto o gestor ajusta execuções verificadas e ordens restantes. O diário deve explicar como cada pedido contribui para esse objetivo. Isto torna a manutenção de ordens passível de análise e impede que uma sequência de chamadas à API tecnicamente bem-sucedidas crie um resultado maior do que o realmente autorizado pelo utilizador.
Distinga atividade do bot de alterações externas da conta
O utilizador pode operar a mesma conta através de outra interface, ou a plataforma pode reportar efeitos na conta não relacionados com a última intenção do bot. O sistema local deve detetar essas diferenças sem as forçar para uma atribuição incorreta à estratégia.
Mantenha execuções verificadas do bot ligadas às suas intenções e registe separadamente alterações externas ou por resolver. Um depósito não é lucro de negociação, e uma ordem colocada noutro local não deve herdar as definições do rascunho do bot apenas porque diz respeito ao mesmo contrato. O coordenador da conta continua a precisar de considerar a exposição resultante ao impor limites partilhados.
Forneça uma política para discrepâncias. Novas ações que dependem de inventário ou saldos incertos podem precisar de esperar enquanto a conciliação estabelece o estado atual. O operador deve ver que valor da conta é contestado e que provas estão a ser pedidas. Isto é mais útil do que ignorar atividade externa ou tratar cada divergência como prova de que a plataforma ou o utilizador cometeu um erro.
Recupere atualizações perdidas a partir de uma fronteira duradoura
Depois de uma falha, inspecione o intervalo em que atualizações de ordens podem ter sido perdidas. Um fluxo atual mostra o que chega agora, enquanto o histórico da conta ajuda a estabelecer o que aconteceu durante a lacuna. Concilie execuções, quantidades restantes e saldos antes de acrescentar exposição. Restabelecer a ligação restaura acesso; não explica, por si só, todas as ações ocorridas durante a ausência de acesso.
O método de recuperação deve ter em conta paginação e registos repetidos. O processo não deve parar após uma página bem-sucedida se restarem mais provas, nem aplicar páginas sobrepostas duas vezes. Persista o progresso para que outra interrupção possa retomar a mesma recuperação em vez de reiniciar uma pesquisa sem limites.
Mantenha visível o estado do intervalo recuperado. Atualizações em direto podem retomar enquanto a cobertura histórica da conta permanece incompleta. São condições diferentes. O sistema deve estabelecer a concordância exigida da conta antes de permitir nova atividade que depende do intervalo em falta, em vez de tratar uma ligação bem-sucedida como prova de que todas as ordens e execuções anteriores já foram conciliadas.
Use o tempo com cuidado em regras de expiração e atualidade
As políticas de ordens e a validade de previsões podem depender do tempo, mas a aplicação tem de distinguir hora local de marcas temporais de fontes e prazos da plataforma. Um ajuste do relógio não deve prolongar inesperadamente uma proposta expirada nem fazer provas antigas parecer recentes.
Registe os momentos relevantes com os seus significados. Criação da previsão, observação da cotação, submissão do pedido e momento de atualização da plataforma não são intercambiáveis. Uma resposta atrasada pode conter um facto histórico válido que já não é adequado a uma nova decisão de entrada.
Teste deliberadamente casos de fronteira. Deixe uma cotação expirar durante a validação, reveja uma previsão enquanto uma ordem está em espera e reinicie perto de um momento limite agendado. O comportamento esperado deve ser especificado antes do teste. Regras baseadas no tempo são mais fáceis de confiar quando o produto consegue explicar que marca temporal desencadeou uma ação e por que uma resposta posterior não autorizou retroativamente algo que já se tornara inválido.
Faça a contabilização dos custos seguir atividade verificada
Os custos devem ser atribuídos usando as provas reais da plataforma e a convenção declarada do relatório. Uma execução parcial pode ter efeitos económicos diferentes de uma ordem por executar, e um modelo simulado de custos deve permanecer distinguível de encargos observados. Evite aplicar uma comissão universal inventada a todos os eventos possíveis do ciclo de vida.
Preserve montantes em bruto e o contexto de moeda ou garantia em que têm significado. Uma apresentação em USD pode acrescentar uma camada de avaliação, mas não deve apagar as unidades subjacentes da conta nem os momentos dos fluxos de caixa. Isto ajuda o utilizador a compreender se uma mudança reportada reflete atividade de negociação, avaliação ou outro movimento da conta.
A conciliação deve tornar os totais explicáveis sem esconder componentes por resolver. Se um custo ainda não puder ser associado com confiança a uma ação, mostre essa limitação em vez de o atribuir silenciosamente à última operação. Uma contabilização exata apoia controlos de risco e avaliação de estratégias, pelo que pertence ao modelo de sincronização em vez de ser reconstruída a posteriori a partir de um ecrã simplificado de histórico.
Teste o ciclo de vida das ordens através de sequências de falhas
Construa cenários determinísticos que exercitem as transições difíceis: execuções duplicadas, atualizações fora de sequência, cancelamentos em simultâneo com execuções, retratos desatualizados e reinícios entre persistência e resposta. Cada um deve ter um pequeno conjunto de valores esperados de inventário, ordem e reserva que possam ser verificados exatamente.
Use os percursos reais de armazenamento e coordenação de processos quando viável. Um teste auxiliar que prova uma função aritmética não estabelece que um processo restaura o cursor ou aplica uma execução uma única vez depois de uma falha. Testes de integração devem atravessar as fronteiras onde o estado pode tornar-se inconsistente.
Mantenha resultados específicos de ambientes separados na análise. Uma ordem de Demonstração sem dinheiro pode ensinar os controlos sem estabelecer o preço ou a liquidez que uma ordem com dinheiro real receberia. Para a conta selecionada, acompanhe o ciclo de vida completo através de execuções, custos e compromissos restantes. Um pedido aceite é apenas o início desse registo da conta, não um substituto do seu resultado conciliado.
Concilie numericamente um cenário de cancelamento
Considere uma ordem fictícia de cem contratos a 0,40 unidades contabilísticas cada. Excluindo custos modelados separadamente, o compromisso possível original é de quarenta unidades. A primeira execução verificada adquire trinta contratos, usando doze unidades e deixando setenta contratos abertos com um compromisso de vinte e oito unidades.
A estratégia pede depois cancelamento. Antes de o cancelamento se tornar final, outros vinte contratos são executados ao mesmo preço ilustrativo. O inventário é agora de cinquenta contratos, o montante verificado entregue nas operações totaliza vinte unidades e a quantidade aberta restante é cinquenta. Quando esse remanescente é confirmado como cancelado, a sua reserva de vinte unidades pode ser libertada segundo a política da conta.
Um retrato atrasado que mostre apenas os primeiros trinta contratos não deve substituir o estado posterior verificado sem conciliação. Uma notificação repetida da segunda execução de vinte contratos não deve aumentar o inventário para setenta. Estes dois testes verificam erros diferentes de sincronização, embora ambos possam produzir totais aparentemente plausíveis da conta.
Preserve a sequência na análise: ordem original, primeira execução, pedido de cancelamento, execução adicional e cancelamento final. Inclua os encargos reais e o inventário restante. O exemplo é deliberadamente simples para que as quantidades permaneçam claras. Compreender essas relações é essencial antes de acrescentar regras de preço mais complicadas ou presumir que um pedido aceite de cancelamento removeu imediatamente todos os compromissos possíveis.
Exponha uma perspetiva operacional coerente
A interface deve resumir posições atuais, ordens em espera, intenções pendentes e discrepâncias por resolver de forma concordante com o modelo de conta do sistema subjacente. Um utilizador deve conseguir compreender por que o capital está reservado e que operação ainda é verificada.
Use designações concisas de estado com acesso ao registo de suporte. Uma ordem parcialmente executada precisa da sua quantidade restante. Uma submissão por resolver precisa do identificador conhecido e do próximo passo de conciliação. Uma estratégia suspensa precisa do âmbito da restrição que impede novas ações. Estes detalhes ajudam o operador a tomar a próxima decisão sem ler cada evento interno.
Para o processo Kalshi previsto, consulte a visão geral dos mercados de previsão Kalshi. Aplique as mesmas perguntas de sincronização separadamente a cada perfil Polymarket. A automatização da negociação de mercados de previsão só se torna fiável quando a sua interpretação local permanece ligada a provas oficiais da conta, incluindo os períodos normais em que a informação se atrasa, as ações se sobrepõem e a resposta correta é esperar por um resultado ainda desconhecido.
Guias relacionados e exemplos resolvidos
- Automatização da negociação Polymarket: horários e alertas — Planeie horários, monitorização e intervenção em mercados de previsão ativos.
- Automatização de ordens limite Polymarket: expiração e execuções — Gira expiração de ordens, execuções parciais, cancelamento e revisão de preços como estados separados.
- Automatização da negociação Kalshi: assuma o risco operacional — Coordene responsabilidade operacional, resposta a incidentes e limites gerais da conta.
- Bot de criação de mercado Polymarket: inventário de resultados — Ligue inventário de resultados e garantias à execução assíncrona da Polymarket.
Continue a aprender
Leia a documentação de configuração ou consulte perguntas sobre licenças e estratégias.