Как выполнять TWAP и VWAP через Hyperliquid API

6 мая 2026 г.
  • twap vwap hyperliquid
  • hyperliquid execution api
  • twap алгоритмическая торговля
  • дробление крупных ордеров на Hyperliquid
  • vwap для ончейн-бессрочников

Когда ордер достаточно крупный, простое исполнение маркет-ордером часто создает заметный market impact: твоя покупка сама двигает цену вверх, а средняя цена входа получается хуже ожидаемой. Чтобы решать эту проблему, профессиональные участники рынка используют алгоритмы исполнения. Два классических варианта — TWAP, средневзвешенная по времени цена, и VWAP, средневзвешенная по объему цена.

Открытый API Hyperliquid позволяет разработчикам реализовать такие алгоритмы прямо на рынке ончейн-бессрочников. Ниже разберем, как работают TWAP и VWAP, как их можно реализовать через API и в каких ситуациях каждый подход уместнее. Если ты не хочешь писать код, OneKey Perps дает удобный вход в торговлю ончейн-бессрочниками без самостоятельной реализации алгоритмов.

Что такое TWAP

TWAP строится на простой идее: крупный ордер равномерно делится по времени, а небольшие части отправляются через фиксированные интервалы. Итоговая цена исполнения стремится к средневзвешенной по времени цене за выбранный период.

Пример: тебе нужно купить BTC-бессрочников на 1 млн долларов в течение 1 часа. TWAP может разбить сделку на 60 частей и исполнять примерно по 16,7 тыс. долларов каждую минуту. Так итоговая средняя цена будет ближе к средней цене за этот час, а не к цене одной агрессивной крупной сделки.

Плюсы TWAP: его легко реализовать, и он не требует постоянного анализа текущих объемов торгов. Минус: алгоритм не учитывает, насколько рынок активен в конкретный момент. Он продолжит отправлять ордера даже в периоды низкой ликвидности, где проскальзывание может быть выше.

Что такое VWAP

VWAP идет дальше: он учитывает не только время, но и объем торгов. Алгоритм оценивает распределение объемов по временным интервалам и старается исполнять больше в периоды высокой активности, а меньше — когда объемы слабые. Цель — приблизить среднюю цену исполнения к рыночному VWAP за период.

Для VWAP нужны исторические или realtime-данные по сделкам и объемам, поэтому реализация сложнее, чем у TWAP. Зато на рынках, где ликвидность распределена неравномерно, VWAP часто помогает снизить стоимость исполнения.

Почему это важно для ончейн-рынков

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

Перед настройкой параметров стоит изучить официальную документацию Hyperliquid: там описаны структура стакана, комиссии и особенности API. Это помогает реалистично выбирать размер частей, интервалы, допустимое проскальзывание и правила остановки.

TWAP и VWAP: краткое сравнение

КритерийTWAPVWAP
Основная логикаДелит ордер равномерно по времениДелит ордер с учетом распределения объемов
ДанныеДостаточно времени и размера ордераНужны данные по сделкам и объемам
СложностьНижеВыше
Подходит дляПростого и надежного исполненияРынков с выраженными объемными паттернами
Главный рискИсполнение в периоды низкой ликвидностиОшибочная модель объемов или задержки данных

Как реализовать TWAP через Hyperliquid REST API

Базовая идея

Через endpoint для выставления ордеров Hyperliquid можно циклически отправлять дочерние ордера и ждать заданный интервал между ними:

import time
import math


def execute_twap(exchange, info, coin, total_size, is_buy, duration_seconds, num_slices):
    """
    Исполняет total_size за duration_seconds секунд,
    разбивая объем на num_slices равных частей.
    """
    slice_size = total_size / num_slices
    interval = duration_seconds / num_slices

    for i in range(num_slices):
        # Получаем текущую mark price
        ctx = info.meta_and_asset_ctxs()
        mark_px = get_mark_price(ctx, coin)

        # Маркет-ордер с допустимым проскальзыванием
        # При необходимости можно заменить на лимитный ордер рядом со стаканом
        result = exchange.market_open(
            coin=coin,
            is_buy=is_buy,
            sz=round(slice_size, 4),
            slippage=0.005  # 0,5% допустимого проскальзывания
        )

        print(f"[{i + 1}/{num_slices}] Исполнено: {result}")

        if i < num_slices - 1:
            time.sleep(interval)

    print("TWAP исполнение завершено")

В production-версии обязательно нужны дополнительные механизмы: повторные попытки при ошибках, обработка частичного исполнения, контроль открытых ордеров и защита на случай экстремальной волатильности.

Улучшение: лимитные ордера для снижения стоимости

Каждый дочерний ордер можно отправлять как лимитный, например чуть лучше текущего best bid или best ask. Это может снизить комиссии и проскальзывание, но появляется риск неисполнения.

Практичный вариант — поставить таймаут: если лимитный ордер не исполнился за заданное время, отменить его и добрать остаток маркет-ордером.

def place_with_timeout(exchange, coin, is_buy, sz, limit_px, timeout_seconds=30):
    result = exchange.order(
        coin=coin,
        is_buy=is_buy,
        sz=sz,
        limit_px=limit_px,
        order_type={"limit": {"tif": "Gtc"}}
    )

    oid = result["response"]["data"]["statuses"][0]["resting"]["oid"]

    time.sleep(timeout_seconds)

    # Проверяем, висит ли ордер в стакане
    open_orders = get_open_orders(coin)

    if any(o["oid"] == oid for o in open_orders):
        exchange.cancel(coin=coin, oid=oid)

        # Добираем остаток маркет-ордером
        exchange.market_open(
            coin=coin,
            is_buy=is_buy,
            sz=get_remaining_size(oid),
            slippage=0.01
        )

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

Как считать realtime VWAP по сделкам через WebSocket

Для VWAP нужно накапливать объем и произведение цены на объем:

class VWAPTracker:
    def __init__(self):
        self.cumulative_pv = 0.0  # сумма price * volume
        self.cumulative_v = 0.0   # сумма volume

    def on_trade(self, price, size):
        self.cumulative_pv += price * size
        self.cumulative_v += size

    @property
    def vwap(self):
        if self.cumulative_v == 0:
            return None
        return self.cumulative_pv / self.cumulative_v

Через WebSocket можно подписаться на поток сделок Hyperliquid. Каждая новая сделка вызывает on_trade, а значение VWAP обновляется в реальном времени. Затем алгоритм исполнения сравнивает текущую рыночную цену с рассчитанным VWAP и решает, стоит ли отправлять следующую часть ордера, каким размером и каким типом ордера.

Формат подписки и параметры сообщений стоит сверять с официальной документацией Hyperliquid.

Рекомендации по параметрам

При настройке TWAP или VWAP не стоит начинать с агрессивных значений. Для начала полезно ограничить:

  • размер одной части относительно средней глубины стакана;
  • максимальное допустимое проскальзывание;
  • общее время исполнения;
  • отклонение цены от точки старта, при котором алгоритм ставится на паузу;
  • максимальное число повторных попыток при ошибках API;
  • правила отмены и повторного размещения лимитных ордеров.

Для TWAP ключевые параметры — duration_seconds, num_slices, размер каждой части и slippage. Для VWAP важнее качество данных по объемам и корректность модели распределения ликвидности.

Сравнение с другими DEX-алгоритмами исполнения

  • dYdX также поддерживает выставление ордеров через REST API, поэтому похожую TWAP-логику можно реализовать и там.
  • GMX использует модель с оракулами цен, поэтому дизайн алгоритма исполнения отличается от классического стаканного подхода.
  • Hyperliquid по модели стакана ближе к централизованным биржам, поэтому опыт реализации TWAP/VWAP с CEX во многом переносим.

Не хочешь писать код? Попробуй OneKey Perps

Не каждому пользователю нужно самостоятельно писать и поддерживать торговый алгоритм. OneKey Perps предлагает понятный интерфейс для торговли ончейн-бессрочниками и использует безопасное подписание через OneKey hardware wallet.

Для сделок среднего размера можно применять более простой рабочий процесс: заранее определить общий объем, разбить его на несколько частей, использовать лимитные ордера и исполнять их вручную в течение выбранного периода. Это не заменяет полноценный алгоритм, но помогает снизить market impact без кода.

Если тебе нужен практичный способ торговать бессрочниками на Hyperliquid без самостоятельной разработки, скачай и попробуй OneKey, а затем используй OneKey Perps как безопасный и удобный рабочий интерфейс.

Частые вопросы

Q1: Что лучше использовать на Hyperliquid — TWAP или VWAP?

Для большинства индивидуальных разработчиков TWAP проще и надежнее на старте. VWAP может быть эффективнее, если у рынка есть устойчивые паттерны объема, но для него нужны исторические данные и более сложная настройка. Практичный путь — сначала освоить TWAP, а затем переходить к VWAP после накопления данных.

Q2: Алгоритм исполнения полностью убирает market impact?

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

Q3: Как оценивать качество исполнения?

Обычно смотрят отклонение фактической средней цены исполнения от бенчмарка за период — TWAP или VWAP. Часто это называют implementation shortfall. Важно логировать каждую дочернюю сделку: цену, размер, время, тип ордера, комиссию и статус исполнения.

Q4: Можно ли интегрировать OneKey hardware wallet с алгоритмическим скриптом?

Да. OneKey поддерживает стандартные интерфейсы Ethereum-подписей. Скрипт может передавать сообщение на подпись через локальный signing flow, а после подтверждения отправлять подписанную транзакцию или запрос в Hyperliquid. Для низкочастотных сценариев вроде TWAP задержка подписи обычно не критична.

Q5: Что делать, если во время исполнения рынок резко пошел против позиции?

Нужна защита по цене. Например, если текущая цена отклонилась от цены старта больше чем на заданный порог, допустим 2%, алгоритм может автоматически поставить исполнение на паузу или завершить его. Это помогает не продолжать набирать позицию в условиях резко неблагоприятного движения.

Итоги

TWAP и VWAP — полезные инструменты для снижения стоимости исполнения крупных ордеров. Благодаря открытому API Hyperliquid их можно применять и на рынке ончейн-бессрочников. Независимо от того, пишешь ли ты код или вручную дробишь сделку, логика одна: распределить объем во времени, уменьшить удар по стакану и контролировать среднюю цену.

Если ты ищешь безопасный и понятный способ торговать ончейн-бессрочниками без разработки собственного execution engine, OneKey Perps — хороший стартовый вариант. Скачай OneKey, подключи кошелек и используй OneKey Perps для аккуратной работы с позициями и ордерами.

Риск-предупреждение: алгоритмы исполнения не гарантируют сделку по конкретной цене. Волатильность, нехватка ликвидности, задержки API, ошибки кода или технические сбои могут привести к фактической стоимости, заметно отличающейся от ожиданий. Торговля бессрочными контрактами связана с высоким риском и может привести к полной или частичной потере средств. Этот материал предназначен только для технического ознакомления и не является инвестиционной, финансовой или юридической рекомендацией. Действуй осторожно и учитывай собственную ситуацию.

Защитите свое криптопутешествие с OneKey

View details for Магазин OneKeyМагазин OneKey

Магазин OneKey

Самый продвинутый аппаратный кошелек в мире.

View details for Загрузить приложениеЗагрузить приложение

Загрузить приложение

Предупреждения о мошенничестве. Поддержка всех монет.

View details for OneKey SifuOneKey Sifu

OneKey Sifu

Ясность в криптовалюте — на расстоянии одного звонка.