Language

Choose a language

/build/rpc / pricing / portfolio

pricing.portfolio.risk

pricing.portfolio.risk ( include_balances ["id",...] "price_source" "report_asset" report_is_native ) Compute aggregated portfolio risk across all opened contracts and wallet balances Returns per-asset Greeks (delta, vega, gamma) and cross-gammas. Arguments: 1. include_balances (boolean, optional, default=true) Include wallet balances as spot delta 2. contract_ids (json array, optional) Optional filter: when provided, aggregate only the specified contract IDs [ "id", (string, required) Contract ID ... ] 3. price_source (string, optional, default="mark") Price source: 'mark' or 'market' 4. report_asset (string, optional, default="") Reporting currency (empty for TSC) 5. report_is_native (boolean, optional, default=true) Report currency is native Result: { (json object) "aggregate_risk" : { (json object) Total portfolio risk "deltas" : {} (empty JSON object) Total delta per asset "vegas" : {} (empty JSON object) Total vega per asset "gammas" : {} (empty JSON object) Total gamma per asset "cross_gammas" : {} (empty JSON object) Cross-gamma matrix "rate_deltas" : { (empty JSON object) Rate sensitivity per asset (discount curve) }, "positions" : [ (json array) Per-position Greeks { (json object) "contract_id" : "hex", (string) Contract ID "contract_type" : "str", (string) repo or forward "mtm" : n, (numeric) Mark-to-market value "asset_greeks" : { (empty JSON object) Position Greeks }, ... ], "balance_deltas" : {} (empty JSON object, optional) Spot deltas from wallet balances "total_mtm" : n, (numeric) Total portfolio MTM "positions_count" : n (numeric) Number of positions included } Examples: > bitcoin-cli pricing.portfolio.risk true > bitcoin-cli pricing.portfolio.risk true '["CONTRACT_ID_1", "CONTRACT_ID_2"]' > curl --user myusername --data-binary '{"jsonrpc": "2.0", "id": "curltest", "method": "pricing.portfolio.risk", "params": [false, null, "market"]}' -H 'content-type: application/json' http://127.0.0.1:8332/

Signature

pricing.portfolio.risk(include_balances?: boolean, contract_ids?: array, price_source?: string, report_asset?: string, report_is_native?: boolean) → any

Code samples

curl --user "$RPC_USER:$RPC_PASS" \
  --data-binary '{"jsonrpc":"1.0","id":"docs","method":"pricing.portfolio.risk","params":[true,[],"mark","",true]}' \
  -H 'content-type: text/plain;' \
  http://127.0.0.1:8332/

Parameters

NameTypeReq.Description
include_balancesbooleanInclude wallet balances as spot delta
contract_idsany[]Optional filter: when provided, aggregate only the specified contract IDs [ "id", (string, required) Contract ID ... ]
price_sourcestringPrice source: 'mark' or 'market'
report_assetstringReporting currency (empty for TSC)
report_is_nativebooleanReport currency is native

Result

Type:  any

{ (json object) "aggregate_risk" : { (json object) Total portfolio risk "deltas" : {} (empty JSON object) Total delta per asset "vegas" : {} (empty JSON object) Total vega per asset "gammas" : {} (empty JSON object) Total gamma per asset "cross_gammas" : {} (empty JSON object) Cross-gamma matrix "rate_deltas" : { (empty JSON object) Rate sensitivity per asset (discount curve) }, "positions" : [ (json array) Per-position Greeks { (json object) "contract_id" : "hex", (string) Contract ID "contract_type" : "str", (string) repo or forward "mtm" : n, (numeric) Mark-to-market value "asset_greeks" : { (empty JSON object) Position Greeks }, ... ], "balance_deltas" : {} (empty JSON object, optional) Spot deltas from wallet balances "total_mtm" : n, (numeric) Total portfolio MTM "positions_count" : n (numeric) Number of positions included }

Source: services/core-node/bcore/src/wallet/pricing/rpc/pricing_portfolio.cpp:27

C++ symbol: pricing_portfolio_risk