Предрелизная редакция. Пока подключение реальных биржевых ключей закрыто, на публичных страницах показываются демонстрационные данные, помеченные как демонстрационные.
Документ описывает действующий расчётный контракт. Если правило изменится, изменится и версия контракта, а вместе с ней — эта страница.
Что описывает документ
Здесь описано, как TradeStat превращает историю сделок с подключённой биржи в опубликованные показатели. Версия расчётного контракта — pnl-v1; она указывается вместе с результатом, чтобы старые и новые расчёты нельзя было спутать.
Расчёт детерминирован: один и тот же набор входных данных даёт один и тот же результат, а по итогу считается SHA-256 отпечаток. Отпечаток позволяет убедиться, что показанные числа относятся именно к этому срезу данных.
Источники данных
Единственный источник — прямые подключения к поддерживаемым биржам в режиме только на чтение. CSV, XLSX, брокерские отчёты и ручной ввод не используются, поэтому опубликованные показатели нельзя отредактировать вручную.
Один подтверждённый источник синхронизируется централизованно, а страницы используют общие нормализованные данные. Число страниц не увеличивает количество обращений к бирже, а публичный просмотр никогда не инициирует запрос к бирже: показывается сохранённое состояние.
Валюта и приведение сумм
У каждого расчёта есть базовая валюта. Прибыль и комиссия по каждой сделке приводятся к ней по сохранённым курсам на момент расчёта.
Если сумму нельзя привести к базовой валюте, сделка не включается в результат, а сам результат помечается неполным. Подстановка приблизительного курса не выполняется.
Реализованный PnL
Реализованный PnL — сумма чистых результатов закрытых сделок. По каждой сделке берётся валовый результат, из которого вычитается комиссия: чистый результат = валовый PnL − комиссия.
Сделки упорядочиваются по времени закрытия, затем по устойчивому идентификатору. Идентификаторы обязаны быть уникальными, поэтому одна и та же сделка не может попасть в расчёт дважды.
Комиссии и фандинг
Комиссия уменьшает результат каждой сделки и не показывается как отдельная «доходность до издержек».
Если комиссия по сделке отсутствует или не приводится к базовой валюте, в сумме она учитывается как ноль, но весь расчёт помечается неполным. Это сознательный компромисс: показатель не занижается молча, а сопровождается пометкой о неполноте.
Чего расчёт не делает
Пополнения, выводы и переводы между счетами не являются торговой прибылью и в PnL не попадают.
Часть историй, прежде всего спотовых и некоторых CEX, не содержит реализованного PnL со стороны биржи. Такие исполнения не пересчитываются собственным FIFO-регистром: они исключаются, а результат помечается неполным. Полный ноль вместо отсутствующих данных не показывается никогда.
Если у исполнения неоднозначно определена сторона позиции, строка не отбрасывается ради красивой картинки — результат помечается неполным.
Нереализованный и суммарный PnL
Нереализованный PnL берётся из открытых позиций отдельным срезом и зависит от того, включён ли сбор позиций для источника.
Суммарный PnL считается как реализованный плюс нереализованный и показывается только тогда, когда нереализованный известен. Если он недоступен, суммарный показатель не выводится вообще, а не приравнивается к реализованному.
Просадка
Просадка считается по кривой капитала. Если по источнику есть снимки капитала, используются они; иначе кривая строится как стартовый капитал плюс накопленный реализованный PnL.
Абсолютная просадка — максимальное отклонение вниз от достигнутого пика. Процент просадки считается как отклонение, делённое на пик, и показывается только при подтверждённой базе: либо есть снимки капитала, либо задан положительный стартовый капитал. Без базы процент не выводится.
Производные показатели
Доходность в процентах считается от стартового капитала и показывается только если он задан и положителен.
Profit factor — отношение суммы прибыльных сделок к сумме убыточных по модулю. Если убыточных сделок не было, показатель не выводится: бесконечность не является осмысленным значением. Если не было ни прибыли, ни убытка, показатель равен нулю.
Win rate — доля сделок с положительным чистым результатом. Сделки, закрывшиеся ровно в ноль, входят в знаменатель, но не считаются выигрышными.
Время, свежесть и полнота
Все отметки времени приводятся к UTC. На странице показывается последний подтверждённый расчёт, а не промежуточное состояние.
Состояние расчёта показывается явно: первый расчёт ещё не завершён, расчёт актуален, обновление задерживается либо источник не подтвердил время актуальности данных.
- время актуальности не подтверждено
- нереализованный PnL недоступен
- доходность недоступна без подтверждённой базы
- процент просадки недоступен
- profit factor недоступен
- win rate недоступен
Главный принцип
Недоступное значение не заменяется нулём. Если данных недостаточно, показатель не выводится, а рядом остаётся пометка о причине.
Демонстрационные и реальные данные разделены и маркируются на странице. Демонстрационные показатели никогда не выдаются за реальную торговлю.