Розробка індикатора Open Interest для криптобірж під ключ

Клієнт бачить, що власний розрахунок відкритого інтересу розходиться з даними біржі, і перестає довіряти сигналам. Ми розробляємо індикатор Open Interest під ключ: розбираємо вимоги, збираємо розрахунок і передаємо готовий інструмент. Ви отримуєте метрику, на яку можна спиратися в торгових і ризик-рішеннях.
Часті запитання

Розробка індикатора Open Interest: чому метрика розходиться

Відкритий інтерес за однією монетою на різних майданчиках не збігається з біржовими значеннями — причина в різній методиці, а не в помилці розрахунку.

Один майданчик рахує лише безстрокові контракти, інший додає ф'ючерси з датою поставки, третій перераховує обсяг у базовий актив за поточною ціною, а не за ціною входу.

Підсумовування таких чисел дає розходження з інтерфейсом біржі, і спиратися на нього в торговій логіці не можна.

Агрегація відкритого інтересу починається з приведення майданчиків до спільної бази: розмір контракту, множник, момент фіксації за часом сервера майданчика. Окремо вирішується доля інструментів, що торгуються в кількох розрахункових одиницях, — інакше одна монета рахується двічі. Ми зберігаємо знімок та історію правок, щоб значення можна було перерахувати заднім числом.

Пропуски даних при волатильності — друге джерело викривлень. На різкому русі потокові канали майданчиків віддають знімок із затримкою або рвуть підписку.

Якщо на розриві підставити останнє відоме число, індикатор малює рівну лінію і сигнал запізнюється; якщо нуль — з'являється хибне скидання відкритого інтересу.

Лікується це міткою достовірності: значення позначається як непідтверджене, перекривається наступним знімком і дозаповнюється з історії.

Затримка сповіщень — зазвичай наслідок періодичного опитування та черги повторів: сигнал має спрацьовувати за фактом зміни метрики, а не за таймером. Далі розбираємо, як це закривається під час розробки індикатора Open Interest.

Що дає власний розрахунок відкритого інтересу

Відкритий інтерес майданчика рахують за різними правилами: у CME Group це контракти з фіксованим номіналом, у криптобірж — обсяг у монетах, частина майданчиків округлює значення при публікації.

Готовий графік з боку біржі віддає вже агреговане число, тому розходження між джерелами нема чим пояснити, а на різкому русі ціни воно маскує реальну динаміку позицій.

Власний розрахунок відкритого інтересу будується від первинних даних: забираємо оновлення по кожному майданчику, приводимо значення до спільної бази і лише потім агрегуємо. Так виходить єдина метрика по майданчиках — одна шкала, узгоджені мітки часу, однаковий крок публікації. Розходження між джерелами видно окремим рядом, а не як помилка на графіку.

Стійкість до ліквідацій закладається на рівні обробки. Каскад закриттів приходить пачкою оновлень, частина — із затримкою або повтором: потік буферизується, дублі відсікаються за ідентифікатором запису, пропущений інтервал дозапитується з історії.

Контроль якості даних іде паралельно — значення звіряється з незалежним джерелом, і при розходженні вище порогу спрацьовує сигнал, а не тихе згладжування.

Що перестає ламатися:

  • графік не перемальовується заднім числом при зміні джерела;
  • порівняння майданчиків залишається коректним на будь-якому інтервалі;
  • сплески від каскадних ліквідацій видно і вони пояснювані;
  • пропуск у потоці майданчика позначається флагом якості.

Варіанти розрахунку: знімки, потік подій, гібридна схема

Збирати відкритий інтерес можна двома різними способами: періодичним опитуванням майданчика (знімки стану) і підпискою на потік змін, де кожне оновлення приходить окремою подією.

Знімки дають рівний ряд без пропусків між точками, потік — мінімальну затримку й повноту, але потребує звірки зі знімком, щоб відновити значення після обриву зв'язку.

Що вибрати, вирішують чутливість споживача до затримки і те, як часто змінюється склад інструментів на майданчику. Нижче — чесне порівняння: де кожен варіант ламається і що доводиться добудовувати.

Варіант Коли підходить Обмеження
Знімки стану майданчика Ретроспектива, розрахунок за історією, майданчики із закритим потоком подій Точність обмежена кроком опитування, сплески між точками губляться
Потік змін Сигнали й оповіщення, де важлива затримка Обрив зв'язку дає провал у ряді, потрібен дозбір історії та звірка значення
Гібридна схема розрахунку Робочий індикатор з довгою історією та живим оновленням Дорожче в підтримці: два джерела, логіка звірки та розв'язання розходжень

Гібрид і виявляється робочим: опорний знімок на старті та за розкладом задає базове значення, потік змін уточнює його між знімками, а розходження понад поріг запускає перезбирання ділянки ряду. Так індикатор переживає обриви зв'язку та зміну складу інструментів без провалів.

Етапи впровадження: від розбору вимог до передачі

Починаємо з розбору вимог, а не з коду: від цього залежить, які майданчики й контракти потраплять у розрахунок, яка глибина історії потрібна і як часто оновлюється значення. Далі фіксуємо схему даних, домовляємося про формат видачі і лише потім збираємо розрахункове ядро.

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

  1. Розбір вимог. Уточнюємо перелік бірж та інструментів, горизонт історії, частоту перерахунку й спосіб доставки значень — вітрина, програмний інтерфейс або подієвий потік. Підсумок — узгоджений опис метрики.
  2. Схема даних. Визначаємо джерела, правила нормалізації та обробку розривів: пропуски збору, зміна контракту, вихідні дні. Фіксуємо, що вважаємо еталоном при розходженні.
  3. Складання розрахункового ядра. Реалізуємо розрахунок відкритого інтересу, агрегацію за інструментами та періодами, кешування. Логіка покривається автотестами до першого запуску на бойових даних.
  4. Перевірка на історичних даних. Проганяємо розрахунок на накопиченій історії та порівнюємо з незалежним джерелом. Тут виловлюються помилки округлення, дублі та зсув часових поясів.
  5. Звірка з майданчиком. Зіставляємо значення з даними біржі в контрольних точках, розбираємо розходження та документуємо допустимі відхилення.
  6. Приймання розрахунку. Передаємо методику й тести, відкриваємо доступ до моніторингу, підтверджуємо збіг на узгодженому наборі перевірок.
  7. Передача та навчання. Віддаємо вихідники, конфігурацію та інструкції з експлуатації, розбираємо типові збої та супроводжуємо перший самостійний запуск.

Що залишається в контурі замовника після здачі

Після здачі індикатора в контурі замовника залишається не лише робочий розрахунок, а й усе, що дозволяє супроводжувати його власними силами: оновлювати, налагоджувати та передавати новому інженеру. Нижче — перелік артефактів, які ми фіксуємо на прийманні.

  • Схема даних. Які поля приходять із біржових потоків (відкритий інтерес, обсяги, мітки часу), в яких одиницях, з якою періодичністю і як різні майданчики приводяться до одного вигляду.
  • Конфігурації. Список джерел, інтервали опитування, правила агрегації та перерахунку, пороги спрацювання — винесені в окремі файли й правляться без перезбирання.
  • Документація з індикатора. Формули розрахунку, поведінка при пропусках у потоці, розривах сесій та зміні контракту, реакція на запізнілі дані.
  • Регламенти оновлення. Порядок підключення нового майданчика або інструмента, випуск змін у розрахунок та обов'язкові перевірки перед викаткою.
  • Політики доступу до даних. Ролі, ключі доступу, розділення прав на читання й на зміну налаштувань, журнал дій.
  • Оповіщення про збої. Метрики та пороги, канали сповіщень, послідовність дій чергового при втраті потоку або розходженні значень.
  • Еталонні набори. Зрізи історичних даних, на яких перевіряється коректність розрахунку після будь-якої зміни.
  • Інструкція з розгортання. Підняти сервіс з нуля, перенести на інший контур, відкотитися на попередню версію.

Кожен артефакт передаємо з розбором на дзвінку: інженер проходить за схемою, показує, де міняти налаштування, і відповідає на запитання команди замовника.

Кейс: як розходження з біржовими значеннями зникло

Замовник — аналітична команда, яка будує сигнали на відкритому інтересі ф'ючерсів. Індикатор збирав значення з кількох майданчиків, але вони розходилися з біржовими вітринами до кількох відсотків: десь губилися часткові угоди, десь обсяг подвоювався при перепідключенні до потоку.

Щоранку аналітик вручну звіряв зрізи за інструментами — на це йшло понад дві години, і частина розходжень випливала вже після відкриття позиції.

Що змінили: збір переїхав на потік подій майданчика замість періодичного опитування, додалися дедуплікація за ідентифікатором угоди та зберігання знімків стану.

Агрегат тепер перераховується незалежно за сирими даними — якщо він розходиться з вітриною, значення позначається і йде в чергу на розбір, а не в сигнал.

Окремо поставили автоматичну звірку з еталоном: раз на інтервал індикатор порівнює себе з публічними даними CoinGlass і формує звіт за відхиленнями. Ручна робота скоротилася приблизно на 90% — аналітик дивиться лише розходження вище порогу.

Після переробки частка значень із розходженням понад 0.5% упала з 4% до 0.2%, а затримка оновлення — з п'яти хвилин до двох секунд. Аномалію у відкритому інтересі видно майже одразу, час реакції на різке зростання або скидання скоротився з години до пари хвилин. Збій збирача тепер помітний за пропуском знімків, а не за збитком у позиції.

Чим розрахунковий індикатор відрізняється від біржового значення?

Біржове значення відкритого інтересу майданчик рахує сам: він бачить усі позиції за своїми контрактами й оновлює метрику на закритті свічки або черговому зрізі. Точність метрики максимальна, але описує вона один майданчик, а ліквідації потрапляють у публічний потік із затримкою.

Розрахунковий індикатор збирає показник з кількох джерел: забираємо публічні потоки угод і позицій, приводимо контракти до єдиного номіналу й додаємо. Склад майданчиків задаємо явно — топ за обсягом або лише ті, де торгує клієнт, як публічні агрегатори на кшталт CoinGlass. Без фільтра ліквідацій каскад примусових закриттів дає сплеск, якого на ринку не було.

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

Для сигналів це перевага, для звірки зі звітом майданчика — джерело розходжень, яке закладають у допуски.

Джерело Коли підходить Обмеження
Біржове значення Робота в межах одного майданчика, звірка з його звітами Не бачить ринок цілком, затримка публікації, різна методика майданчиків
Розрахунковий індикатор Зведена аналітика та сигнали за кількома майданчиками Залежить від доступності потоків, потрібні нормалізація та фільтр ліквідацій
Гібрид Контроль ризику: важливі і охоплення, і точність Складніше в підтримці, потрібен контроль розходження джерел

Джерело вибирають під задачу: для звіту — біржове значення, для сигналів — розрахунковий індикатор, для контролю ризику — гібрид. Склад майданчиків і правила обробки ліквідацій фіксуємо в специфікації до старту робіт.

Технічні сумніви перед стартом робіт

Перед стартом замовники перевіряють не формулу агрегації, а стійкість потоку даних і ціну подальшого розширення. Нижче — питання, які найчастіше порушують на технічних зустрічах, і наші відповіді.

Індикатор збирає відкритий інтерес з кількох джерел: потокових каналів майданчиків і резервного опитування за розкладом. Кожне джерело пише в окреме сховище з міткою часу, а розрахунковий шар зводить дані в єдиний ряд — збій одного майданчика не викривляє загальну картину.

Що відбувається при розриві з'єднання з біржею?

Канал перепіднімається автоматично з наростаючою паузою, а пропущений інтервал закривається резервним опитуванням за минулі хвилини. Місце розриву позначається окремою ознакою, щоб аналітика не прийняла діру за нульовий інтерес.

Як перевіряється коректність розрахунку?

Щогодини агреговане значення звіряється з еталонною відповіддю майданчика, розходження вище порогу піднімає оповіщення. Окремо контролюємо повноту рядів: частка пропущених інтервалів і час до відновлення видні на одному дашборді.

Наскільки трудомістко додати новий майданчик?

Джерело підключається окремим адаптером до спільного інтерфейсу: опис контракту, нормалізація полів, тести на історичних даних. Новий майданчик не зачіпає розрахункове ядро, тому розширення йде передбачувано.

Що входить у передачу підтримки?

Схему даних, регламент чергування та алертів, інструкції з типових збоїв і розбір із вашою командою. За потреби залишаємося на супроводі — межу відповідальності фіксуємо заздалегідь.

Обговоримо задачу та повернемося з оцінкою і планом

Обговорення задачі починаємо з предметної частини: які майданчики й типи контрактів у фокусі — безстрокові ф'ючерси, квартальні, опціони, — чи потрібне розбиття за біржами або зведений індекс, за який період потрібна історія і як часто індикатор має оновлюватися.

Від замовника достатньо сценарію: як сигнал використовується в рішенні й яке розходження з публікованим значенням майданчика вважається неприпустимим.

Паралельно запитуємо доступи до даних майданчиків: публічні потоки, історію через програмний інтерфейс, де є — тестовий контур із ключами лише на читання.

Це ще до оцінки показує, чи вистачає глибини угод і знімків відкритого інтересу для розрахунку, чи джерело доведеться збирати через агрегатор.

Далі робимо пробний розрахунок: беремо вікно в кілька діб за одним-двома контрактами, рахуємо відкритий інтерес, звіряємо з публікованим значенням майданчика й показуємо розходження у відсотках. Після цього повертаємося з оцінкою та планом робіт.

Що входить у відповідь:

  • перелік майданчиків і контрактів: що віддає кожен — знімки відкритого інтересу, стрічку угод, глибину стакана;
  • підсумок пробного розрахунку — збіг із публікованим значенням у межах заданої точності або розбір причин розходження;
  • оцінка та план робіт за етапами: збір даних, розрахунок, відрисовка індикатора, оповіщення, приймання;
  • схема доставки сигналу: віджет на сторінці, програмний інтерфейс або повідомлення в месенджер;
  • вимоги до глибини історії та частоти перерахунку, щоб індикатор не відставав від ринку;
  • склад документації: формула розрахунку, конфігурації, інструкція з розгортання.

Напрямки блокчейн-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1141