Как выполнять TWAP и VWAP через Hyperliquid API
- 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: краткое сравнение
Как реализовать 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, ошибки кода или технические сбои могут привести к фактической стоимости, заметно отличающейся от ожиданий. Торговля бессрочными контрактами связана с высоким риском и может привести к полной или частичной потере средств. Этот материал предназначен только для технического ознакомления и не является инвестиционной, финансовой или юридической рекомендацией. Действуй осторожно и учитывай собственную ситуацию.



