Risk Scenarios
HTTP Request
POST /api/v1/global/scenarios/riskScenarios
Returns Risk scenarios including instruments values and P&Ls for a list of vanilla options, forwards and perps
Risk scenarios are defined by given forward price shifts and parallel vol-surface shifts
We recommend to use the same baseCurrency/quoteCurrency and single source in request instruments array per each request
Supported exchanges and assets (baseCurrency/quoteCurrency)
DERIBIT: BTC/USD, ETH/USD, SOL/USDC, XRP/USDC
OKX: BTC/USD, ETH/USD
BYBIT: BTC/USDC, ETH/USDC, SOL/USDC
The request body model must contain array of riskScenarioInstruments ranging in size from 1 to 100 and also riskScenarioParameters model
Request RiskScenarioInstrument JSON model parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| instrumentId | String | Yes | User defined unique instrument ID |
| size | Num | Yes | Position size (positive for LONG, negative for SHORT) |
| baseCurrency | String | Yes | Base currency ticker:BTC,ETH,SOL,XRP |
| quoteCurrency | String | Yes | Quote currency ticker:USD,USDC |
| source | String | Yes | Exchange type:DERIBIT,OKX,BYBIT |
| priceMethod | String | Yes | Calculation method: DERIBIT, OKX, BYBIT, OTCEach method represent instrument valuation model used by exchange. As of now 'OTC' equals to 'DERIBIT' |
| instrumentType | String | Yes | Instrument type:CALL,PUT,FORWARD,PERPETUAL,SPOT |
| inverse | Boolean | No | FORWARD/PERPETUAL:false for linear instruments, true for inverse instrumentsCALL/PUT:inverse = true forDERIBIT: BTC/USD, ETH/USD and OKX: BTC/USD, ETH/USDinverse = false forDERIBIT: SOL/USDC, XRP/USDCBYBIT: BTC/USDC, ETH/USDC, SOL/USDCbr/>Not required for instrumentType SPOT |
| volatilityModel | String | No | instrumentType: CALL/PUT SVI, SABR, VANNA_VOLGAVolatility model is calibrated to the Exchange given by the sourceNot required for instrumentType FORWARD/PERPETUAL/SPOT |
| expirationTimestamp | Num | No | instrumentType: CALL/PUT Instrument expiration timestamp (in seconds) Must be >= current timestampNot required for instrumentType SPOT |
| strike | Num | No | instrumentType: CALL/PUT Required. Option strike, must be > 0instrumentType: FORWARD/PERPETUALNot required, but if given, equals to forward strike price. instrumentType: SPOTNot required. |
Request RiskScenarioParameters JSON model parameters
| Parameter | Type | Description |
|---|---|---|
| priceRangeSteps | Num | Number of steps for the priceRangeExample: priceRange = 0.2, priceRangeSteps = 4 The scenarios output will generate 9 different price shifts (scenario) from -4 to 4 [-4, -3, -2, -1, 0, 1, 2, 3, 4]which corresponds to the following percentage forwardPrice shift [-0.2, -0.15, -0.1, -0.05, 0, 0.05, 0.1, 0.15, 0.2] |
| priceRange | Num | Max percent forwardPrice shift |
| volRangeUp | Num | Absolute up shift in implied volatility. Example: volatility = 0.54, volRangeUp = 0.05, shifted volatility = 0.59 |
| volRangeDown | Num | Absolute down shift in implied volatility. Example: volatility = 0.54, volRangeDown = 0.05, shifted volatility = 0.49 |
Response RiskScenarioInstrument JSON model parameters
| Parameter | Type | Description |
|---|---|---|
| instrumentId | String | User defined instrumentId |
| size | Num | User defined size |
| baseCurrency | String | User defined baseCurrency |
| quoteCurrency | String | User defined quoteCurrency |
| source | String | User defined source |
| instrumentType | String | User defined instrumentType |
| inverse | Boolean | User defined inverseNull for instrumentType SPOT |
| volatilityModel | String | User defined volatilityModelNull for instrumentType FORWARD/PERPETUAL/SPOT |
| expirationTimestamp | Num | Instrument expiration timestamp (in seconds) Null for instrumentType SPOT |
| observationTimestamp | Num | Instrument observation timestamp (in seconds) |
| strike | Num | Instrument strike Null for instrumentType SPOT |
| spotPrice | Num | Current spot price |
| forwardPrice | Num | Current forward price (or perpetual price for instrumentType = PERPETUAL)Null for instrumentType SPOT |
| instrumentPrice | Num | Current instrument price Null for instrumentType SPOT |
| volatility | Num | Current instrument implied volatility at strike Null for instrumentType FORWARD/PERPETUAL/SPOT |
| volUp | Num | Up shifted implied volatility |
| volDown | Num | Down shifted implied volatility |
Response RiskScenarioItem JSON model parameters
| Parameter | Type | Description |
|---|---|---|
| scenario | Num | Scenario number |
| spotPrice | Num | Scenario spot price |
| forwardPrice | Num | Scenario forward price |
| priceVolUp | Num | Instrument percent price, up shifted volatility |
| priceVolUnch | Num | Instrument percent price, current market volatility |
| priceVolDown | Num | Instrument percent price, down shifted volatility |
| basePlVolUp | Num | baseCurrency P&L, up shifted volatility |
| basePlVolUnch | Num | baseCurrency P&L, current market volatility |
| basePlVolDown | Num | baseCurrency P&L, down shifted volatility |
| quotePlVolUp | Num | quoteCurrency P&L, up shifted volatility |
| quotePlVolUnch | Num | quoteCurrency P&L, current market volatility |
| quotePlVolDown | Num | quoteCurrency P&L, down shifted volatility |
| baseValueVolUp | Num | base currency instrument value, up shifted volatility |
| baseValueVolUnch | Num | base currency instrument value, current market volatility |
| baseValueVolDown | Num | base currency instrument value, down shifted volatility |
| baseDeltaUp | Num | base currency delta, up shifted volatility |
| baseDeltaUnch | Num | base currency delta, current market volatility |
| baseDeltaDown | Num | base currency delta, down shifted volatility |
| baseGammaUp | Num | base currency gamma, up shifted volatility |
| baseGammaUnch | Num | base currency gamma, current market volatility |
| baseGammaDown | Num | base currency gamma, down shifted volatility |
| baseNetDeltaUp | Num | base currency net delta, up shifted volatility |
| baseNetDeltaUnch | Num | base currency net delta, current market volatility |
| baseNetDeltaDown | Num | base currency net delta, down shifted volatility |
| baseThetaUp | Num | base currency theta, up shifted volatility |
| baseThetaUnch | Num | base currency theta, current market volatility |
| baseThetaDown | Num | base currency theta, down shifted volatility |
| baseVegaUp | Num | base currency vega, up shifted volatility |
| baseVegaUnch | Num | base currency vega, current market volatility |
| baseVegaDown | Num | base currency vega, down shifted volatility |
| baseVolgaUp | Num | base currency volga, up shifted volatility |
| baseVolgaUnch | Num | base currency volga, current market volatility |
| baseVolgaDown | Num | base currency volga, down shifted volatility |
| baseVannaUp | Num | base currency vanna, up shifted volatility |
| baseVannaUnch | Num | base currency vanna, current market volatility |
| baseVannaDown | Num | base currency vanna, down shifted volatility |
Request Example
POST /api/v1/global/riskScenario
body
{
"riskScenarioInstruments": [
{
"instrumentId": "BTC-28MAR25-FORWARD-LINEAR",
"size": 280000,
"baseCurrency": "BTC",
"quoteCurrency": "USD",
"source": "DERIBIT",
"priceMethod": "DERIBIT",
"instrumentType": "FORWARD",
"inverse": false,
"volatilityModel": "SVI",
"expirationTimestamp": 1743148800,
"strike": 70000.0
}
],
"riskScenarioParameters": {
"priceRangeSteps": 4,
"priceRange": 0.2,
"volRangeUp": 0.5,
"volRangeDown": 0.25
}
}
Response Example
{
"riskScenarioInstrumentResults": [
{
"instrumentId": "BTC-28MAR25-FORWARD-LINEAR",
"size": 280000.0,
"baseCurrency": "BTC",
"quoteCurrency": "USD",
"source": "DERIBIT",
"instrumentType": "FORWARD",
"inverse": false,
"volatilityModel": "SVI",
"expirationTimestamp": 1743148800,
"observationTimestamp": 1730471122,
"strike": 70000.0,
"spotPrice": 71308.14,
"forwardPrice": 74604.84999999998,
"instrumentPrice": 74604.84999999998,
"volatility": null,
"volUp": 0.0,
"volDown": 0.0,
"riskScenarioItems": [
{
"scenario": -4,
"spotPrice": 57046.512,
"forwardPrice": 59683.87999999998,
"priceVolUp": 59683.87999999998,
"priceVolUnch": 59683.87999999998,
"priceVolDown": 59683.87999999998,
"basePlVolUp": -50634.35955558518,
"basePlVolUnch": -50634.35955558518,
"basePlVolDown": -50634.35955558518,
"quotePlVolUp": -2.888513600000005E9,
"quotePlVolUnch": -2.888513600000005E9,
"quotePlVolDown": -2.888513600000005E9,
"baseValueVolUp": -50634.35955558518,
"baseValueVolUnch": -50634.35955558518,
"baseValueVolDown": -50634.35955558518,
"baseDeltaUp": 292944.9288678683,
"baseDeltaUnch": 292944.9288678683,
"baseDeltaDown": 292944.9288678683,
"baseGammaUp": 0.0,
"baseGammaUnch": 0.0,
"baseGammaDown": 0.0,
"baseNetDeltaUp": 292944.9288678683,
"baseNetDeltaUnch": 292944.9288678683,
"baseNetDeltaDown": 292944.9288678683,
"baseThetaUp": 0.0,
"baseThetaUnch": 0.0,
"baseThetaDown": 0.0,
"baseVegaUp": 0.0,
"baseVegaUnch": 0.0,
"baseVegaDown": 0.0,
"baseVolgaUp": 0.0,
"baseVolgaUnch": 0.0,
"baseVolgaDown": 0.0,
"baseVannaUp": 0.0,
"baseVannaUnch": 0.0,
"baseVannaDown": 0.0
},
{
"scenario": -3,
"spotPrice": 60611.918999999994,
"forwardPrice": 63414.122499999976,
"priceVolUp": 63414.122499999976,
"priceVolUnch": 63414.122499999976,
"priceVolDown": 63414.122499999976,
"basePlVolUp": -30423.81317773501,
"basePlVolUnch": -30423.81317773501,
"basePlVolDown": -30423.81317773501,
"quotePlVolUp": -1.844045700000007E9,
"quotePlVolUnch": -1.844045700000007E9,
"quotePlVolDown": -1.844045700000007E9,
"baseValueVolUp": -30423.81317773501,
"baseValueVolUnch": -30423.81317773501,
"baseValueVolDown": -30423.81317773501,
"baseDeltaUp": 292944.9288678683,
"baseDeltaUnch": 292944.9288678683,
"baseDeltaDown": 292944.9288678683,
"baseGammaUp": 0.0,
"baseGammaUnch": 0.0,
"baseGammaDown": 0.0,
"baseNetDeltaUp": 292944.9288678683,
"baseNetDeltaUnch": 292944.9288678683,
"baseNetDeltaDown": 292944.9288678683,
"baseThetaUp": 0.0,
"baseThetaUnch": 0.0,
"baseThetaDown": 0.0,
"baseVegaUp": 0.0,
"baseVegaUnch": 0.0,
"baseVegaDown": 0.0,
"baseVolgaUp": 0.0,
"baseVolgaUnch": 0.0,
"baseVolgaDown": 0.0,
"baseVannaUp": 0.0,
"baseVannaUnch": 0.0,
"baseVannaDown": 0.0
},
{
"scenario": -2,
"spotPrice": 64177.326,
"forwardPrice": 67144.36499999998,
"priceVolUp": 67144.36499999998,
"priceVolUnch": 67144.36499999998,
"priceVolDown": 67144.36499999998,
"basePlVolUp": -12458.88306409037,
"basePlVolUnch": -12458.88306409037,
"basePlVolDown": -12458.88306409037,
"quotePlVolUp": -7.995778000000067E8,
"quotePlVolUnch": -7.995778000000067E8,
"quotePlVolDown": -7.995778000000067E8,
"baseValueVolUp": -12458.88306409037,
"baseValueVolUnch": -12458.88306409037,
"baseValueVolDown": -12458.88306409037,
"baseDeltaUp": 292944.9288678683,
"baseDeltaUnch": 292944.9288678683,
"baseDeltaDown": 292944.9288678683,
"baseGammaUp": 0.0,
"baseGammaUnch": 0.0,
"baseGammaDown": 0.0,
"baseNetDeltaUp": 292944.9288678683,
"baseNetDeltaUnch": 292944.9288678683,
"baseNetDeltaDown": 292944.9288678683,
"baseThetaUp": 0.0,
"baseThetaUnch": 0.0,
"baseThetaDown": 0.0,
"baseVegaUp": 0.0,
"baseVegaUnch": 0.0,
"baseVegaDown": 0.0,
"baseVolgaUp": 0.0,
"baseVolgaUnch": 0.0,
"baseVolgaDown": 0.0,
"baseVannaUp": 0.0,
"baseVannaUnch": 0.0,
"baseVannaDown": 0.0
},
{
"scenario": -1,
"spotPrice": 67742.733,
"forwardPrice": 70874.60749999997,
"priceVolUp": 70874.60749999997,
"priceVolUnch": 70874.60749999997,
"priceVolDown": 70874.60749999997,
"basePlVolUp": 3615.0017744337447,
"basePlVolUnch": 3615.0017744337447,
"basePlVolDown": 3615.0017744337447,
"quotePlVolUp": 2.4489009999999136E8,
"quotePlVolUnch": 2.4489009999999136E8,
"quotePlVolDown": 2.4489009999999136E8,
"baseValueVolUp": 3615.0017744337447,
"baseValueVolUnch": 3615.0017744337447,
"baseValueVolDown": 3615.0017744337447,
"baseDeltaUp": 292944.9288678683,
"baseDeltaUnch": 292944.9288678683,
"baseDeltaDown": 292944.9288678683,
"baseGammaUp": 0.0,
"baseGammaUnch": 0.0,
"baseGammaDown": 0.0,
"baseNetDeltaUp": 292944.9288678683,
"baseNetDeltaUnch": 292944.9288678683,
"baseNetDeltaDown": 292944.9288678683,
"baseThetaUp": 0.0,
"baseThetaUnch": 0.0,
"baseThetaDown": 0.0,
"baseVegaUp": 0.0,
"baseVegaUnch": 0.0,
"baseVegaDown": 0.0,
"baseVolgaUp": 0.0,
"baseVolgaUnch": 0.0,
"baseVolgaDown": 0.0,
"baseVannaUp": 0.0,
"baseVannaUnch": 0.0,
"baseVannaDown": 0.0
},
{
"scenario": 0,
"spotPrice": 71308.14,
"forwardPrice": 74604.84999999998,
"priceVolUp": 74604.84999999998,
"priceVolUnch": 74604.84999999998,
"priceVolDown": 74604.84999999998,
"basePlVolUp": 18081.49812910551,
"basePlVolUnch": 18081.49812910551,
"basePlVolDown": 18081.49812910551,
"quotePlVolUp": 1.2893579999999936E9,
"quotePlVolUnch": 1.2893579999999936E9,
"quotePlVolDown": 1.2893579999999936E9,
"baseValueVolUp": 18081.49812910551,
"baseValueVolUnch": 18081.49812910551,
"baseValueVolDown": 18081.49812910551,
"baseDeltaUp": 292944.9288678683,
"baseDeltaUnch": 292944.9288678683,
"baseDeltaDown": 292944.9288678683,
"baseGammaUp": 0.0,
"baseGammaUnch": 0.0,
"baseGammaDown": 0.0,
"baseNetDeltaUp": 292944.9288678683,
"baseNetDeltaUnch": 292944.9288678683,
"baseNetDeltaDown": 292944.9288678683,
"baseThetaUp": 0.0,
"baseThetaUnch": 0.0,
"baseThetaDown": 0.0,
"baseVegaUp": 0.0,
"baseVegaUnch": 0.0,
"baseVegaDown": 0.0,
"baseVolgaUp": 0.0,
"baseVolgaUnch": 0.0,
"baseVolgaDown": 0.0,
"baseVannaUp": 0.0,
"baseVannaUnch": 0.0,
"baseVannaDown": 0.0
},
{
"scenario": 1,
"spotPrice": 74873.547,
"forwardPrice": 78335.09249999998,
"priceVolUp": 78335.09249999998,
"priceVolUnch": 78335.09249999998,
"priceVolDown": 78335.09249999998,
"basePlVolUp": 31170.232926189477,
"basePlVolUnch": 31170.232926189477,
"basePlVolDown": 31170.232926189477,
"quotePlVolUp": 2.3338258999999957E9,
"quotePlVolUnch": 2.3338258999999957E9,
"quotePlVolDown": 2.3338258999999957E9,
"baseValueVolUp": 31170.232926189477,
"baseValueVolUnch": 31170.232926189477,
"baseValueVolDown": 31170.232926189477,
"baseDeltaUp": 292944.9288678683,
"baseDeltaUnch": 292944.9288678683,
"baseDeltaDown": 292944.9288678683,
"baseGammaUp": 0.0,
"baseGammaUnch": 0.0,
"baseGammaDown": 0.0,
"baseNetDeltaUp": 292944.9288678683,
"baseNetDeltaUnch": 292944.9288678683,
"baseNetDeltaDown": 292944.9288678683,
"baseThetaUp": 0.0,
"baseThetaUnch": 0.0,
"baseThetaDown": 0.0,
"baseVegaUp": 0.0,
"baseVegaUnch": 0.0,
"baseVegaDown": 0.0,
"baseVolgaUp": 0.0,
"baseVolgaUnch": 0.0,
"baseVolgaDown": 0.0,
"baseVannaUp": 0.0,
"baseVannaUnch": 0.0,
"baseVannaDown": 0.0
},
{
"scenario": 2,
"spotPrice": 78438.95400000001,
"forwardPrice": 82065.33499999998,
"priceVolUp": 82065.33499999998,
"priceVolUnch": 82065.33499999998,
"priceVolDown": 82065.33499999998,
"basePlVolUp": 43069.0827417203,
"basePlVolUnch": 43069.0827417203,
"basePlVolDown": 43069.0827417203,
"quotePlVolUp": 3.3782937999999933E9,
"quotePlVolUnch": 3.3782937999999933E9,
"quotePlVolDown": 3.3782937999999933E9,
"baseValueVolUp": 43069.0827417203,
"baseValueVolUnch": 43069.0827417203,
"baseValueVolDown": 43069.0827417203,
"baseDeltaUp": 292944.9288678682,
"baseDeltaUnch": 292944.9288678682,
"baseDeltaDown": 292944.9288678682,
"baseGammaUp": 0.0,
"baseGammaUnch": 0.0,
"baseGammaDown": 0.0,
"baseNetDeltaUp": 292944.9288678682,
"baseNetDeltaUnch": 292944.9288678682,
"baseNetDeltaDown": 292944.9288678682,
"baseThetaUp": 0.0,
"baseThetaUnch": 0.0,
"baseThetaDown": 0.0,
"baseVegaUp": 0.0,
"baseVegaUnch": 0.0,
"baseVegaDown": 0.0,
"baseVolgaUp": 0.0,
"baseVolgaUnch": 0.0,
"baseVolgaDown": 0.0,
"baseVannaUp": 0.0,
"baseVannaUnch": 0.0,
"baseVannaDown": 0.0
},
{
"scenario": 3,
"spotPrice": 82004.36099999999,
"forwardPrice": 85795.57749999997,
"priceVolUp": 85795.57749999997,
"priceVolUnch": 85795.57749999997,
"priceVolDown": 85795.57749999997,
"basePlVolUp": 53933.249964596296,
"basePlVolUnch": 53933.249964596296,
"basePlVolDown": 53933.249964596296,
"quotePlVolUp": 4.422761699999991E9,
"quotePlVolUnch": 4.422761699999991E9,
"quotePlVolDown": 4.422761699999991E9,
"baseValueVolUp": 53933.249964596296,
"baseValueVolUnch": 53933.249964596296,
"baseValueVolDown": 53933.249964596296,
"baseDeltaUp": 292944.9288678683,
"baseDeltaUnch": 292944.9288678683,
"baseDeltaDown": 292944.9288678683,
"baseGammaUp": 0.0,
"baseGammaUnch": 0.0,
"baseGammaDown": 0.0,
"baseNetDeltaUp": 292944.9288678683,
"baseNetDeltaUnch": 292944.9288678683,
"baseNetDeltaDown": 292944.9288678683,
"baseThetaUp": 0.0,
"baseThetaUnch": 0.0,
"baseThetaDown": 0.0,
"baseVegaUp": 0.0,
"baseVegaUnch": 0.0,
"baseVegaDown": 0.0,
"baseVolgaUp": 0.0,
"baseVolgaUnch": 0.0,
"baseVolgaDown": 0.0,
"baseVannaUp": 0.0,
"baseVannaUnch": 0.0,
"baseVannaDown": 0.0
},
{
"scenario": 4,
"spotPrice": 85569.768,
"forwardPrice": 89525.81999999996,
"priceVolUp": 89525.81999999996,
"priceVolUnch": 89525.81999999996,
"priceVolDown": 89525.81999999996,
"basePlVolUp": 63892.06991889928,
"basePlVolUnch": 63892.06991889928,
"basePlVolDown": 63892.06991889928,
"quotePlVolUp": 5.46722959999999E9,
"quotePlVolUnch": 5.46722959999999E9,
"quotePlVolDown": 5.46722959999999E9,
"baseValueVolUp": 63892.06991889928,
"baseValueVolUnch": 63892.06991889928,
"baseValueVolDown": 63892.06991889928,
"baseDeltaUp": 292944.9288678683,
"baseDeltaUnch": 292944.9288678683,
"baseDeltaDown": 292944.9288678683,
"baseGammaUp": 0.0,
"baseGammaUnch": 0.0,
"baseGammaDown": 0.0,
"baseNetDeltaUp": 292944.9288678683,
"baseNetDeltaUnch": 292944.9288678683,
"baseNetDeltaDown": 292944.9288678683,
"baseThetaUp": 0.0,
"baseThetaUnch": 0.0,
"baseThetaDown": 0.0,
"baseVegaUp": 0.0,
"baseVegaUnch": 0.0,
"baseVegaDown": 0.0,
"baseVolgaUp": 0.0,
"baseVolgaUnch": 0.0,
"baseVolgaDown": 0.0,
"baseVannaUp": 0.0,
"baseVannaUnch": 0.0,
"baseVannaDown": 0.0
}
]
}
]
}