Cálculo preciso do PnL na Polymarket: por que o seu lucro e prejuízo podem estar incorretos?

BlockBeatNews
USDC0,01%

Título original: 《Cálculo preciso de PnL na Polymarket: por que seus lucros e perdas podem estar totalmente errados》
Autor original: Leo, analista de criptomoedas

Tenho trabalhado com automação de negociações na Polymarket há seis meses, e o maior erro que cometi não foi uma estratégia falha, mas sim não conseguir calcular corretamente quanto ganhei ou perdi.

Não sou incompetente. O problema é que o cálculo de PnL do PM é uma verdadeira zona de perigo. Os números fornecidos pela API oficial estão incorretos, e o ranking exibido por sites de análise de terceiros também está errado. Você escreve seu próprio script para calcular? Provavelmente também está errado.

Quão grande é a discrepância? O terceiro colocado no ranking, kch123, calculou uma perda de 3,5 milhões de dólares usando um método errado, enquanto o lucro real foi de 11,4 milhões de dólares. Não é uma diferença de alguns pontos percentuais — é que o símbolo de lucro e perda está invertido.

Este artigo descompõe cada erro que cometi. Se você negocia, desenvolve ferramentas ou acompanha rankings, cedo ou tarde vai se deparar com isso.

Erro 1: cashPnl não inclui lucros realizados já liquidados

A abordagem mais intuitiva: usar a interface /positions, somar o campo cashPnl (lucro/prejuízo em dinheiro).

Testando com os três endereços do top 15 do ranking:

swisstony: soma de cashPnl +$35 mil, ranking real +$5,6 milhões, diferença de 158 vezes

kch123: soma de cashPnl -$3,52 milhões, ranking real +$11,4 milhões, símbolo invertido

gmanas: soma de cashPnl -$2,64 milhões, ranking real +$5,02 milhões, símbolo invertido

Para esses três endereços, dois tiveram os sinais de lucro e prejuízo invertidos.

Razão: a API /positions retorna cashPnl sem incluir os lucros realizados que já foram liquidados. Quando uma posição vencedora é automaticamente resgatada em USDC, essa posição desaparece da resposta da API. O que fica são posições não liquidadas — geralmente com prejuízo flutuante.

Você acha que está calculando todo o lucro e prejuízo, mas na verdade só está considerando a parte não liquidada.

Erro 2: o campo makerPnl não condiz com o fluxo de caixa na cadeia

Nos dados JSONL de negociações há um campo makerPnl (lucro/prejuízo do maker), que parece ser para calcular PnL. Mas não confie nele.

Percebi que, ao somar o makerPnl nos dados de market making, o resultado difere de uma magnitude do fluxo de caixa na cadeia. A multiplicidade exata pode variar dependendo do cenário, mas a direção é sempre a mesma: a lógica interna do makerPnl não bate com o fluxo real de USDC.

Por maior que seja a discrepância, a conclusão é a mesma: não use esse campo para calcular PnL.

Erro 3: não deduzir por txHash individualmente

Isso é contra a intuição.

Se um txHash (hash da transação) aparece várias vezes, a reação natural é: dados duplicados, remover.

Mas não faça isso. O CLOB ( livro de ordens on-chain) da PM pode combinar várias ordens maker em uma única transação na cadeia, e múltiplas entradas com o mesmo txHash representam execuções reais distintas.

Antes, eu deduzia por txHash + ativo, e isso fez eu subestimar $133 na parte de compra. Verificando na Polygon, uma única transação realmente gera múltiplos eventos de transferência de USDC, cada um correspondendo a uma negociação real.

Conclusão: não deduza apenas por txHash. Para calcular PnL, some diretamente os dados brutos de /activity.

Erro 4: o limite de paginação com offset

Na API /activity, usar offset para paginação? Se passar de 3000, dá erro 400. O documento não informa isso.

Todos os três endereços testados confirmaram: GET /activity?offset=3100 retorna HTTP 400, com a mensagem de erro “max historical activity offset of 3000 exceeded”. Jogadores com milhares de transações não conseguem passar de 3000.

Usar o parâmetro end (passando o timestamp da última transação da página anterior - 1) para paginação por cursor não tem limite.

Erro 5: diferenças na metodologia de PnL do ranking

Depois de calcular o PnL de um endereço, ao comparar com o ranking, há uma pequena diferença.

Na maioria das vezes, a discrepância é menor que $10 (devido à volatilidade do valor de mercado das posições). Mas se a diferença for maior, as razões podem incluir: janela de agregação do ranking, atraso na atualização do cache ou múltiplas wallets proxy vinculadas ao usuário.

Na prática, usando o método de fluxo de caixa, o PnL de um endereço corresponde quase exatamente ao valor retornado pela API lb-api. Se a sua diferença for grande, verifique se a paginação está completa (erro 4) e se está usando os campos corretos (erros 1-2).

Método correto

Depois de testar várias abordagens, a mais confiável que validei é a soma direta dos dados brutos de /activity, sem usar campos pré-calculados, apenas somando as entradas de transações originais.

Fórmula:

PnL = SOMA (negociações com side=SELL) + SOMA (REDEEM) + SOMA (MERGE) + SOMA (MAKER_REBATE) + SOMA (REWARD) - SOMA (negociações com side=BUY) - SOMA (SPLIT) + valor de mercado das posições

· TRADE BUY: gastar USDC para comprar tokens (saída)

· TRADE SELL: vender tokens para recuperar USDC (entrada)

· REDEEM: resgatar USDC de posições vencedoras (entrada)

· SPLIT: cunhar tokens a partir de USDC (saída)

· MERGE: consolidar tokens de volta em USDC (entrada)

· MAKER_REBATE: reembolso do maker (entrada)

· REWARD: recompensas ou airdrops (entrada)

· Fonte de dados:

GET /activity?user=<endereço>&limit=500, paginar com end, somar por tipo após obter todos os dados.

· Valor de mercado das posições:

GET /positions?user=<endereço>, tamanho × preço atual.

· Validação cruzada:

Comparar o resultado com a API de ranking do Polymarket (lb-api.polymarket.com/profit?window=all&address=X); diferença menor que $10 é aceitável. Discrepâncias vêm da volatilidade do valor de mercado.

Validação: top 15 do ranking, teste real

Após calcular pelo método de fluxo de caixa, validar com a API do ranking:

swisstony: fluxo de caixa +$5,601,000, ranking +$5,601,000, diferença < $10

kch123: fluxo de caixa +$11,396,000, ranking +$11,396,000, diferença < $10

gmanas: fluxo de caixa +$5,024,000, ranking +$5,024,000, diferença < $10

As diferenças entre os três endereços estão dentro de $10, sendo causadas pela volatilidade do valor de mercado.

Depois de validar o método, apliquei-o para analisar centenas de endereços de destaque, e os resultados foram outros.

Resumo

SOMA(cashPnl) de /positions → não funciona, não inclui lucros realizados, pode inverter sinais

Soma do campo makerPnl → não funciona, não condiz com o fluxo de caixa na cadeia

Deduzir por txHash → não funciona, acima de $100, perde execuções reais

Paginação com offset + soma → não funciona, dados truncados, erro acima de 3000

Método de fluxo de caixa na API → atualmente o mais confiável, com diferença menor que $10

Para quem faz quant trading, o primeiro passo não é encontrar alpha. É garantir que seus cálculos estejam corretos.

Tudo acima vem de experiências reais, não de teoria. A API do PM pode mudar a qualquer momento, então recomenda-se validar periodicamente seus resultados com a API de ranking.

Link original

Clique para conhecer as vagas abertas na律动BlockBeats

Participe do grupo oficial do律动 BlockBeats no Telegram:

Telegram assinatura: https://t.me/theblockbeats

Telegram grupo de discussão: https://t.me/BlockBeats_App

Conta oficial no Twitter: https://twitter.com/BlockBeatsAsia

Isenção de responsabilidade: As informações contidas nesta página podem ser provenientes de terceiros e não representam os pontos de vista ou opiniões da Gate. O conteúdo apresentado nesta página é apenas para referência e não constitui qualquer aconselhamento financeiro, de investimento ou jurídico. A Gate não garante a exatidão ou o carácter exaustivo das informações e não poderá ser responsabilizada por quaisquer perdas resultantes da utilização destas informações. Os investimentos em ativos virtuais implicam riscos elevados e estão sujeitos a uma volatilidade de preços significativa. Pode perder todo o seu capital investido. Compreenda plenamente os riscos relevantes e tome decisões prudentes com base na sua própria situação financeira e tolerância ao risco. Para mais informações, consulte a Isenção de responsabilidade.

Related Articles

As probabilidades da Polymarket atingem os 20% para o Governo dos EUA confirmar vida alienígena em 2026

A possibilidade de um anúncio de alienígenas aumentou, com traders da Polymarket a estimarem uma probabilidade de 20% de que a existência de vida extraterrestre seja confirmada este ano pelo governo dos EUA. Recentemente, os relatos de encontros entre pastores de igrejas e oficiais de informações dispararam, alegadamente para se prepararem para uma revelação iminente

Coinpedia2h atrás

A CFTC processa 5-6 Estados por autoridade de mercados de previsão na Consensus 2026

De acordo com o presidente da CFTC, Michael Selig, no Consensus 2026, a CFTC processou aproximadamente cinco a seis estados, incluindo Arizona, Connecticut, Illinois e New York, relativamente à autoridade regulatória dos mercados de previsão. A principal disputa incide sobre se a CFTC ou os reguladores estaduais têm jurisdição sobre

GateNews3h atrás

Previsões em destaque no Polymarket: será que um acordo de paz permanente entre os EUA e o Irão pode concretizar-se em 2026?

Será possível um acordo permanente de paz entre a Etiópia e o Irão ser alcançado em 2026? Os mercados de previsão da Polymarket apresentam uma distribuição de probabilidades para diferentes marcos temporais, com um volume total de negociação superior a 78 milhões de dólares.

GateInstantTrends5h atrás

As probabilidades do PSG para a Liga dos Campeões disparam para 57% na Polymarket após vitória nas meias-finais, acima de 29% nas últimas 24 horas

De acordo com o acompanhamento da Odaily Seer aos dados da Polymarket, as probabilidades do Paris Saint-Germain de vencer a Liga dos Campeões subiram para 57% mais cedo hoje, acima de 29% nas últimas 24 horas, enquanto as probabilidades do Arsenal se situam em 43%, acima de 1% no mesmo período. O PSG avançou para a final após empatar 1-1 fora contra o Bayern Munique, no Cham

GateNews7h atrás

A carteira de grande volume compra US$260.000 em Spurs com desvio de -9,5 em Polymarket antes do jogo de hoje dos playoffs da NBA

De acordo com a Odaily Seer, uma conta com uma taxa de vitória de 54% (0xa2cced8bfae7d645f7f437fb76becf2fcbb70cbc) comprou hoje (7 de maio) $260.000 em apostas de spread de Spurs -9,5 na Polymarket, a partir de hoje, antes dos jogos das meias-finais da Conferência Oeste da NBA, o Jogo 2, contra os Timberwolves, que começa às 9:30 da manhã, hora de Pequim. A conta o

GateNews8h atrás

Conta lucrativa do Polymarket compra posição $60K nos 76ers no Jogo 2 dos playoffs da NBA

De acordo com a Odaily Seer, uma conta com mais de 2,2 milhões de dólares em ganhos vitalícios comprou posições no valor de 60.000 dólares apostando que os 76ers derrotariam os Knicks no Jogo 2 das Meias-finais da Conferência Este da NBA, na Polymarket, com um preço médio de entrada de 20 cêntimos. A posição está atualmente

GateNews8h atrás
Comentar
0/400
Nenhum comentário