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 , OTC Each 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_VOLGA Volatility model is calibrated to the Exchange given by the source Not 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 /PERPETUAL Not required, but if given, equals to forward strike price. instrumentType : SPOT Not required. |
Request RiskScenarioParameters JSON model parameters
Parameter | Type | Description |
---|---|---|
priceRangeSteps | Num | Number of steps for the priceRange Example: 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 inverse Null for instrumentType SPOT |
volatilityModel | String | User defined volatilityModel Null 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
}
]
}
]
}