Polymarket PnL точный расчет: почему ваша прибыль и убытки могут быть неправильными?

BlockBeatNews
USDC-0,01%

Оригинальный заголовок: «Точное вычисление PnL на Polymarket: почему ваши расчёты могут быть полностью ошибочными»
Автор оригинала: Лео, аналитик в области криптовалют

Я занимаюсь автоматической торговлей на Polymarket самостоятельно уже полгода, и самая большая ошибка, с которой я столкнулся, — это не сбой стратегии, а то, что я даже неправильно считаю, сколько заработал или потерял.

Это не из-за моей некомпетентности. Само вычисление PnL в PM — это минное поле. Официальный API показывает неверные цифры, сторонние аналитические сайты тоже ошибаются в рейтингах. Вы пишете скрипт для подсчёта? Скорее всего, тоже ошибаетесь.

Насколько сильно отклонения? В тройке лидеров по рейтингу kch123, при использовании неправильного метода он посчитал убыток в 3,5 миллиона долларов, а на самом деле прибыль составила 11,4 миллиона долларов. Не на несколько процентов — символы прибыли и убытка вообще перепутаны.

В этой статье я подробно расскажу о каждой ошибке, которую я совершил. Трейдерам, разработчикам инструментов, следящим за рейтингами — рано или поздно столкнутся.

Ошибка 1: cashPnl не включает уже закрытую прибыль

Самый очевидный способ: взять API /positions, сложить поля cashPnl (наличные прибыль и убытки).

На практике — проверка трёх адресов из топ-15:

swisstony: сумма cashPnl +$3,5 тыс., реальный рейтинг +$560 тыс., разница в 158 раз

kch123: сумма cashPnl -$3,52 млн, реальный рейтинг +$11,4 млн, знак перепутан

gmanas: сумма cashPnl -$2,64 млн, реальный рейтинг +$5,02 млн, знак перепутан

Три адреса, два случая, когда знак прибыли и убытка просто перепутан.

Причина: API /positions возвращает cashPnl без учёта закрытых/выкупленных реализованных PnL. Если выигравшая позиция автоматически выкупается в USDC, эта позиция исчезает из ответа API. Остаются только незакрытые позиции — зачастую с нереализованной убытком.

Вы думаете, что считаете всю прибыль и убыток? На самом деле — только незакрытую часть.

Ошибка 2: поле makerPnl не совпадает с денежными потоками на блокчейне

В JSONL с данными о сделках есть поле makerPnl (прибыль/убыток маркетмейкера), по названию — для подсчёта PnL. Не верьте.

Я заметил, что сумма makerPnl по данным в торговых данных отличается от результатов по денежным потокам на блокчейне примерно в один порядок. Конкретное соотношение зависит от сценария, но направление — одинаковое: внутренняя логика makerPnl не совпадает с реальными USDC-потоками.

Независимо от величины отклонения — не используйте это поле для подсчёта PnL.

Ошибка 3: нельзя считать по txHash, удаляя дубли

Это самое противоречивое.

Если один и тот же txHash (хеш транзакции) встречается несколько раз, большинство сразу подумает: дубли, нужно удалить.

Но так делать нельзя. В CLOB (On-chain order book) Polymarket в одной транзакции может быть несколько сделок маркетмейкера, и все эти записи с одним txHash — реальные отдельные исполнения.

Я раньше удалял дубли по txHash + активу, и из-за этого недосчитался 133 долларов на стороне покупки. Проверка на Polygon показала, что в одной транзакции действительно есть несколько отдельных USDC Transfer событий, каждое — реальная сделка.

Вывод: нельзя удалять дубли только по txHash. Для подсчёта PnL нужно просто суммировать все исходные данные /activity.

Ошибка 4: лимит по offset при пагинации

При использовании offset в API /activity — при превышении 3000 записей возникает ошибка 400. В документации об этом не написано.

Все три проверенных адреса подтвердили: запрос GET /activity?offset=3100 возвращает HTTP 400 с сообщением max historical activity offset of 3000 exceeded. У крупных игроков обычно десятки тысяч сделок, 3000 — недостаточно.

Использование параметра end (указание таймстампа последней записи минус 1) для пагинации — без лимита.

Ошибка 5: различия в методике подсчёта PnL в рейтинге

После подсчёта PnL для одного адреса и сравнения с рейтингом — есть расхождения.

В большинстве случаев разница — менее 10 долларов (из-за колебаний стоимости позиций). Но если разница заметно больше, возможные причины: разные окна агрегации в рейтинге, задержки обновления кеша или привязка нескольких прокси-кошельков к одному аккаунту.

На практике, результаты по методу cash flow совпадают с API lb-api.polymarket.com/profit?window=all&address=X с точностью до <$10. Разница — из-за текущих колебаний стоимости позиций.

Проверка: тест на топ-15 адресах

После подсчёта по методу cash flow — сравнение с API рейтинга:

swisstony: +$560,1 тыс. (cash flow) и +$560,1 тыс. (рейтинг), разница < $10

kch123: +$1 139,6 тыс. и +$1 139,6 тыс., разница < $10

gmanas: +$502,4 тыс. и +$502,4 тыс., разница < $10

Все три адреса — погрешность менее $10, разница вызвана колебаниями стоимости позиций.

После того, как я проверил этот метод, я проанализировал им реальные прибыли и убытки сотен топовых адресов. Это — совсем другое дело.

Общий вывод

SUM(cashPnl) из /positions — не подходит, не включает реализованную прибыль, знак может быть перепутан.

Суммирование по полю makerPnl — не подходит, не совпадает с денежными потоками на блокчейне.

Подсчёт по удалённым дубли по txHash — не подходит, пропускает реальные сделки при удалении.

Пагинация с offset + суммирование — не подходит, данные обрезаются, при более чем 3000 — ошибка.

Метод cash flow через Data API — самый надёжный на данный момент, с погрешностью <$10.

Первый шаг в квантовых расчетах — не искать альфу. А убедиться, что ваши подсчёты правильные.

Все вышеописанные ошибки — из реальной практики, а не теоретические рассуждения. API Polymarket может менять поведение в любой момент, поэтому рекомендуется регулярно сверять результаты с API рейтинга.

Ссылка на оригинал

Нажмите, чтобы узнать о вакансиях в BlockBeats

Присоединяйтесь к официальному сообществу BlockBeats:

Телеграм-канал подписки: https://t.me/theblockbeats

Телеграм-чат: https://t.me/BlockBeats_App

Официальный аккаунт в Твиттере: https://twitter.com/BlockBeatsAsia

Отказ от ответственности: Информация на этой странице может поступать от третьих лиц и не отражает взгляды или мнения Gate. Содержание, представленное на этой странице, предназначено исключительно для справки и не является финансовой, инвестиционной или юридической консультацией. Gate не гарантирует точность или полноту информации и не несет ответственности за любые убытки, возникшие от использования этой информации. Инвестиции в виртуальные активы несут высокие риски и подвержены значительной ценовой волатильности. Вы можете потерять весь инвестированный капитал. Пожалуйста, полностью понимайте соответствующие риски и принимайте разумные решения, исходя из собственного финансового положения и толерантности к риску. Для получения подробностей, пожалуйста, обратитесь к Отказу от ответственности.

Связанные статьи

Совокупные пожизненные объёмы Polymarket и Kalshi превысили 150 миллиардов долларов в апреле

По данным The Block, совокупные пожизненные торговые объёмы Polymarket и Kalshi превысили 150 миллиардов долларов в апреле. Этот рубеж был достигнут после завершения семимесячной серии платформ с месячными рекордами, что стало первым снижением торговой активности в секторе с сентября. Глобальная платформа Polymarket…

GateNews1ч назад

a16z поддерживает CFTC в письме- комментарии в пятницу, указывая правила прогнозных рынков штатов как барьер для доступа

По данным The Block, Andreessen Horowitz направила в CFTC в пятницу 18-страничное письмо с комментариями, поддержав федеральный надзор за рынками предсказаний, и заявив, что регулирование на уровне штатов создает барьеры для справедливого доступа к рынку. Венчурная компания отметила, что письма о прекращении и воздержании и предложенные запреты f

GateNews2ч назад

Polymarket, Kalshi: совокупный объём торгов достиг 150 млрд долларов — за апрель в одиночку 21,9 млрд, новый максимум

В апреле совокупный объём торгов Polymarket и Kalshi превысил 150 миллиардов долларов: месячный итог — 21,9 миллиарда долларов (Kalshi 13,4 миллиарда, Polymarket 8,5 миллиарда), суммарная доля — 85%. С момента запуска накопленный объём достиг 150 миллиардов долларов; YTD по состоянию на 20/4: Kalshi 37,49 миллиарда, Polymarket 29,23 миллиарда, суммарно 66,7 миллиарда. Kalshi опирается на полное регулирование CFTC и более раннее преимущество в интерфейсе, близком к спортивным ставкам; Polymarket — с открытостью для международной аудитории, расчётами в USDC и более широким кругом тем. Ключевые точки для наблюдения в будущем: переговоры по снятию ограничений со стороны CFTC, динамика сбора средств Polymarket и оценка Kalshi.

ChainNewsAbmedia2ч назад

a16z поддерживает CFTC и предупреждает, что правила прогнозных рынков на уровне штатов создают барьеры для доступа к рынку

По данным The Block, Andreessen Horowitz подала 18-страничное письмо с комментариями в Комиссию по торговле товарными фьючерсами в пятницу, поддержав федеральный надзор за рынками предсказаний и выступив против мер подавления на уровне штатов. A16z утверждала, что письма о прекращении и воздержании и предлагаемые запреты со стороны штата

GateNews10ч назад

Polymarket и Kalshi — $150B совокупный объём за всю жизнь в апреле

Совокупный пожизненный объём торгов Polymarket и Kalshi превысил 150 миллиардов долларов в апреле, согласно данным The Block. Однако апрель стал первым ежемесячным снижением общей торговой активности сектора с тех пор, как платформы начали сталкиваться со взрывным ростом в сентябре, завершив семимесячную серию о

CryptoFrontier13ч назад

Ethereum-ETF упали $184M в течение 4 дней подряд без притока средств

Биржевые фонды на Ethereum сообщили о выводе 184 миллиона долларов средств в течение четырех последовательных дней — до 30 апреля включительно, по данным рыночной статистики, поскольку геополитическая неопределенность нивелировала рост на рынке U.S. акций. Оттоки продолжили убыточную серию, начавшуюся ранее на этой неделе, при этом крупнейший одномоментный отток пришёлся на один день

CryptoFrontier14ч назад
комментарий
0/400
Нет комментариев