Эта страница переведена автоматически. Оригинал на английском языке является каноническим. Читать на английском
Перейти к основному содержимому

Ранбуки

Полный чек-лист готовности деска и сертификационные тесты интеграции.

Чек-лист готовности деска

Перед выходом в продакшен убедитесь:

Подключение к API

  • Стейджинг-эндпоинты протестированы
  • Продакшен-эндпоинты настроены (при наличии)
  • Эндпоинт health check отвечает
  • WebSocket-соединение стабильно

Аутентификация

  • Подписание EIP-712 работает
  • Авторизация агента настроена (если применимо)
  • Управление nonce реализовано
  • Верификация подписи протестирована

Система котирования

  • Массовое размещение заявок протестировано
  • Сверка жизненного цикла заявок проверена
  • Отслеживание исполнений реализовано
  • Функция отмены протестирована

Риск-контроли

  • MMP настроен и протестирован
  • Модель маржи изучена
  • Ограничения по тирам проверены
  • Мониторинг портфеля реализован

Мониторинг

  • Подписка на WebSocket-каналы оформлена
  • Сверка заявок и исполнений автоматизирована
  • Health check настроены
  • Алертинг настроен

Аварийное отключение (kill switch)

  • Возможность отменить все заявки
  • Возможность немедленно отключиться
  • Аварийные процедуры задокументированы

Хеджирование

  • Интеграция с перпами Hyperliquid проверена
  • Стратегия дельта-хеджирования реализована
  • Расчёт маржи по перпам изучен

Расчёт

  • Обработка экспирации протестирована
  • Расчёт позиций проверен
  • Источник референсной цены изучен

Сертификационные тесты интеграции

Тест 1: Размещение заявки

Шаги:

  1. Разместите одну заявку через POST /order
  2. Проверьте статус заявки: ACKEDOPEN
  3. Убедитесь, что заявка появляется в GET /orders?wallet=...
  4. Проверьте получение WebSocket-сообщений order_updates

Ожидаемый результат: заявка размещена успешно, обновления статуса получены

Тест 2: Массовое размещение заявок

Шаги:

  1. Разместите 10 заявок через POST /bulk_order
  2. Убедитесь, что все заявки приняты
  3. Проверьте статусы заявок через REST и WS
  4. Убедитесь в отсутствии ошибок подписи/авторизации

Ожидаемый результат: все заявки размещены успешно

Тест 3: Отслеживание исполнений

Шаги:

  1. Разместите заявку, которая будет исполнена
  2. Отслеживайте WebSocket-канал fills
  3. Убедитесь, что исполнение получено с корректным order_id
  4. Проверьте, что исполнение появляется в GET /fills?wallet=...
  5. Убедитесь, что статус заявки обновляется до FILLED

Ожидаемый результат: исполнения отслеживаются корректно, статус заявки обновлён

Тест 4: Отслеживание частичных исполнений

Шаги:

  1. Разместите заявку, которая будет исполнена частично
  2. Отслеживайте WebSocket-канал fills (не order_updates)
  3. Убедитесь, что частичное исполнение получено
  4. Агрегируйте исполнения по order_id для расчёта исполненного объёма
  5. Убедитесь, что статус заявки остаётся OPEN (не PARTIALLY_FILLED в WS)

Ожидаемый результат: частичные исполнения отслеживаются через канал fills, статус заявки корректен

Тест 5: Отмена заявки

Шаги:

  1. Разместите заявку через POST /order
  2. Отмените заявку через DELETE /order
  3. Проверьте статус заявки: CANCELED
  4. Проверьте получение WebSocket-сообщений order_updates

Ожидаемый результат: заявка отменена успешно, обновления статуса получены

Тест 6: Срабатывание MMP

Шаги:

  1. Настройте MMP через POST /mmp-config
  2. Разместите заявки с включённым MMP
  3. Спровоцируйте срабатывание MMP, превысив лимиты
  4. Убедитесь, что заявки отменены с указанием причины MMP
  5. Проверьте, что остальные заявки с включённым MMP также отменены

Ожидаемый результат: MMP срабатывает корректно, заявки отменены

Тест 7: Отклонение по марже

Шаги:

  1. Разместите заявку, превышающую доступную маржу
  2. Убедитесь, что заявка отклонена с причиной "Insufficient margin"
  3. Проверьте, что причина отклонения содержит требуемую, доступную маржу и величину дефицита
  4. Проверьте статус заявки: REJECTED

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

Тест 8: Ограничение по тиру

Шаги:

  1. Используйте кошелёк, настроенный только на длинные позиции (long-only)
  2. Попробуйте разместить заявку на продажу без длинной позиции
  3. Убедитесь, что заявка отклонена с указанием причины, связанной с тиром
  4. Разместите заявку на покупку (должна пройти)
  5. Разместите заявку на продажу для закрытия позиции (должна пройти)

Ожидаемый результат: ограничения по тирам применяются корректно

Тест 9: Переподключение WebSocket

Шаги:

  1. Подключитесь к WebSocket
  2. Подпишитесь на каналы
  3. Отключите WebSocket
  4. Переподключитесь с экспоненциальной задержкой (exponential backoff)
  5. Заново подпишитесь на каналы
  6. Опросите REST, чтобы получить пропущенные обновления

Ожидаемый результат: переподключение работает, состояние восстановлено

Тест 10: Сверка портфеля

Шаги:

  1. Разместите заявки и дождитесь их исполнения
  2. Проверьте портфель через GET /portfolio?wallet=...
  3. Убедитесь, что позиции соответствуют исполнениям
  4. Проверьте корректность использования маржи
  5. Сверьте с обновлениями WebSocket-канала portfolio

Ожидаемый результат: состояние портфеля точное, сверка выполнена успешно

Готовность к продакшену

Чек-лист перед продакшеном

  • Все интеграционные тесты пройдены
  • Мониторинг и алертинг настроены
  • Kill switch протестирован
  • Аварийные процедуры задокументированы
  • Команда обучена реагированию на инциденты
  • Контакты поддержки определены

Чек-лист запуска

  • Стейджинг-окружение полностью протестировано
  • Продакшен-эндпоинты проверены
  • Дашборды мониторинга готовы
  • Алертинг настроен
  • График дежурств команды установлен
  • Документация проверена

Ссылки

  • Быстрый старт: Quickstart
  • Справочник API: REST API
  • Ошибки и отклонения: Errors
  • Плейбук по инцидентам: Incidents