Симуляция риска 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/portfolio | IM и 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_margin | IM по позициям: max(сканирующий риск, минимум) + надбавка |
position_maintenance_margin | MM, 0,85 × IM по позициям |
open_orders_initial_margin | Резерв под ваши активные лимитные ордера в книге |
total_initial_margin | IM по позициям плюс 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 | Что означает |
|---|---|---|
400 | invalid_simulation | Некорректный запрос, неизвестный или экспирированный символ, повторяющийся символ или более 50 элементов |
429 | risk_simulation_saturated | Ресурс симуляций общий и ограничен; повторите запрос с нарастающей задержкой |
503 | risk_inputs_unavailable | Отсутствуют или устарели входные данные, например нет марки IV для опциона или устарел снимок HyperCore. Реальный ордер будет отклонён по той же причине |
Лимиты запросов для симуляций приведены в разделе Лимиты запросов.