PM 리스크 시뮬레이션
포트폴리오 증거금에서 설명하는 모든 수치는 사용자 계정 기준으로 조회할 수 있고, 모든 거래는 전송하기 전에 미리 확인할 수 있습니다. 시뮬레이터는 별도의 모델이 아닙니다. 주문을 검사하고 청산 감시 프로세스를 실행하는 것과 동일한 증거금 코드를, 동일한 정책과 동일한 엔진 스냅샷 위에서 실행합니다.
앱에서 확인하기
포트폴리오 증거금 페이지(/risk/span)는 PM 계정에 대해 다음을 보여줍니다.
- 자산가치(equity), IM, MM, 매수 가능 금액, 유지 버퍼
- 스캐닝 리스크, 옵션 하한(floor), 감마 오버레이를 각각 별도로 표시
- 기초자산별 시나리오 그리드와 각 시나리오 및 각 레그의 손익
- 포지션 시뮬레이션: 현재 포트폴리오에 가상 레그를 추가하거나 포트폴리오 전체를 대체한 뒤, 현재 IM 및 MM과 시뮬레이션된 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_pnlextended_risk_matrix.instruments[]:scenarios와 순서가 맞춰진 레그별scenario_pnls
최상위의 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, 논스, 요청 한도, 거래 중단은 시뮬레이션되지 않으며, 실제 주문을 전송하기 전에 엔진 상태가 바뀔 수 있습니다.
오류
| 상태 | error | 의미 |
|---|---|---|
400 | invalid_simulation | 잘못된 형식의 요청, 알 수 없거나 만기된 심볼, 중복 심볼, 또는 50개를 초과하는 항목 |
429 | risk_simulation_saturated | 시뮬레이션 처리 용량은 공유되며 제한되어 있습니다. 백오프를 적용해 재시도하십시오 |
503 | risk_inputs_unavailable | 입력값이 누락되었거나 오래되었습니다. 예를 들어 옵션에 IV 마크가 없거나 HyperCore 스냅샷이 오래된 경우입니다. 실제 주문도 같은 이유로 거부됩니다 |
시뮬레이션에 대한 요청 한도는 요청 한도에 나와 있습니다.