Unless otherwise stated and where applicable, parameters are for both the ETH and BTC markets. All parameters are configurable post launch (via a governance vote) unless otherwise specified.
Portfolio Margin Risk Manager
Account Parameters
Doc Name |
Contract Name |
Value |
Bounds |
Description |
MAX_ACCOUNT_SIZE |
maxAccountSize |
64 |
No bounds |
This is the maximum number of assets (options, cash, base, perpetuals) that can be supported by a single portfolio margined subaccount. This is constrained by gas requirements. |
MAX_EXPIRIES |
maxExpiries |
11 |
No bounds |
This is the maximum number of unique expiries that can be held by a single portfolio margined subaccount. Note: perpetuals are not included as an expiry. |
Portfolio Margin Shock Scenarios
These are the scenarios of various spot and volatility shocks used to compute portfolio margin.
[spot shock as a %, vol shock] where vol shock is +1 for up, -1 for down and 0 for static
[+20, 1], [+15, 1], [+15, 0], [+15, -1], [+10, 1], [+10, 0], [+10, -1], [+5, 1], [+5, 0], [+5, -1], [0, 1], [0, 0], [0, -1], [-5, 1], [-5, 0], [-5, -1], [-10, 1], [-10, 0], [-10, -1], [-15, 1], [-15, 0], [-15, -1], [-20, 1].
I.e. all spot shocks from -20% to +20%, increasing in steps of 5%. Up/down/static vol shocks for all scenarios between (and inclusive of) -15% and +15%. Only up/static scenarios for +20% and -20%.
Contingency Margin
Doc Name |
Contract Name |
Value |
Bounds |
Description |
PEG_FACTOR |
OtherContingencyParameters.pegLossFactor |
4.0 |
[0.0, 20.0] |
Increases the scaling of initial margin when USDC depegs beyond a threshold value. |
BASE_FACTOR |
OtherContingencyParameters.basePercent |
0.03 |
[0.0, 1.0] |
This is used to compute the base contingency, simply a small percentage of the spot price. |
PERP_FACTOR |
OtherContingencyParameters.perpPercent |
0.03 |
[0.0, 1.0] |
This is used to compute the perp contingency, simply a small percentage of the spot price. |
OPTION_FACTOR |
OtherContingencyParameters.optionPercent |
0.02 |
[0.0, 1.0] |
A small percentage of the spot price is added per net short contract per strike to the asset contingency. |
Volatility Shocks
Doc Name |
Contract Name |
Value |
Bounds |
Description |
VOL_RANGE (up) |
VolShockParameters.volRangeUp |
0.6 |
[0.01, 2.0] |
Multiplicative scaling of the implied volatility when considering an increase in volatility. |
VOL_RANGE (down) |
VolShockParameters.volRangeDown |
0.3 |
[0.01, 2.0] |
Multiplicative scaling of the implied volatility when considering a decrease in volatility. |
SHORT TERM VEGA_POWER |
VolShockParameters.shortTermPower |
0.3 |
[0.0, 0.5] |
A power scaling of the multiplicative volatility shock (for short dated expiries). |
LONG TERM VEGA_POWER |
VolShockParameters.longTermPower |
0.13 |
[0.0, 0.5] |
A power scaling of the multiplicative volatility shock (for long dated expiries). |
DTE_FLOOR |
VolShockParameters.dteFloor |
1 day |
[0.01, 100] days |
A floor on the time-to-expiry used when computing the volatility shock. Avoids divergence arising from dividing by near 0 values. |
Discounting
Doc Name |
Contract Name |
Value |
Bounds |
Description |
RATE_PARAM_1 |
MarginParameters.rateMultScale |
1.0 |
[0, 5.0] |
Multiplicative scaling of the risk free rate used when computing the discounting for a long sub-portfolio. |
RATE_PARAM_2 |
MarginParameters.rateAddScale |
0.12 |
[0, 5.0] |
Additive scaling of the risk free rate used when computing the discounting for a long sub-portfolio. |
STATIC_SCALE |
MarginParameters.baseStaticDiscount |
0.95 |
[0.0,1.0] |
A flat scaling of the sub-portfolio's shocked marked value (only applies if positive). |
Forward Contingency
Doc Name |
Contract Name |
Value |
Bounds |
Description |
ADD_FACTOR |
BasisContingencyParameters.basisContAddFactor |
1.0 |
[0,5.0] |
Additive scaling factor when computing the basis contingency |
MULT_FACTOR |
BasisContingencyParameters.basisContMultFactor |
1.2 |
[0,5.0] |
Multiplicative scaling factor when computing the basis contingency. |
UP_SCENARIO_MOVE |
BasisContingencyParameters.scenarioSpotUp |
1.05 (i.e. [5%, 0] scenario) |
[0.0, 2.0] |
One of the spot shock scenarios used to compute the basis (forward) contingency. |
DOWN_SCENARIO_MOVE |
BasisContingencyParameters.scenarioSpotDown |
0.95 (i.e. [-5%, 0] scenario) |
[0.0, 1.0] |
The other scenario used to compute the basis (forward) contingency. |
Initial Margin and Contingencies