Simulação de risco PM
Todos os números descritos em Margem de portfólio podem ser consultados para a sua conta, e toda operação pode ser simulada antes do envio. O simulador não é um modelo à parte. Ele roda o mesmo código de margem, com a mesma política e o mesmo snapshot do motor, que valida suas ordens e executa o monitor de liquidação.
No app
A página Portfolio margin (/risk/span) mostra, para uma conta PM:
- equity, IM, MM, poder de compra e folga de manutenção
- scanning risk, piso de opções e overlay de gama, cada um separado
- a grade de cenários de cada ativo subjacente, com o P&L de cada cenário e de cada perna
- Simular posições: adicione pernas hipotéticas ao seu livro, ou substitua-o, e compare o IM e o MM atuais com os simulados. Uma simulação nunca envia ordens nem altera o estado da conta.
A página é atualizada a cada 5 segundos.
Endpoints
| Endpoint | O que responde | Autenticação |
|---|---|---|
GET /portfolio?wallet= | Equity, IM, MM e posições atuais | Nenhuma |
GET /risk/grid?wallet= | Scanning risk, piso, overlay atuais e a matriz de cenários por ativo subjacente | Nenhuma |
POST /risk/simulate/portfolio | IM e MM caso suas posições fossem diferentes | Nenhuma |
POST /risk/simulate/orders | Se uma ordem ou pacote passaria na verificação de margem, e o custo em IM | Nenhuma |
GET /liquidation/status?wallet= | Estado de liquidação e déficit | Nenhuma |
Todos recebem a sua carteira manager como wallet. A Hypercall resolve essa carteira para a sua conta PM. GET /risk/grid responde apenas para contas PM.
Grade de risco
GET /risk/grid retorna o requisito atual da conta e, para cada ativo subjacente, os cenários usados na avaliação desse ativo (sua própria grade, incluindo cenários extras), com:
scenarios[]:id,spot_shock_pct,vol_shock_pct,pnl_weight,is_taile ototal_pnldo ativo subjacente naquele cenárioextended_risk_matrix.instruments[]:scenario_pnlspor perna, alinhados comscenarios
O scanning_risk no nível superior é o valor efetivamente cobrado: a pior perda ponderada de cada ativo subjacente, somada. O worst_scenario_index da matriz é um diagnóstico da grade de um único ativo subjacente e não determina a margem entre ativos subjacentes.
Simulação de portfólio
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(o padrão) soma cada quantidade com sinal à sua posição atual.falsesubstitui o seu livro exatamente pela lista.- Até 50 símbolos, cada um listado uma única vez. Símbolos de opções e de perpétuos são aceitos.
- As posições são avaliadas pelas marcações atuais. Nenhum prêmio é cobrado e nenhum livro de ofertas é consultado.
A resposta traz current, simulated e delta. Em cada resumo, leia:
| Campo | Significado |
|---|---|
equity | Equity conforme definido na página de metodologia |
position_initial_margin | IM das posições: max(scanning risk, piso) + overlay |
position_maintenance_margin | MM, 0,85 × IM das posições |
open_orders_initial_margin | Reserva para as suas ordens abertas no livro |
total_initial_margin | IM das posições mais IM das ordens abertas |
initial_margin_available | Equity menos IM total. Valor negativo significa que novo risco é recusado |
maintenance_margin_available | Equity menos MM. Valor negativo significa liquidação |
scanning_risk, option_floor, gamma_overlay | Os três componentes |
underlyings[] | A matriz de cenários por ativo subjacente, como em GET /risk/grid |
venue_liquidation | Presente quando você tem perpétuos na Hyperliquid: se cada compartimento da Hyperliquid sobrevive à grade (hedge_survives), o colateral que seria perdido e o IM e MM considerando a venue |
metadata identifica o snapshot do motor usado na simulação (l2_seq, evaluated_at_ms).
Simulação de ordens
POST /risk/simulate/orders executa a parte financeira da admissão de ordens sem enviar nada:
execution_mode: "resting"recebe exatamente uma ordem e a cobra como ordem passiva no livro.execution_mode: "atomic"avalia as pernas como um pacote executado em conjunto, da mesma forma que um combo é margeado.hypothetical_open_orderspermite adicionar ordens passivas que você ainda não enviou, avaliadas antes deorders.
A resposta acrescenta admissible e, quando falso, um rejection_reason. O bloco delta mostra o IM que a ordem consumiria. Exemplos de requisição estão em Autenticação.
O simulador de ordens responde apenas à questão da margem. Matching, bandas de preço, RPI, nonces, limites de requisição e suspensões de negociação não são simulados, e o estado do motor pode mudar antes de você enviar a ordem real.
Erros
| Status | error | O que significa |
|---|---|---|
400 | invalid_simulation | Requisição malformada, símbolo desconhecido ou vencido, símbolo duplicado ou mais de 50 itens |
429 | risk_simulation_saturated | A capacidade de simulação é compartilhada e limitada. Tente novamente com backoff |
503 | risk_inputs_unavailable | Um insumo está ausente ou desatualizado, por exemplo sem marcação de IV para uma opção, ou um snapshot da HyperCore desatualizado. A ordem real seria recusada pelo mesmo motivo |
Os limites de requisição para simulações estão em Limites de requisição.