Программная торговля через Hyperliquid SDK
-
hyperliquid sdk
-
hyperliquid programmatic trade
-
hyperliquid python sdk
-
hyperliquid api программная торговля
-
ончейн-боты для бессрочников
Программная торговля уже давно не только для фондов и крупных маркетмейкеров. Если ты умеешь писать код, то можешь собрать собственного торгового бота для ончейн-бессрочников: получать рынок, проверять позиции, выставлять ордера и обрабатывать ошибки через API.
Hyperliquid — ончейн-биржа бессрочных контрактов с REST и WebSocket API. Вокруг нее есть официальные и комьюнити SDK для разных языков, поэтому базовые операции вроде выставления ордера или чтения баланса можно реализовать в несколько десятков строк кода. Ниже разберем, как начать с Python или JavaScript SDK, как выстроить более надежный процесс и почему в продакшене важно вынести подпись транзакций на аппаратный кошелек OneKey.
Почему Hyperliquid подходит для программной торговли
По сравнению с централизованными биржами, у Hyperliquid есть несколько сильных сторон:
- расчеты проходят ончейн, а средства не нужно отдавать на хранение третьей стороне;
- книга ордеров использует гибридную модель: офчейн-матчинг для скорости и ончейн-расчеты для прозрачности;
- API достаточно простой, документация регулярно обновляется, комьюнити активно;
- можно сохранить self-custody-подход и при этом получить опыт, близкий к CEX-трейдингу.
Для квантов и разработчиков это означает: можно строить стратегии, не отказываясь от контроля над ключами. Но контроль над ключами — это не только плюс, но и ответственность.
Подготовка окружения и установка SDK
Python
На момент написания статьи комьюнити Python SDK можно установить через pip. Лучше использовать виртуальное окружение, чтобы не ловить конфликты зависимостей:
python -m venv hl_env
source hl_env/bin/activate
pip install hyperliquid-python-sdk
Исходный код SDK размещается в экосистемных репозиториях OneKey GitHub и в официальной организации Hyperliquid. За актуальными адресами репозиториев и версиями лучше обращаться к официальной документации.
JavaScript / TypeScript
Если ты предпочитаешь Node.js:
npm install @nktkas/hyperliquid
# или используй официальный поддерживаемый пакет — ориентируйся на актуальную версию в npm registry
Для TypeScript удобно, что можно импортировать типы и получить нормальное автодополнение в IDE.
Подключение к API и инициализация клиента
Авторизация
Hyperliquid использует подпись приватным ключом для подтверждения торговых запросов. Каждый ордер подписывается через EIP-712 structured signing, чтобы запрос нельзя было подделать.
Пример на Python — псевдокод:
import os
from hyperliquid.exchange import Exchange
from hyperliquid.info import Info
from eth_account import Account
# Читай приватный ключ из переменных окружения, не хардкодь его в коде
private_key = os.environ['HL_PRIVATE_KEY']
account = Account.from_key(private_key)
info = Info(base_url='https://api.hyperliquid.xyz')
exchange = Exchange(account, base_url='https://api.hyperliquid.xyz')
Для продакшена настоятельно лучше не держать приватный ключ на сервере. Практичнее использовать аппаратный кошелек OneKey как слой подписи: ключ не покидает защищенный чип, а значит, даже при компрометации сервера его нельзя просто экспортировать с диска или из памяти.
Получение рыночных данных и состояния аккаунта
Снимок рынка
# Получить метаинформацию по всем бессрочникам и текущий контекст рынка
meta_and_asset_ctx = info.meta_and_asset_ctxs()
# В ответе будут поля вроде markPx — маркировочная цена, funding — ставка фондирования и другие данные
Позиции и баланс
user_state = info.user_state(account.address)
# user_state содержит marginSummary — сводку по марже,
# и assetPositions — позиции по отдельным рынкам
for pos in user_state['assetPositions']:
print(pos['position']['coin'], pos['position']['szi']) # тикер и размер позиции
Выставление ордеров
Рыночный ордер
order_result = exchange.market_open(
coin='BTC',
is_buy=True,
sz=0.001, # размер ордера
slippage=0.01 # максимально допустимое проскальзывание 1%
)
print(order_result)
Лимитный ордер
order_result = exchange.order(
coin='ETH',
is_buy=False,
sz=0.1,
limit_px=3200.0,
order_type={'limit': {'tif': 'Gtc'}} # Good Till Cancel
)
Поле tif поддерживает разные режимы, например:
Gtc— ордер остается активным до отмены;Ioc— исполнить сразу или отменить;Alo— только maker-ордер.
Выбор зависит от стратегии: маркетмейкинг, сетка, арбитраж или более простая directional-логика.
Пакетная отправка ордеров
Для маркетмейкинга и grid-стратегий часто нужно отправлять несколько ордеров за один раз. SDK поддерживает batch-интерфейсы, чтобы сократить количество сетевых запросов:
orders = [
{
'coin': 'BTC',
'is_buy': True,
'sz': 0.001,
'limit_px': 60000,
'order_type': {'limit': {'tif': 'Gtc'}}
},
{
'coin': 'BTC',
'is_buy': False,
'sz': 0.001,
'limit_px': 61000,
'order_type': {'limit': {'tif': 'Gtc'}}
},
]
result = exchange.bulk_orders(orders)
Отмена и изменение ордера
# Для отмены нужен coin и oid — ID ордера
cancel_result = exchange.cancel(coin='BTC', oid=123456789)
# Изменение ордера обычно работает как cancel + replace
modify_result = exchange.modify_order(
oid=123456789,
coin='BTC',
is_buy=True,
sz=0.002,
limit_px=59500,
order_type={'limit': {'tif': 'Gtc'}}
)
Обработка ошибок: базовые практики
В программной торговле надежная обработка ошибок так же важна, как сама торговая логика. Возможные проблемы: временная недоступность API, rate limit, отклоненный ордер, резкое изменение цены, недостаток маржи, рассинхронизация локального состояния.
Пример простого retry с экспоненциальной задержкой:
import time
def place_with_retry(exchange, kwargs, max_retries=3):
for attempt in range(max_retries):
try:
return exchange.order(**kwargs)
except Exception:
if attempt == max_retries - 1:
raise
wait = 2 ** attempt # 1s, 2s, 4s
time.sleep(wait)
В реальном боте стоит отдельно логировать ошибки, сохранять события в базу, проверять фактические позиции после каждой серии ордеров и иметь аварийный режим остановки.
WebSocket для отслеживания сделок в реальном времени
REST-поллинг подходит для низкочастотных стратегий. Если тебе нужны более быстрые обновления по сделкам, ордерам и рынку, используй WebSocket:
from hyperliquid.websocket_manager import WebsocketManager
def on_fill(data):
print('Сделка:', data)
ws = WebsocketManager(base_url='wss://api.hyperliquid.xyz')
ws.subscribe(
{'type': 'userFills', 'user': account.address},
callback=on_fill
)
ws.start()
Точный формат подписок и доступные каналы проверяй в официальной документации Hyperliquid.
Как защитить продакшен-бота с помощью OneKey
Горячий кошелек хранит приватный ключ в памяти или на диске. Если сервер взломают, средства могут быть выведены очень быстро. Для бота, который управляет реальными деньгами, более безопасная архитектура выглядит так:
- Аппаратный кошелек OneKey подключен к отдельному signing-серверу.
- Торговый бот формирует сообщение, которое нужно подписать.
- Сообщение передается в OneKey, где подпись выполняется внутри аппаратного защищенного элемента.
- Готовая подпись возвращается боту.
- Бот отправляет подписанный запрос в Hyperliquid.
В такой схеме приватный ключ остается внутри устройства и не экспортируется на программном уровне. EIP-712 также позволяет отображать структурированные данные для подписи на экране OneKey, чтобы пользователь мог вручную проверять важные операции.
Дополнительно имеет смысл использовать отдельный API Agent wallet для бота, если такой режим подходит твоей архитектуре. Это позволяет ограничить права и уменьшить риск, если торговая логика или инфраструктура дадут сбой.
Практичный вариант без кода: OneKey Perps
Если ты хочешь торговать ончейн-бессрочниками без самостоятельной сборки SDK-инфраструктуры, начни с OneKey Perps. Это более простой workflow: интерфейс для торговли, self-custody-подход и возможность использовать защиту аппаратного кошелька OneKey.
Для большинства пользователей это разумная стартовая точка: сначала понять механику бессрочников, маржи, плеча, ликвидаций и фондирования в понятном интерфейсе, а уже потом переходить к собственным ботам и API.
Полезные ресурсы
- Документация Hyperliquid: спецификация API, поля запросов и ответов, WebSocket-каналы.
- Официальный сайт OneKey: информация об аппаратных кошельках и приложении.
- Документация WalletConnect: если нужен мост для подписи через WalletConnect.
FAQ
Q1: Чем SDK отличается от прямых REST API-запросов?
SDK берет на себя подпись, форматирование запросов и часть типовой обработки ошибок. Прямой REST API дает больше гибкости, но тебе придется самостоятельно реализовать EIP-712 подпись и следить за деталями формата. Для старта SDK обычно удобнее.
Q2: Нужен ли KYC для программной торговли?
Hyperliquid — децентрализованный протокол, и на момент написания статьи торговля доступна через адрес кошелька без KYC. Но правила зависят от юрисдикции. Следи за местным регулированием и оценивай комплаенс-риски самостоятельно.
Q3: Как снизить риск больших убытков в экстремальном рынке?
Минимальный набор защиты:
- лимит максимального дневного или сессионного убытка;
- остановка бота при превышении заданной просадки;
- мониторинг unrealized PnL и отношения equity к марже;
- стоп-ордера, если они подходят стратегии;
- регулярная проверка, что фактическая позиция совпадает с ожидаемой;
- ограничения по плечу и размеру позиции.
Бессрочники с плечом могут привести к быстрой ликвидации, поэтому риск-менеджмент должен быть частью системы, а не дополнением «потом».
Q4: Как интегрировать OneKey с автоматизированным скриптом?
Можно использовать официальный SDK OneKey для вызова аппаратной подписи или связку USB/Bluetooth с подходящим signing-интерфейсом вроде eth_sign, если это совместимо с твоей схемой. В продакшене обычно выносят signing-сервис отдельно от торгового движка, чтобы уменьшить поверхность атаки.
Q5: Есть ли rate limit у batch-ордеров?
Актуальные лимиты нужно смотреть в официальной документации Hyperliquid. В любом случае лучше добавлять задержки между запросами и реализовать token bucket или sliding window, чтобы не упираться в лимиты и не получать отказы по ордерам.
Итог: от скрипта к продакшен-системе
Hyperliquid SDK сильно снижает порог входа в программную торговлю. Но путь от «скрипт запускается» до «система надежно работает с реальными средствами» требует работы над безопасностью подписи, обработкой ошибок, мониторингом и риск-менеджментом.
Если ты хочешь сначала попробовать ончейн-бессрочники без кода, скачай и установи OneKey, затем открой OneKey Perps и протестируй workflow в интерфейсе. Это спокойный способ разобраться с механикой торговли, не разворачивая собственного бота с первого дня.
Если у тебя уже есть команда и стратегия, OneKey можно использовать как аппаратный signing-слой для бота. Такой подход помогает защитить ключи и сделать архитектуру более устойчивой.
Риск-предупреждение: программная торговля связана с техническими и рыночными рисками. Бессрочные контракты используют маржу и плечо, из-за чего убытки могут быть значительными и в отдельных случаях превышать первоначальный ввод. Этот материал носит технический и образовательный характер, не является инвестиционной, финансовой или юридической рекомендацией. Крипторынок волатилен, а прошлые результаты не гарантируют будущую доходность.



