Simulación del riesgo PM
Cada cifra descrita en Portfolio Margin puede consultarse para su cuenta, y cada operación puede previsualizarse antes de enviarla. El simulador no es un modelo aparte: ejecuta el mismo código de margen, con la misma política y la misma snapshot del motor, que valida sus órdenes y ejecuta el monitor de liquidación.
En la app
La página Portfolio margin (/risk/span) muestra, para una cuenta PM:
- equity, IM, MM, poder de compra y colchón de mantenimiento
- el riesgo de escaneo, el piso de opciones y el overlay de gamma por separado
- la matriz de escenarios de cada activo subyacente, con el P&L de cada escenario y de cada pata
- Simulate positions: añada patas hipotéticas a su cartera, o reemplácela, y compare el IM y el MM actuales con los simulados. Una simulación nunca coloca una orden ni modifica el estado de la cuenta.
La página se actualiza cada 5 segundos.
Endpoints
| Endpoint | Qué responde | Autenticación |
|---|---|---|
GET /portfolio?wallet= | Equity, IM, MM y posiciones actuales | Ninguna |
GET /risk/grid?wallet= | Riesgo de escaneo, piso y overlay actuales, y la matriz de escenarios por activo subyacente | Ninguna |
POST /risk/simulate/portfolio | El IM y el MM si sus posiciones fueran distintas | Ninguna |
POST /risk/simulate/orders | Si una orden o un paquete pasaría la validación de margen, y su costo de IM | Ninguna |
GET /liquidation/status?wallet= | Estado de liquidación y déficit | Ninguna |
Todos reciben su manager wallet como wallet; Hypercall la resuelve a su cuenta PM. GET /risk/grid solo responde para cuentas PM.
Matriz de riesgo
GET /risk/grid devuelve el requisito actual de la cuenta y, por activo subyacente, los escenarios con los que se evalúa ese activo subyacente (su propia matriz, incluidos los escenarios adicionales) con:
scenarios[]:id,spot_shock_pct,vol_shock_pct,pnl_weight,is_taily eltotal_pnldel activo subyacente en ese escenarioextended_risk_matrix.instruments[]:scenario_pnlspor pata, alineados conscenarios
scanning_risk en el nivel superior es la cifra que se cobra: la peor pérdida ponderada de cada activo subyacente, sumadas. El worst_scenario_index de la matriz es un dato de diagnóstico para la matriz de un solo activo subyacente y no determina el margen entre activos subyacentes.
Simulación de cartera
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(el valor por defecto) suma cada cantidad con signo a su posición actual.falsereemplaza su cartera exactamente por la lista.- Hasta 50 símbolos, cada uno listado una sola vez. Se aceptan tanto símbolos de opciones como de perpetuos.
- Las posiciones se valoran a los precios de marca actuales. No se cobra prima ni se consulta el libro de órdenes.
La respuesta contiene current, simulated y delta. En cada resumen, lea:
| Campo | Significado |
|---|---|
equity | Equity según se define en la página de metodología |
position_initial_margin | IM sobre posiciones: max(riesgo de escaneo, piso) + overlay |
position_maintenance_margin | MM, 0.85 × IM de posiciones |
open_orders_initial_margin | Reserva para sus órdenes en reposo activas |
total_initial_margin | IM de posiciones más IM de órdenes abiertas |
initial_margin_available | Equity menos IM total. Un valor negativo significa que se rechaza nuevo riesgo |
maintenance_margin_available | Equity menos MM. Un valor negativo significa liquidación |
scanning_risk, option_floor, gamma_overlay | Los tres componentes |
underlyings[] | La matriz de escenarios por activo subyacente, como en GET /risk/grid |
venue_liquidation | Presente cuando mantiene perpetuos de Hyperliquid: si cada compartimento de Hyperliquid sobrevive a la matriz (hedge_survives), el colateral que se perdería, y el IM y el MM que tienen en cuenta el venue |
metadata identifica la snapshot del motor sobre la que se ejecutó la simulación (l2_seq, evaluated_at_ms).
Simulación de órdenes
POST /risk/simulate/orders ejecuta la parte financiera de la admisión de órdenes sin colocar nada:
execution_mode: "resting"acepta exactamente una orden y la cobra como orden en reposo.execution_mode: "atomic"evalúa las patas como un paquete que se ejecuta en conjunto, del mismo modo en que se margina un combo.hypothetical_open_ordersle permite añadir órdenes en reposo que aún no ha colocado, evaluadas antes queorders.
La respuesta añade admissible y, cuando es false, un rejection_reason. El bloque delta muestra el IM que consumiría la orden. Hay ejemplos de solicitudes en Autenticación.
El simulador de órdenes solo responde la pregunta de margen. El matching, las bandas de precio, RPI, los nonces, los límites de tasa y las suspensiones de trading no se simulan, y el estado del motor puede cambiar antes de que envíe la orden real.
Errores
| Estado | error | Qué significa |
|---|---|---|
400 | invalid_simulation | Solicitud mal formada, símbolo desconocido o vencido, símbolo duplicado, o más de 50 elementos |
429 | risk_simulation_saturated | La capacidad de simulación es compartida y limitada; reintente con backoff |
503 | risk_inputs_unavailable | Falta un dato de entrada o está desactualizado, por ejemplo no hay marca de IV para una opción, o una snapshot de HyperCore está desactualizada. La orden real se rechazaría por el mismo motivo |
Los límites de tasa de las simulaciones se indican en Límites de tasa.