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

Симуляция риска PM

Любой показатель из раздела Портфельная маржа можно получить по вашему счёту, а любую сделку можно просчитать до отправки. Симулятор не является отдельной моделью. Он выполняет тот же код расчёта маржи, с той же политикой и на том же снимке движка, что и проверка ваших ордеров и мониторинг ликвидаций.

В приложении​

Страница Portfolio margin (/risk/span) для PM-счёта показывает:

  • капитал (equity), IM, MM, покупательную способность и запас до поддерживающей маржи
  • отдельно сканирующий риск (scanning risk), опционный минимум (option floor) и гамма-надбавку (gamma overlay)
  • сетку сценариев по каждому базовому активу с P&L каждого сценария и каждой ноги
  • Simulate positions: добавьте гипотетические ноги к своей книге или замените её целиком и сравните текущие IM и MM с симулированными. Симуляция никогда не выставляет ордер и не меняет состояние счёта.

Страница обновляется каждые 5 секунд.

Эндпоинты​

ЭндпоинтЧто возвращаетАвторизация
GET /portfolio?wallet=Текущие капитал, IM, MM и позицииНет
GET /risk/grid?wallet=Текущие сканирующий риск, минимум, надбавку и матрицу сценариев по каждому базовому активуНет
POST /risk/simulate/portfolioIM и MM при других позицияхНет
POST /risk/simulate/ordersПройдёт ли ордер или пакет маржинальную проверку и сколько IM он займётНет
GET /liquidation/status?wallet=Статус ликвидации и дефицитНет

Все они принимают в параметре wallet ваш кошелёк менеджера; Hypercall сопоставляет его с вашим PM-счётом. GET /risk/grid отвечает только для PM-счетов.

Сетка риска​

GET /risk/grid возвращает текущие требования по счёту, а по каждому базовому активу сценарии, по которым он оценивается (собственная сетка актива, включая дополнительные сценарии), с полями:

  • scenarios[]: id, spot_shock_pct, vol_shock_pct, pnl_weight, is_tail и total_pnl базового актива в этом сценарии
  • extended_risk_matrix.instruments[]: scenario_pnls по каждой ноге, в том же порядке, что и scenarios

scanning_risk на верхнем уровне и есть начисляемая величина: худший взвешенный убыток по каждому базовому активу, просуммированный по всем активам. worst_scenario_index в матрице носит диагностический характер для сетки одного актива и не определяет маржу по совокупности базовых активов.

Симуляция портфеля​

curl -X POST https://api.hypercall.xyz/risk/simulate/portfolio \
-H 'Content-Type: application/json' \
-d '{
"wallet": "0xYourManagerWallet",
"add_positions": true,
"positions": [
{"symbol": "BTC-20261231-100000-C", "quantity": "-1"},
{"symbol": "BTC-20261231-110000-C", "quantity": "1"},
{"symbol": "BTC-PERP", "quantity": "0.25"}
]
}'
  • add_positions: true (по умолчанию) прибавляет каждое количество со знаком к текущей позиции. false заменяет вашу книгу ровно этим списком.
  • До 50 символов, каждый указывается один раз. Принимаются как опционные символы, так и символы перпов.
  • Позиции оцениваются по текущим маркам. Премия не списывается, книга заявок не используется.

Ответ содержит current, simulated и delta. В каждой сводке смотрите на:

ПолеЗначение
equityКапитал в определении со страницы методологии
position_initial_marginIM по позициям: max(сканирующий риск, минимум) + надбавка
position_maintenance_marginMM, 0,85 × IM по позициям
open_orders_initial_marginРезерв под ваши активные лимитные ордера в книге
total_initial_marginIM по позициям плюс IM по открытым ордерам
initial_margin_availableКапитал минус совокупная IM. Отрицательное значение означает, что новый риск не принимается
maintenance_margin_availableКапитал минус MM. Отрицательное значение означает ликвидацию
scanning_risk, option_floor, gamma_overlayТри компонента
underlyings[]Матрица сценариев по каждому базовому активу, как в GET /risk/grid
venue_liquidationПрисутствует, если у вас есть перпы Hyperliquid: выдерживает ли каждый отсек Hyperliquid сетку сценариев (hedge_survives), какое обеспечение будет потеряно, а также IM и MM с учётом площадки

metadata указывает снимок движка, на котором выполнялась симуляция (l2_seq, evaluated_at_ms).

Симуляция ордеров​

POST /risk/simulate/orders выполняет финансовую часть допуска ордера, ничего не выставляя:

  • execution_mode: "resting" принимает ровно один ордер и учитывает его как лимитный ордер в книге.
  • execution_mode: "atomic" оценивает ноги как пакет, исполняемый целиком, так же как маржируется комбо.
  • hypothetical_open_orders позволяет добавить ещё не выставленные лимитные ордера; они оцениваются до orders.

В ответ добавляется admissible, а при значении false также rejection_reason. Блок delta показывает, сколько IM займёт ордер. Примеры запросов приведены в разделе Аутентификация.

Симулятор ордеров отвечает только на вопрос о марже. Матчинг, ценовые коридоры, RPI, nonce, лимиты запросов и торговые остановки не симулируются, а состояние движка может измениться до отправки реального ордера.

Ошибки​

СтатусerrorЧто означает
400invalid_simulationНекорректный запрос, неизвестный или экспирированный символ, повторяющийся символ или более 50 элементов
429risk_simulation_saturatedРесурс симуляций общий и ограничен; повторите запрос с нарастающей задержкой
503risk_inputs_unavailableОтсутствуют или устарели входные данные, например нет марки IV для опциона или устарел снимок HyperCore. Реальный ордер будет отклонён по той же причине

Лимиты запросов для симуляций приведены в разделе Лимиты запросов.

См. также​