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

Коды причин отклонения перп-ордеров

Когда форма ордера сообщает, что ордер «будет отклонён», она приводит код причины. Тот же код возвращает и проверка в реальном времени перед подписью (предпросмотр), и фактическая отправка, поэтому форма показывает ровно то, что сделает сервер.

Как форма использует коды:

  • Блокирующие коды заменяют текст кнопки отправки на причину (например, Not enough margin), пока вы не измените ордер.
  • Коды обновления (stale_position_snapshot, venue_risk_unavailable) перепроверяются автоматически и никогда не блокируют кнопку.
  • Коды повтора с блокировкой (price_unavailable, account_health_unavailable) тоже перепроверяются автоматически, но блокируют кнопку, пока проверка не пройдёт.
  • Неудачный предпросмотр никогда вас не блокирует. Если предпросмотр недоступен, форма не показывает цифры, но отправить ордер всё равно можно. Реальная проверка в любом случае выполняется при отправке.
  • invalid_order, engine_rejected и любой неизвестный код блокируют кнопку и показывают сообщение сервера без изменений, поскольку в нём указано поле или правило, не прошедшее проверку.

Пользователи API получают то же значение в поле reasonCode в ответах POST /v1/tee-perp/preview, а также при отправке ордеров, пакетов ордеров и изменений кредитного плеча. Человекочитаемый текст (reason в предпросмотре, message в ответах на отправку) носит диагностический характер; ветвление логики стройте по коду.

Маржа и позиция​

КодЧто означаетЧто делать
insufficient_marginПосле исполнения этого ордера (и всех открытых перп-ордеров) средств на счёте не хватит для покрытия маржинальных требований. Требование определяется как худшее из портфельной маржи Hypercall и маржи Hyperliquid.Воспользуйтесь карточкой, которую показывает форма: Use max (максимальный размер, проходящий проверку), Raise to N× (минимальное кредитное плечо, проходящее проверку) или Deposit (пополнить недостающую сумму). Отмена активных ордеров также высвобождает маржу.
reduce_only_exceeds_positionОрдер reduce-only увеличит или перевернёт позицию вместо её сокращения.Установите размер не больше открытой позиции (форма предлагает Use position) или отключите Reduce only.
mode_change_with_positionВы попытались переключиться между кросс- и изолированной маржой на рынке, где у вас открыта позиция. Hyperliquid этого тоже не допускает.Оставьте текущий режим или закройте позицию и затем переключитесь.
leverage_requires_flat_accountИзменение кредитного плеча отклонено, так как на счёте есть открытые перп-позиции или ожидающие перп-ордера. Это происходит только там, где Hypercall не учитывает риск ликвидации на Hyperliquid в марже; в продакшене он учитывается, поэтому там этот код не возвращается.Закройте позиции и отмените перп-ордера, затем измените кредитное плечо.
liquidation_pendingСчёт находится в стадии предварительной ликвидации, и вот-вот начнётся полная ликвидация. Hypercall отклоняет новые перп-ордера по этому счёту.Дождитесь завершения ликвидации. См. Ликвидация.

Настройка счёта​

КодЧто означаетЧто делать
account_not_pmДля перп-ордеров нужен счёт с портфельной маржой.Включите портфельную маржу на странице счёта и повторите попытку.
unified_mode_requiredДля ордеров, увеличивающих риск, на торговом счёте должен быть включён режим unified account Hyperliquid.Нажмите Enable unified mode в форме.
builder_not_approvedHyperliquid отклонил ордер, поскольку счёт не одобрил builder-адрес Hypercall. Этот код приходит от Hyperliquid при отправке, а не при предпросмотре, и пользователи API видят его в поле errorCode ответа на отправку, а не в reasonCode.Один раз нажмите Enable trading. См. Перпы на Hypercall.
account_health_unavailableHypercall сейчас не может получить данные о маржинальном состоянии счёта, поэтому отклоняет всё, что увеличивает риск.Форма перепроверяет автоматически. Чтобы тем временем сократить риск, отправьте ордер с включённым Reduce only.

Рынок и данные​

КодЧто означаетЧто делать
market_not_supportedHypercall не может оценивать риск по этому рынку. Для этого нужны ценовой фид, сетка маржинальных сценариев и маржинальная шкала Hyperliquid в USDC для вашего счёта.Выберите поддерживаемый рынок.
trading_haltedТорговля приостановлена: глобально или по этому рынку.Подождите. Форма держит кнопку неактивной, пока торговля не возобновится.
price_unavailableЦена, по которой Hypercall оценивает рынок, отсутствует или устарела.Форма перепроверяет автоматически. Hypercall не подставляет цену наугад, поэтому отклоняет ордера, пока не поступит свежая.
stale_position_snapshotПоследние данные о вашей позиции или капитале на Hyperliquid отсутствуют или слишком устарели.Ничего. Форма сама перепроверит один раз. Если ошибка сохраняется, обновите страницу.
venue_risk_unavailableДанные о риске на Hyperliquid (кредитное плечо, цены ликвидации, обеспечение по позициям) отсутствуют или не совпадают с последними данными о вашей позиции.Ничего. Форма сама перепроверит один раз.

Условия ордера​

КодЧто означаетЧто делать
invalid_orderНедопустимые условия ордера: точность цены или размера, некорректная связка TP/SL или неверный клиентский идентификатор ордера.Исправьте шаг цены или шаг размера и отправьте заново.
action_not_supportedПолитика подписывающего анклава не разрешает такое действие. Если это происходит с типом ордера, который предлагает форма, она помечает этот тип как недоступный.Используйте поддерживаемый тип ордера.
engine_rejectedЛюбой другой отказ. Точная причина указана в тексте reason.Прочитайте сообщение. Если оно непонятно, обратитесь в поддержку и приложите текст.

См. также​