Skip to main content

Portfolio Margin

Dederi uses portfolio margin for strategy-level risk control. To accurately evaluate the maximum potential loss under portfolio margin, two key factors are considered: ±15% fluctuations in future prices and the maximum changes in option implied volatility. Additionally, we introduce future contingency and option contingency to address risks arising from liquidity shocks.

Future Simulated PnL and Contingency

Future Simulated PnL

Consider futures contract ii with expiration date TiT_i, mark price FTiF^{T_i}, and current position QiQ_i. The FutureSimPnL with price shock factor Δk\Delta_k, where ΔkPriceShockRange\Delta_k \in \text{PriceShockRange}, is calculated as follows:

FutureSimPnL=i[Qi(FTi(1+Δk))QiFTi]=ΔkiQiFTiFutureSimPnL = \sum_{i}[Q_i(F^{T_i}(1+\Delta_k)) - Q_iF^{T_i}] = \Delta_k \sum_{i}Q_iF^{T_i}

Future Contingency

Future contingency accounts for the negative impact of transactions on liquidity, particularly for large position traders. By incorporating future contingency into margin calculations, liquidity risks caused by transactions can be mitigated effectively. Given the current index price I0I_0, the future contingency is calculated as follows:

FutureContingency=FutureContingencyFactorI0i=1NQiFutureContingency = FutureContingencyFactor \cdot I_0 \cdot \sum_{i=1}^{N} |Q_i|

Example

Alice holds 10 long positions in ETH-10JAN24 futures, with a current price of I0=2243.3I_0 = 2243.3 and an annualized basis rate ABR=0.08ABR = 0.08:

F0=2243.3e0.08(20/365)=2253.2F_0 = 2243.3 \cdot e^{0.08 \cdot (20 / 365)} = 2253.2
FutureContingency=0.0062243.310=134.6FutureContingency = 0.006 \cdot 2243.3 \cdot 10 = 134.6

Future Simulated PnL Table:

Price Shock-15%-12%-9%-6%-3%0%3%6%9%12%15%
PnL-3380-2704-2028-1352-67606761352202827043380

Option Simulated PnL and Contingency

Option Simulated PnL

Assume the current time is tt, option ii has a strike price KK and expiration TiT_i, with the underlying futures price for the same expiration FTiF^{T_i}. Futures price under ±15% fluctuation can be expressed as:

FkTi=(1+Δk)FTiF_k^{T_i} = (1 + \Delta_k) F^{T_i}

For implied volatility, we consider three scenarios: up, same, and down, based on MaxIVChange\text{MaxIVChange}:

MaxIVChangeup=(30Tdays)VPowerUpFactorMaxIVChange_{up} = \left(\frac{30}{T_{\text{days}}}\right)^{VPower} \cdot UpFactor
MaxIVChangedown=(30Tdays)VPowerDownFactorMaxIVChange_{down} = \left(\frac{30}{T_{\text{days}}}\right)^{VPower} \cdot DownFactor

Where TdaysT_{\text{days}} is the remaining days to expiration. For Tdays>30T_{\text{days}} > 30, VPower\text{VPower} is set to LongTermVPower\text{LongTermVPower}; otherwise, it is ShortTermVPower\text{ShortTermVPower}. The adjusted implied volatilities are calculated as:

σidown=σi(1MaxIVChangedown),σisame=σi,σiup=σi(1+MaxIVChangeup)\sigma_i^{down} = \sigma_i(1 - MaxIVChange_{down}), \sigma_i^{same} = \sigma_i, \sigma_i^{up} = \sigma_i(1 + MaxIVChange_{up})

By inputting the initial parameters FTi,σi,Ti,t,K,rF^{T_i}, \sigma_i, T_i, t, K, r into the Black model , we can obtain the initial prices of options with different types (Call/Put) and strike prices under current market conditions. Subsequently, we input different futures prices and volatilities into the Black model, generating 33 option prices (11 Δk\Delta k × 3 scenarios). Finally, we calculate the OptionSimPnL by comparing these prices with the initial option prices of the same type and strike price. The algorithm is as follows:

OptionSimPnLkup=i=1N[Qi(V(FkTi,σiup,Ti,t,K,r)V(FTi,σi,Ti,t,K,r))]OptionSimPnL_k^{up} = \sum_{i=1}^{N} \left[Q_i \left(V(F_k^{T_i},\sigma_i^{up},T_i,t,K,r)-V(F^{T_i},\sigma_i,T_i,t,K,r)\right)\right]
OptionSimPnLksame=i=1N[Qi(V(FkTi,σisame,Ti,t,K,r)V(FTi,σi,Ti,t,K,r))]OptionSimPnL_k^{same} = \sum_{i=1}^{N} \left[Q_i \left(V(F_k^{T_i},\sigma_i^{same},T_i,t,K,r)-V(F^{T_i},\sigma_i,T_i,t,K,r)\right)\right]
OptionSimPnLkdown=i=1N[Qi(V(FkTi,σidown,Ti,t,K,r)V(FTi,σi,Ti,t,K,r))]OptionSimPnL_k^{down} = \sum_{i=1}^{N} \left[Q_i \left(V(F_k^{T_i},\sigma_i^{down},T_i,t,K,r)-V(F^{T_i},\sigma_i,T_i,t,K,r)\right)\right]

Example

Continuing from the previous example, Alice not only holds 10 long ETH-10JAN24 futures contracts but also owns 10 long ETH-10JAN24-2300-C call options. The current underlying futures price is F0=2253.2F_0=2253.2, with remaining 20 days to expiration and implied volatility given as σi=0.2\sigma_i=0.2:

MaxIVChangeup=(3020)0.30.45=0.5082MaxIVChange_{\text{up}} = \left(\frac{30}{20}\right)^{0.3} \cdot 0.45 = 0.5082
MaxIVChangedown=(3020)0.30.3=0.3388MaxIVChange_{\text{down}} = \left(\frac{30}{20}\right)^{0.3} \cdot 0.3 = 0.3388
σiup=0.2(1+0.5082)=0.3016\sigma_i^{up} = 0.2 \cdot (1 + 0.5082) = 0.3016
σidown=0.2(10.3388)=0.1322\sigma_i^{down} = 0.2 \cdot (1 - 0.3388) = 0.1322

Option Simulated PnL Table:

Price ShockFutures Priceupsamedown
-15%1915.2-229.2-231.4-231.4
-12%1982.8-221.7-231.2-231.4
-9%2050.4-198.0-229.0-231.4
-6%2118.0-138.0-215.1-230.6
-3%2185.6-13.9-158.0-217.0
0%2253.2202.60.00-124.5
3%2320.8528.4311.8169.7
6%2388.4962.5782.9691.4
9%2456.01487.81368.81332.7
12%2523.62079.32014.22004.4
15%2591.22712.52682.02680.1

Option Contingency

Option contingency, similar to futures contingency, addresses the liquidity impact of options trading. Including this in margin calculations effectively mitigates potential risks arising from trading-induced liquidity changes. For a given expiration date TT, the corresponding futures price and strike prices of the options are FTF^T and KTK^T, respectively. For each expiration date, options are arranged by their respective strike prices (i.e., K1,K2,...,KnK_1, K_2, ..., K_n), and, based on this ordering, the option positions at strike jj are calculated as follows:

StrikePosition(KjT)=CallPosition(KjT)+PutPosition(KjT)StrikePosition(K_j^T) = CallPosition(K_j^T) + PutPosition(K_j^T)
  1. Calculate AdjustedStrikePosition\text{AdjustedStrikePosition}
AdjustedStrikePosition(KjT)={StrikePositionKjTFTFTATMRange,ifKjTFTFT<ATMRangeStrikePosition,elseAdjustedStrikePosition(K_j^T) = \begin{cases} StrikePosition \cdot \frac{ \left| \frac{K_j^T - F^T}{F^T} \right|}{ATMRange}, &if \left| \frac{K_j^T - F^T}{F^T} \right| < ATMRange \\[8pt] StrikePosition, &else \end{cases}
  1. Calculate NetPosition\text{NetPosition}

Strike prices are partitioned into two groups based on their relation to FTF^T (above and below). Within each group, the NetPosition\text{NetPosition} is set equal to the AdjustedStrikePosition\text{AdjustedStrikePosition} for the strike price closest to ATMRange\text{ATMRange}.

Starting from the two nearest strike prices in each group, the calculation extends outward to all strike prices. Specifically, it proceeds sequentially from the higher strike near ATMRange\text{ATMRange} toward the maximum strike, and from the lower strike near ATMRange\text{ATMRange} toward the minimum strike.

If the NetPosition\text{NetPosition} of the previous strike price is positive, the NetPosition\text{NetPosition} of the current strike price equals the AdjustedStrikePosition\text{AdjustedStrikePosition} of the current strike price plus the NetPosition\text{NetPosition} of the previous strike price. If the NetPosition\text{NetPosition} of the previous strike price is zero or negative, the NetPosition\text{NetPosition} of the current strike price equals the AdjustedStrikePosition\text{AdjustedStrikePosition} of the current strike price.

Example

Assuming the current BTC futures price is 43219.77, the calculation of the net positions for options proceeds as follows:

Call PositionStrikePut PositionStrike PositionKTFTFT\frac{K_T - F^T}{F^T}Adjusted Strike PositionNet Position
43200
1043300-20-100.19% < 10%-0.19-0.19
5043600-30200.88% < 10%1.761.76
-3044000-40-701.81% < 10%-12.64-10.69
8045000601404.12% < 10%57.6757.67
-1550000251015.69% > 10%10.0067.67
ContingencyFactorPosition(T)=((0.19)+(10.69))=10.88ContingencyFactorPosition(T) = -((-0.19) + (-10.69)) = 10.88
  1. Calculate OptionContingency\text{OptionContingency}
ContingencyFactorPosition(T)=j=1nmin(NetPosition(KjT),0)ContingencyFactorPosition(T) = -\sum_{j=1}^{n} \min(NetPosition(K_j^T), 0)
OptionContingency(T)=OptionContingencyFactorContingencyFactorPosition(T)FTOptionContingency(T) = OptionContingencyFactor \cdot ContingencyFactorPosition(T) \cdot F^T
OptionContingency=TOptionContingency(T)OptionContingency = \sum_{T} OptionContingency(T)

Portfolio Margin

If a user only holds long positions in options, Dederi does not require any margin.

Margin Metrics

SimpleMM=min{0,minΔkΩ{minΘΛ{FuturesSimPnLk+OptionSimPnLkΘ}}}SimpleMM = -\min \left\{0, \min_{\Delta_k \in \Omega} \left\{\min_{\Theta \in \Lambda} \{FuturesSimPnL_k + OptionSimPnL_k^{\Theta}\}\right\}\right\}

where Λ\Lambda represents the set of "up," "same," and "down" scenarios while Ω\Omega refers to PriceShockRange\text{PriceShockRange}, same as above.

MM=SimpleMM+FutureContingency+OptionContingencyMM = SimpleMM + FutureContingency + OptionContingency
IM=InitialMarginFactorMMIM = InitialMarginFactor \cdot MM
IMRatio=IMEquityIMRatio = \frac{IM}{Equity}
MMRatio=MMEquityMMRatio = \frac{MM}{Equity}

Example

Continuing the previous example, the current index price is I0=2243.3I_0=2243.3, with the corresponding price of underlying futures at F0=2253.2F_0=2253.2. Alice has a portfolio consists of:

  • 10 long positions in ETH-10JAN24-2200-C and 15 short positions in ETH-10JAN24-2200-P, with a strike price K1=2200K_1=2200;
  • 5 short positions in ETH-10JAN24-2500-P, with a strike price K2=2500K_2=2500.

Under a scenario where the futures price drops by 15% and volatility "up," the maximum portfolio loss is 9911.9-9911.9, leading to:

SimpleMM=min(0,9911.86)=9911.9SimpleMM = -\min(0, -9911.86) = 9911.9

Calculating the net positions based on the steps:

Strike PriceK=2200K=2500
Strike Position5.00-15.00
KII\frac{K - I}{I}1.93%11.44%
Within ATM RangeTRUEFALSE
Adjusted Strike Position0.97-15.00
NetPosition(2500)=AdjustedStrikePosition(2500)=15NetPosition(2500) = AdjustedStrikePosition(2500) = -15NetPosition(2200)=AdjustedStrikePosition(2200)=0.97NetPosition(2200) = AdjustedStrikePosition(2200) = 0.97

Calculating the option contingency:

ContingencyFactorPosition(T)=(15)=15ContingencyFactorPosition(T) = -(-15) = 15OptionContingency=2243.30.0115=336.5OptionContingency = 2243.3 \cdot 0.01 \cdot 15 = 336.5

Final margin metrics:

MM=9911.9+134.6+336.5=10383.0MM = 9911.9 + 134.6 + 336.5 = 10383.0IM=130%10383.0=13497.9IM = 130\% \cdot 10383.0 = 13497.9
Products

Dederi RFQ

Structuring

Professional User Trial

Market Data

Services

Docs

Privacy Policy

Term of Services

Support
@Dederi_official

Products

Dederi RFQ

Structuring

Professional User Trial

Market Data

Services

Docs

Privacy Policy

Term of Services

Copyright © 2024 Dederi