Cálculo preciso de PnL en Polymarket: ¿Por qué tus ganancias y pérdidas podrían estar equivocadas?

BlockBeatNews

Título original: 《Cálculo preciso de PnL en Polymarket: por qué tus ganancias y pérdidas pueden estar completamente equivocadas》
Autor original: Leo, analista de criptomonedas

He estado haciendo trading automatizado propio en Polymarket durante medio año, y la mayor trampa en la que he caído no fue un fallo en la estrategia, sino que ni siquiera podía calcular correctamente cuánto había ganado o perdido.

No es que sea torpe. Es que el cálculo de PnL en PM en sí mismo es una zona de minas. La API oficial te da números incorrectos, y los sitios de análisis de terceros también muestran rankings equivocados. ¿Escribir tu propio script para calcular? La mayoría de las veces también estará mal.

¿Hasta qué punto son erróneos los datos? El tercer lugar en el ranking, kch123, calculó una pérdida de 3.5 millones de dólares con un método incorrecto, cuando en realidad obtuvo una ganancia de 11.4 millones de dólares. No es una diferencia de unos pocos puntos porcentuales: ¡el signo de ganancia y pérdida está invertido!

Este artículo desglosa cada trampa en la que he caído. Para quienes hacen trading, desarrollan herramientas o revisan rankings, tarde o temprano se encontrarán con ellas.

Trampa 1: cashPnl no incluye las ganancias ya liquidadas

La forma más intuitiva: llamar a la interfaz /positions y sumar el campo cashPnl (ganancias y pérdidas en efectivo).

Prueba con las tres direcciones en el top 15 del ranking:

swisstony: suma de cashPnl +$35,000, ranking real +$5,6 millones, diferencia de 158 veces

kch123: suma de cashPnl -$3.52 millones, ranking real +$11.4 millones, signo invertido

gmanas: suma de cashPnl -$2.64 millones, ranking real +$5.02 millones, signo invertido

Para esas tres direcciones, ¡el signo de ganancia y pérdida se invirtió en dos casos!

Razón: la API /positions no incluye el PnL realizado que ya ha sido cerrado o redimido. Cuando una posición ganadora se redime automáticamente a USDC, esa posición desaparece de la respuesta de la API. Lo que queda son las posiciones sin liquidar, que suelen mostrar pérdidas flotantes.

Crees que estás calculando toda la ganancia o pérdida, pero en realidad solo estás considerando la parte sin liquidar.

Trampa 2: el campo makerPnl no coincide con el flujo de efectivo en la cadena

En los datos de trading en formato JSONL hay un campo makerPnl (ganancia/pérdida del creador de mercado), que parece estar para calcular PnL. Pero no confíes.

He observado en los datos de mercado que la suma de makerPnl difiere en un orden de magnitud con el resultado del flujo de efectivo en la cadena. La diferencia exacta puede variar según el escenario, pero la dirección es la misma: la lógica interna de cálculo de makerPnl no coincide con el flujo real de USDC.

No importa cuán grande sea la desviación, la conclusión es la misma: no uses ese campo para calcular PnL.

Trampa 3: no se puede deduplicar solo por txHash

Esto es lo más contraintuitivo.

Si un txHash (hash de transacción) aparece varias veces, la reacción natural sería: datos duplicados, eliminarlos.

Pero no se puede hacer así. El CLOB (libro de órdenes en cadena) de PM puede emparejar múltiples órdenes maker en una sola transacción en la cadena, y varias entradas con el mismo txHash son en realidad ejecuciones independientes.

Antes, deduplicaba por txHash + asset, y en el lado de compra (BUY) subestimé 133 dólares. En la cadena Polygon, verifiqué que un solo hash de transacción tiene múltiples eventos de transferencia de USDC, cada uno correspondiente a una transacción real.

Conclusión: no se puede deduplicar solo por txHash. Para calcular PnL, suma directamente los datos originales de /activity.

Trampa 4: el límite en la paginación con offset

Para la interfaz /activity, usar offset para paginar? Si pasa de 3000, da error 400. La documentación no lo especifica.

Los tres direcciones anteriores lo verificaron: GET /activity?offset=3100 devuelve HTTP 400, con el mensaje “max historical activity offset of 3000 exceeded”. Los usuarios principales realizan decenas de miles de transacciones, 3000 no es suficiente.

Usar el parámetro end (el timestamp de la última transacción de la página anterior - 1) como cursor de paginación no tiene límite.

Trampa 5: diferencias en el criterio del PnL en el ranking

Después de calcular el PnL de una dirección, compararlo con el ranking, hay una pequeña diferencia.

En la mayoría de los casos, la diferencia es menor a 10 dólares (debido a la volatilidad en tiempo real del valor de las posiciones). Pero si la diferencia es mucho mayor, las causas posibles incluyen: la ventana de agregación del ranking, retrasos en la actualización del caché, o que el usuario tenga varias wallets proxy vinculadas.

En pruebas, el PnL calculado con flujo de efectivo coincide mucho con el valor devuelto por lb-api. Si la diferencia es grande, primero verifica si la paginación fue completa (trampa 4) y si usaste los campos correctos (trampas 1-2).

Método correcto

Tras probar varias alternativas, el método más confiable que he validado es sumar los datos de flujo de efectivo desde la API de datos. Sin usar campos precomputados, solo sumando las transacciones originales.

Fórmula:

PnL = SUMA (TRADE donde side=SELL) + SUMA (REDEEM) + SUMA (MERGE) + SUMA (REMAKE_REBATE) + SUMA (REWARD) - SUMA (TRADE donde side=BUY) - SUMA (SPLIT) + valor de mercado de la posición

· TRADE BUY: gastar USDC para comprar tokens (salida)

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

· REDEEM: redimir posición ganadora por USDC (entrada)

· SPLIT: acuñar USDC en tokens (salida)

· MERGE: combinar tokens en USDC (entrada)

· MAKER_REBATE: reembolso del creador de mercado (entrada)

· REWARD: recompensas/airdrop (entrada)

· Fuente de datos:

GET /activity?user=

&limit=500, paginar con end, sumar por tipo tras obtener todos los datos.

· Valor de mercado de la posición:

GET /positions?user=

, tamaño × precio actual.

· Validación cruzada:

Comparar los resultados con la API de ranking de Polymarket (lb-api.polymarket.com/profit?window=all&address=X), diferencia < $10. La diferencia se debe a la volatilidad en tiempo real del valor de las posiciones.

Verificación: ranking top 15 en pruebas

Tras calcular con flujo de efectivo, validar con la API del ranking:

swisstony: flujo de efectivo +$5.601 millones, ranking +$5.601 millones, diferencia < $10

kch123: flujo de efectivo +$11.396 millones, ranking +$11.396 millones, diferencia < $10

gmanas: flujo de efectivo +$5.024 millones, ranking +$5.024 millones, diferencia < $10

Las diferencias en los tres casos son menores a 10 dólares, y se deben a la volatilidad en tiempo real del valor de las posiciones.

Una vez que el método funciona, lo apliqué para analizar las ganancias y pérdidas reales de cientos de direcciones principales. Eso sí que es otra historia.

Resumen

SUMA(cashPnl) desde /positions → No funciona, no incluye ganancias ya liquidadas, el signo puede invertirse.

Sumar el campo makerPnl → No funciona, no coincide con el flujo en la cadena.

Calcular deduplicando por txHash → No funciona, >$100, elimina ejecuciones reales.

Paginación con offset + suma → No funciona, datos truncados, error >3000.

Método de flujo de efectivo con API de datos → Actualmente el más confiable, < $10.

El primer paso en hacer trading cuantitativo no es buscar alpha. Es asegurarte de que tus cálculos sean correctos.

Todo lo anterior proviene de experiencias reales, no de teorías. La API de PM puede cambiar en cualquier momento, por eso se recomienda verificar periódicamente con la API del ranking.

Enlace original

Haz clic para conocer las oportunidades laborales en BlockBeats

Únete a la comunidad oficial de BlockBeats:

Telegram: https://t.me/theblockbeats

Telegram grupo de discusión: https://t.me/BlockBeats_App

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

Aviso legal: La información de esta página puede proceder de terceros y no representa los puntos de vista ni las opiniones de Gate. El contenido que aparece en esta página es solo para fines informativos y no constituye ningún tipo de asesoramiento financiero, de inversión o legal. Gate no garantiza la exactitud ni la integridad de la información y no se hace responsable de ninguna pérdida derivada del uso de esta información. Las inversiones en activos virtuales conllevan riesgos elevados y están sujetas a una volatilidad significativa de los precios. Podrías perder todo el capital invertido. Asegúrate de entender completamente los riesgos asociados y toma decisiones prudentes de acuerdo con tu situación financiera y tu tolerancia al riesgo. Para obtener más información, consulta el Aviso legal.

Artículos relacionados

Polymarket agrega la opción de inicio de sesión con Telegram

De acuerdo con Odaily, Polymarket ha añadido la función de inicio de sesión de cuenta de Telegram a su plataforma. La nueva función permite a los usuarios acceder al protocolo del mercado de predicciones utilizando sus credenciales de Telegram.

GateNewshace1h

DeepBook lanza un mercado de predicción en la red de pruebas de Sui

De acuerdo con Foresight News, DeepBook, un protocolo DeFi en la cadena de bloques Sui, lanzó DeepBook Predict, un mercado de predicciones, en testnet. Desarrollado en colaboración con el servicio de precios de opciones Block Scholes, Predict admite opciones binarias, de compra (call), de venta (put) y de spread, así como opciones apalancadas

GateNewshace1h

Vitalik predice que los mercados de predicción se desplazarán hacia oráculos descentralizados y pide votación privada a continuación

Según ChainCatcher, Vitalik Buterin afirmó en X que la calidad de los mercados de predicción depende fundamentalmente de sus oráculos. Expresó optimismo sobre que cada vez más mercados de predicción adopten soluciones oraculares descentralizadas y no financieras. Buterin añadió que la siguiente fase de desarrollo

GateNewshace2h

Investigación de medios estadounidenses: Polymarket tiene su sede en Panamá en un despacho de abogados y solía prestar servicios para FTX

Según una investigación publicada por National Public Radio (NPR) de Estados Unidos el 5 de mayo, los reporteros acudieron a la dirección de la sede de Panamá registrada oficialmente por Polymarket —piso 21, Oceania Business Plaza, Ciudad de Panamá— y en el lugar no encontraron indicios de Polymarket ni de ninguna de sus entidades legales en Panamá. La oficina de García de Paredes Law Firm en esa dirección había prestado servicios legales a FTX.

MarketWhisperhace5h

MicroStrategy planea vender Bitcoin para financiar dividendos de STRC y se aleja de su política de «Nunca vender»

Según el informe de The Block sobre la llamada de resultados del 1T de 2026 de MicroStrategy, la empresa planea vender bitcoin para financiar dividendos de su alta rentabilidad en acciones preferentes perpetuas, STRC, marcando una salida significativa de su convicción histórica de “no vender”. El presidente Michael Saylor declaró que la firma

GateNewshace5h

Un gran inversor de Polymarket compra una apuesta de propagación Thunder de 133.000 USD en el partido 1 de las semifinales de la NBA en el Oeste por 50¢

Según Odaily Seer, una cuenta que ha obtenido más de $12 millones de ganancias en Polymarket compró posiciones por valor de $133.000 apostando a que los Thunder superarán a los Lakers por 15,5 puntos en el Juego 1 de las semifinales de la Conferencia Oeste de la NBA el 6 de mayo, con un precio medio de entrada de 50 centavos. El juego se inició

GateNewshace6h
Comentar
0/400
Sin comentarios