Цю сторінку перекладено автоматично. Оригінал англійською мовою є канонічним. Читати англійською
Перейти к основному содержимому

Розрахунок та експірація

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

Час експірації

В основній мережі контракти SpaceX (SPCX) експірують о 16:00 ET у дату їхньої експірації.

Тестнет наразі експірує о 08:00 UTC у дату експірації.

На момент експірації:

  • Нові заявки відхиляються
  • Відкриті заявки скасовуються
  • Позиції входять у процес розрахунку

Життєвий цикл інструменту

Інструменти проходять через три стани:

СтанОписТоргівля
ActiveЗвичайна торгівляУвімкнена
Expired Pending PriceОчікування ціни розрахунку від оракулаВимкнена
SettledРозрахунок завершено, позиції закритіН/Д

Переходи між станами

  1. Active → Expired Pending Price: Досягнуто час експірації контракту
  2. Expired Pending Price → Settled: Ціна розрахунку доступна і всі позиції розраховані

Щойно інструмент входить у стан Expired Pending Price, усі відкриті заявки скасовуються, а нові заявки відхиляються з повідомленням "Instrument has expired".

Ціна розрахунку

Ціна розрахунку — це 30-хвилинний TWAP (Time-Weighted Average Price) індексної ціни Hyperliquid Oracle для базового активу.

ПараметрЗначення
Джерело ціниHyperliquid Oracle (індексна ціна)
Вікно TWAP30 хвилин
Кінець вікнаЧас експірації контракту

Оракул починає збирати вибірку за 30 хвилин до експірації та обчислює TWAP у момент експірації.

Для розрахунку потрібен фіналізований TWAP. Якщо ця фіналізована ціна недоступна на момент тіку експірації, інструмент залишається в стані Expired Pending Price і повторні спроби виконуються автоматично. Торгівля в цьому стані вже вимкнена, але зарахування та списання коштів здійснюються лише після появи фіналізованої ціни оракула.

Обчислення вартості розрахунку

Розрахунок обчислюється як внутрішня вартість опціону на момент експірації:

Колл-опціони:

Вартість розрахунку=max(0,SK)×Q\text{Вартість розрахунку} = \max(0, S - K) \times Q

Пут-опціони:

Вартість розрахунку=max(0,KS)×Q\text{Вартість розрахунку} = \max(0, K - S) \times Q

Де:

  • SS = Ціна розрахунку (30-хвилинний TWAP)
  • KK = Страйк
  • QQ = Розмір позиції (зі знаком: додатний для довгої позиції, від'ємний для короткої)

Приклади

Довга позиція, колл (ITM):

  • Позиція: Лонг 2 BTC-100000-C
  • Ціна розрахунку: $105,000
  • Внутрішня вартість: max(0, 105000 - 100000) = $5,000
  • Вартість розрахунку: 5,000×2=+5,000 × 2 = **+10,000** (зараховано)

Коротка позиція, колл (ITM):

  • Позиція: Шорт 2 BTC-100000-C
  • Ціна розрахунку: $105,000
  • Вартість розрахунку: 5,000×2=5,000 × -2 = **-10,000** (списано)

Довга позиція, пут (OTM):

  • Позиція: Лонг 1 BTC-100000-P
  • Ціна розрахунку: $105,000
  • Внутрішня вартість: max(0, 100000 - 105000) = $0
  • Вартість розрахунку: $0 (експірує без вартості)

Процес розрахунку

Коли відбувається розрахунок:

  1. Отримання ціни: Оракул повертає 30-хвилинний TWAP
  2. Обчислення вартості: Для кожної позиції обчислюється внутрішня вартість
  3. Оновлення балансу: Вартість розрахунку додається до балансу рахунку (довга позиція ITM) або віднімається з нього (коротка позиція ITM)
  4. Видалення позиції: Позиція закривається та видаляється з портфеля
  5. Надсилання події: Повідомлення PositionExpired надсилається через WebSocket

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

Події WebSocket

PositionExpired

Надсилається, коли позиція розрахована:

{
"type": "PositionExpired",
"wallet_address": "0x...",
"symbol": "BTC-20250131-100000-C",
"position_size": 2.0,
"settlement_price": 5000.0,
"settlement_value": 10000.0,
"timestamp": 1738310400000
}
ПолеОпис
position_sizeРозмір позиції зі знаком (додатний = довга позиція, від'ємний = коротка)
settlement_priceВнутрішня вартість на контракт
settlement_valueЗагальна сума розрахунку готівкою

MarketExpired

Надсилається, коли інструмент переходить у стан Expired Pending Price:

{
"type": "MarketUpdate",
"symbol": "BTC-20250131-100000-C",
"status": "MARKET_EXPIRED",
"timestamp": 1738310400000
}

Ендпоінти API

Отримати статус інструменту

GET /instruments/{symbol}

Повертає поточний статус інструменту (ACTIVE, EXPIRED_PENDING_PRICE або SETTLED).

Отримати історію розрахунків

GET /settlement/history?wallet=0x...

Повертає записи розрахунків для вашого рахунку.

Відповідь:

{
"success": true,
"data": [
{
"symbol": "BTC-20250131-100000-C",
"position_size": 2.0,
"settlement_price": 5000.0,
"settlement_value": 10000.0,
"settled_at": 1738310400000
}
]
}

Обробка збоїв

Оракул недоступний

Якщо оракул не може надати ціну розрахунку на момент експірації:

  • Інструмент залишається в стані Expired Pending Price
  • Система повторює спроби кожні 30 секунд
  • Спрацьовує сповіщення на продакшені, якщо очікування фіналізованої ціни триває довго

Торгівля блокується негайно в момент експірації незалежно від доступності оракула.

Затримка фіналізованої ціни

Якщо фіналізований TWAP затримується:

  • Розрахунок затримується
  • Система очікує фіналізовану ціну розрахунку від оракула
  • Користувачі можуть бачити, що інструмент залишається в стані Expired Pending Price
  • Розрахунок готівкою з'являється після того, як механізм повторних спроб застосує фіналізовану ціну

Перезапуск системи

Стан розрахунку зберігається в базі даних. Якщо система перезапускається:

  • Експіровані інструменти визначаються з БД під час запуску
  • Розрахунок продовжується автоматично
  • Гарантії ідемпотентності запобігають подвійному розрахунку

Параметри

ПараметрЗначенняОпис
Інтервал перевірки експірації60 секундЯк часто система перевіряє експірації
Вікно TWAP30 хвилинВікно усереднення ціни розрахунку
Інтервал повторних спроб розрахунку30 секундЧастота повторних спроб, коли ціна недоступна
Поріг сповіщення про фіналізовану ціну30 хвилинПопередження, якщо експірований інструмент усе ще очікує фіналізовану ціну
Поріг сповіщення про незавершені виплати1 годинаКритичне сповіщення, якщо записи виплат розрахунку залишаються незастосованими

Найкращі практики

  1. Відстежуйте експірації: Стежте за датами експірації ваших позицій через ендпоінт портфеля
  2. Плануйте заздалегідь: Закривайте позиції до експірації, якщо хочете уникнути розрахунку
  3. Перевіряйте ціни розрахунку: Переконайтеся, що ціна оракула відповідає вашим очікуванням
  4. Підпишіться на WebSocket: Отримуйте події PositionExpired у реальному часі для негайного сповіщення
  5. Підтримуйте маржинальний буфер: Забезпечте достатню маржу для потенційних розрахунків коротких позицій ITM

Ончейн-розрахунок

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

  • Оракул обчислює TWAP розрахунку та публікує фінальну ціну експірації.
  • Контракт Exchange може верифікувати опубліковану ціну розрахунку ончейн.
  • Живі стрічки оракула не транслюються ончейн. Фінальні ціни розрахунку є ончейн-референсом для експірації.

Див. також: