22 октября 2021

Измеряем Perpetual Futures с точки зрения биржи: Базовые метрики

Буквально на днях очередная странная контора обладающая вроде как таинственными супер всякими биржевыми штуками (о которых нельзя говорить) перед собеседованием попросила сделать небольшое тестовое задание. Вышло нечто среднее, между техническими вопросами, аналитикой и финансовой инженерией. Самый интересный вопрос был таким:

Представьте, что вы рассматриваете возможность реализации на бирже нового продукта Perpetual Futures, который уже есть у конкурентов. Какие бы метрики и критерии успеха вы предложили для этого продукта?

Ранее я как раз работал СТО фьючерсной биржи и именно этой задачей занималась моя команда (и ее решеним я больше всего горжусь). Мы построили всю инфраструктуру для метрик — сбор, хранение, визуализацию и построение на этой базе произвольный отчетов и дэшбордов. Задача сама по себе очень и очень непростая, но чертовски интересная! И да, если что — я открыт для найма и интересных предложений — пишите aleks.raiden@gmail.com или @aleks_raiden

Любой трейдер, который хоть раз торговал бессрочными фьючерсами на любой бирже (например, Binance или BitMEX), может подумать, что здесь ничего особенно нет. Вон же, в терминале биржа и так показывает все важнейшие метрики. Допустим, цена для внутренней аналитики не так важна, остается что? Объем торгов и открытый интерес (OI) — вот и всех нужные показатели. Самые опытные могут добавить, что хорошо бы отслеживать еще Funding rate. Со стороны трейдера очень часто, что этого может быть достаточно для принятия простых торговых решений. А вот со стороны биржи этот продукт выглядит намного более сложным и требует отслеживания десятков и десятков (вру, речь идет о сотне) параметров для качественного анализа. 

На стороне биржи на эти данные смотрят аналитики, собственный трейдинг-деск, если он есть, отдел маркет-мейкинга, руководители всех направлений — от маркетинга до операционного менеджмента, в идеале — выделенный человек в должность Head of Exchange Traded Products (директор по торговым операциям или продуктам). Конечно, на разных уровнях нужны разные данные и, если аналитику важны тонкие внутренние детали и их соотношение в разрезе времени, то на уровне топ-руководства это сжимается до самых основных показателей. Но для правильной оценки которых и нужно собирать и обрабатывать очень много разных параметров. 

Выскажусь резко: 

Если биржа не собирает и не анализирует этих метрик — она ничего не знает про собственный продукт! И вместо финтех-продукта оперирует непонятно чем!

 

Базовые метрики

 

  • Торговый объем — самая базовая величина, сколько было проторговано. А вот собирать метрику надо в нескольких размерностях: в количестве контрактов, в денежном выражении (в базовой валюте, скорее всего это USD). 
  • Открытый интерес (OI) — это общее количество открытых позиций, она показывает (в динамике если) прирост или сокращение именно интереса (выраженного в деньгах) трейдеров. Считать также надо в контрактах и в деньгах (хотя это скорее для удобства, не уверен, что денежное выражение имеет практических смысл).
  • Объемы шорт и лонг позиций — сколько сейчас на каждой стороне. В контрактах
  • Соотношение Short/Long Ratio — простой показатель, выводиться из предыдущего.
  • Funding rate — ставка финансирования, которой обмениваются держатели позиций. На самом деле, этот показатель сам по себе очень объемный и стоит отслеживать все компоненты для глубокого анализа. Отдельно я бы считал еще сумму фандинга, которая была выплачена в каждый раунд фандинга. Самым правильным было бы разделение и этой суммы на две метрики — одна фактическая, раз в 8 часов (или с той частотой, как вы проводите фандинг), а вторая динамическая, по сути рассчитывающая предполагаемый фандинг (estimate funding rate) и на сумму платежей, исходя из него.
  • Цена фьючерса — индикативный показатель,  для сравнения с другими аналогичными продуктами. Для простоты можно считать как среднее между Bid/Ask, но в идеале я бы следил и за всеми компонентами (отдельно и бидом и аском).
  • Базовый индекс — также индикативный показатель, это ценовой индекс, на базе которого построен контракт. Он включает в себя много компонент (если спроектирован правильно) или просто среднее между спот-ценами нескольких больших бирж (если его проектировали дилетанты). В идеальной ситуации — отдельно мы отслеживаем цены и объемы по каждой компоненте индекса и весовые коэффициенты (если они могут быть динамически корректироваться). 
  • Спрэд — разница между Bid и Ask ценами на фьючерс. Можно в деньгах (USD) или в пунктах (базовый пункт или бп, 0.01%).
  • Количество трейдеров с минимум 1 сделкой — самый простой показатель, быстро позволяющий оценить, зашло или нет это вашим клиентам. Для лучшей статистики, можно разбить на несколько — 1 сделка, до 10, до 100, до 1000, 10К, 100К и более 1 миллиона сделок. Особенно интересна корреляция с общей метрикой новых пользователей биржи вообще.
  • Объемы ликвидаций — если что-то случается на рынке и маржи контракта недостаточно для поддержания позиции, позиция трейдера автоматически ликвидируется. Биржи имеют несколько инструментов для управления этим, скажем так, болезненным процессом, поэтому отслеживать этот параметр очень важно и нужно. Конечно, лучше в двух вариантах — в контрактах и деньгах. Еще лучше — раздельно, ликвидации шортов и лонг-позиций. 

Эти метрики, если считать все, то их будет 26 — это самые основные показатели финансового торгуемого контракта (бессрочного фьючерса), на основании которых можно принимать какие-то решения и видеть картину принятия трейдерами нового инструмента, его показатели относительно конкурентов.

Да, важный момент — для качественной аналитики надо собирать такие же показатели и у конкурирующих продуктов на других площадках. Часть из этого — вполне публичные данные, можно получать по API, часть придется рассчитывать самостоятельно. Не забывая и свои данные отдавать в публичном доступе.

Мы, к примеру, построили специальный агрегатор, аналог портала СМС, но отслеживающий только крипто деривативы — ContractMarketCap. В один клик можно сразу посмотреть расстановку сил на всем рынке или отдельном его сегменте, сравнить свои котировки с конкурентами и отслеживать разные показатели торгуемых продуктов. 

С технической стороны все эти данные — временные ряды (time series), поэтому с ними можно и удобнее всего работать в традиционном стеке, так же как ваша DevOps команда отслеживает загруженность процессоров на серверах. Grafana / Prometheus / VictoriaMetrics — это ваши главные инструменты построения такой системы. Облегчает задачу, что непосредственно в реал-тайме это делать нет нужды, вполне хватит мягкого варианта (примерно секундные метрики для индексов например) и минутные для тех параметров, которые не так быстро меняются. Ценность собираемой информации со временем только растет, поэтому не жадничайте на объем хранилища, благо есть весьма эффективные системы хранения. Пишите метрики сразу в два независимых хранилища в разных локациях. Впрочем, за это у вас будуте отвечать DevOps команда, главное — поставить им задачу. 

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

С другой стороны — используя эти метрики, можно создать достаточно простой дэшборд и для сотрудников тех-поддержки и для внутренних аналитиков и для операционного менеджмента и финансового отдела. Было бы желание и понимание, что вы строите в качестве продукта — скам-кухню или серьезный финансовый проект.