Ранбуки
Полный чек-лист готовности деска и сертификационные тесты интеграции.
Чек-лист готовности деска
Перед выходом в продакшен убедитесь:
Подключение к API
- Стейджинг-эндпоинты протестированы
- Продакшен-эндпоинты настроены (при наличии)
- Эндпоинт health check отвечает
- WebSocket-соединение стабильно
Аутентификация
- Подписание EIP-712 работает
- Авторизация агента настроена (если применимо)
- Управление nonce реализовано
- Верификация подписи протестирована
Система котирования
- Массовое размещение заявок протестировано
- Сверка жизненного цикла заявок проверена
- Отслеживание исполнений реализовано
- Функция отмены протестирована
Риск-контроли
- MMP настроен и протестирован
- Модель маржи изучена
- Ограничения по тирам проверены
- Мониторинг портфеля реализован
Мониторинг
- Подписка на WebSocket-каналы оформлена
- Сверка заявок и исполнений автоматизирована
- Health check настроены
- Алертинг настроен
Аварийное отключение (kill switch)
- Возможность отменить все заявки
- Возможность немедленно отключиться
- Аварийные процедуры задокументированы
Хеджирование
- Интеграция с перпами Hyperliquid проверена
- Стратегия дельта-хеджирования реализована
- Расчёт маржи по перпам изучен
Расчёт
- Обработка экспирации протестирована
- Расчёт позиций проверен
- Источник референсной цены изучен
Сертификационные тесты интеграции
Тест 1: Размещение заявки
Шаги:
- Разместите одну заявку через
POST /order - Проверьте статус заявки:
ACKED→OPEN - Убедитесь, что заявка появляется в
GET /orders?wallet=... - Проверьте получение WebSocket-сообщений
order_updates
Ожидаемый результат: заявка размещена успешно, обновления статуса получены
Тест 2: Массовое размещение заявок
Шаги:
- Разместите 10 заявок через
POST /bulk_order - Убедитесь, что все заявки приняты
- Проверьте статусы заявок через REST и WS
- Убедитесь в отсутствии ошибок подписи/авторизации
Ожидаемый результат: все заявки размещены успешно
Тест 3: Отслеживание исполнений
Шаги:
- Разместите заявку, которая будет исполнена
- Отслеживайте WebSocket-канал
fills - Убедитесь, что исполнение получено с корректным
order_id - Проверьте, что исполнение появляется в
GET /fills?wallet=... - Убедитесь, что статус заявки обновляется до
FILLED
Ожидаемый результат: исполнения отслеживаются корректно, статус заявки обновлён
Тест 4: Отслеживание частичных исполнений
Шаги:
- Разместите заявку, которая будет исполнена частично
- Отслеживайте WebSocket-канал
fills(неorder_updates) - Убедитесь, что частичное исполнение получено
- Агрегируйте исполнения по
order_idдля расчёта исполненного объёма - Убедитесь, что статус заявки остаётся
OPEN(неPARTIALLY_FILLEDв WS)
Ожидаемый результат: частичные исполнения отслеживаются через канал fills, статус заявки корректен
Тест 5: Отмена заявки
Шаги:
- Разместите заявку через
POST /order - Отмените заявку через
DELETE /order - Проверьте статус заявки:
CANCELED - Проверьте получение WebSocket-сообщений
order_updates
Ожидаемый результат: заявка отменена успешно, обновления статуса получены
Тест 6: Срабатывание MMP
Шаги:
- Настройте MMP через
POST /mmp-config - Разместите заявки с включённым MMP
- Спровоцируйте срабатывание MMP, превысив лимиты
- Убедитесь, что заявки отменены с указанием причины MMP
- Проверьте, что остальные заявки с включённым MMP также отменены
Ожидаемый результат: MMP срабатывает корректно, заявки отменены
Тест 7: Отклонение по марже
Шаги:
- Разместите заявку, превышающую доступную маржу
- Убедитесь, что заявка отклонена с причиной "Insufficient margin"
- Проверьте, что причина отклонения содержит требуемую, доступную маржу и величину дефицита
- Проверьте статус заявки:
REJECTED
Ожидаемый результат: заявка отклонена с понятной причиной
Тест 8: Ограничение по тиру
Шаги:
- Используйте кошелёк, настроенный только на длинные позиции (long-only)
- Попробуйте разместить заявку на продажу без длинной позиции
- Убедитесь, что заявка отклонена с указанием причины, связанной с тиром
- Разместите заявку на покупку (должна пройти)
- Разместите заявку на продажу для закрытия позиции (должна пройти)
Ожидаемый результат: ограничения по тирам применяются корректно
Тест 9: Переподключение WebSocket
Шаги:
- Подключитесь к WebSocket
- Подпишитесь на каналы
- Отключите WebSocket
- Переподключитесь с экспоненциальной задержкой (exponential backoff)
- Заново подпишитесь на каналы
- Опросите REST, чтобы получить пропущенные обновления
Ожидаемый результат: переподключение работает, состояние восстановлено
Тест 10: Сверка портфеля
Шаги:
- Разместите заявки и дождитесь их исполнения
- Проверьте портфель через
GET /portfolio?wallet=... - Убедитесь, что позиции соответствуют исполнениям
- Проверьте корректность использования маржи
- Сверьте с обновлениями WebSocket-канала
portfolio
Ожидаемый результат: состояние портфеля точное, сверка выполнена успешно
Готовность к продакшену
Чек-лист перед продакшеном
- Все интеграционные тесты пройдены
- Мониторинг и алертинг настроены
- Kill switch протестирован
- Аварийные процедуры задокументированы
- Команда обучена реагированию на инциденты
- Контакты поддержки определены
Чек-лист запуска
- Стейджинг-окружение полностью протестировано
- Продакшен-эндпоинты проверены
- Дашборды мониторинга готовы
- Алертинг настроен
- График дежурств команды установлен
- Документация проверена
Ссылки
- Быстрый старт: Quickstart
- Справочник API: REST API
- Ошибки и отклонения: Errors
- Плейбук по инцидентам: Incidents