Dynamic Bid-Ask Spreads

On SDX, the AMM charges a bid-ask spread fee that serves as the primary mechanism for liquidity providers to earn a fair return, while minimizing risks through rebalancing of greeks. As the mark price of an option is composed of the intrinsic value VIV_I and time value VTV_T, two bid-ask spread multipliers are applied independently on each value and combined to get an option price, , that will be paid for the specific trade.

P=IVI+FVTP = I * V_I + F * V_T

For intrinsic value, a fee of IVII * V_I is added or subtracted for ask and bid orders respectively. II is a pool level parameter that can range from 0% to 10%. This represents a fixed fee on intrinsic value that the AMM is charging to make the order for a trade.

For time value, it is multiplied by FF, a factor that is the combination of the individual greek pricing factors, FGF_{G}, and subjected to max and min bounds and volatility shock effects, and serves to incentivize trades that rebalance greeks.

F=αδFδ+αγFγ+ανFν+αθFθwhereG{α,γ,ν,θ}αG=1  andFminFFmaxF = \alpha_\delta*F_\delta + \alpha_\gamma*F_\gamma + \alpha_\nu*F_\nu + \alpha_\theta * F_\theta \\ where \\ \sum_{G\in \{\,\alpha,\gamma,\nu,\theta\}} \alpha_G = 1 \; \\ and \\ F_{min}\le F \le F_{max}\\

Each greek pricing factor, FGF_G, is calculated using a cubic function with the normalized post-trade greek GnormG_{norm} as an input, subject to max and min bounds. Parameters a,b,c,d,k,na, b, c, d, k, n are shared for both bid and ask orders for the same greek, while bid_adjbid\_adj differs between bid and ask to form the spread.

FG=f(Gnorm,O,M,D)=aGnorm3+bGnorm2+cGnorm+d+bid_adj+kMnDwhereGnorm=Post Trade Normalized GreekO{call,put}M=StrikeSpot/Spotn{1,2,3,4} D(direction)=1 if bid or 1 if askandFmin_askFG_askFmax_askFmin_bidFG_bidFmax_bidF_G=f(G_{norm}, O, M, D) = \\aG_{norm}^3 + bG_{norm}^2 + cG_{norm} + d + bid\_adj + kM^{n}D\\ where\\ G_{norm} = Post\ Trade\ Normalized\ Greek\\ O\in\{{call, put}\}\\M = |Strike-Spot|/Spot\\n \in\{{1, 2, 3, 4}\}\ \\ D (direction) = -1\ if\ bid\ or\ 1\ if \ ask\\ and\\ F_{min\_ask}\le F_{G\_ask} \le F_{max\_ask}\\ F_{min\_bid}\le F_{G\_bid} \le F_{max\_bid}\\
Gnorm=Gi+Gunderlyingunderlying_heldNAVunderlyingwhereiOpen  PositionsGunderlying=G  per  unit  underlying,  s.t.Gunderlying,{γ,ν,θ}=0Gunderlying,δ=1G_{norm} = \frac{\sum_{} G_i + G_{underlying}*underlying\_held}{NAV_{underlying}}\\ where \\ i\in{Open\; Positions} \\ G_{underlying} = G\; per \;unit\; underlying,\; s.t. \\ G_{underlying,\{\gamma,\nu,\theta\}} = 0 \\ G_{underlying,\delta} = 1
NAVunderlying=stable_collateral_heldunderlying_spot_price+underlying_collateral_held+positions_value_in_underlying+option_collateral_in_underlyingNAV_{underlying} = \\ \frac{stable\_collateral\_held}{underlying\_spot\_price} + underlying\_collateral\_held + \\ positions\_value\_in_\_underlying+option\_collateral\_in_\_underlying

For instance, suppose a vault seeks to maintain a target normalized delta of 0.5 and the sale of put options causes the normalized delta to increase from 0.4 to 0.7. At 0.7 normalized delta, an ask-price factor produced by the cubic function could be 1.5 - which implies that the asking price would be 1.5x that of mark price, should the fee be solely weighted by the delta price factor.

Since f(Gnorm,O,M,D)f(G_{norm}, O, M, D) is defined by a set of configurable parameters, a,b,c,d,k,na,b,c,d,k, n for each option type and trade direction, this allows formulation of price factor curves like below:

The dynamic bid-ask spread fee is configured, via parameter kk multiplied by moneyness term, MnM^n, to widen on strikes that are further out of the money, to account for the higher risks of making for a less liquid market. At the money strikes would simply have a dynamic spread of ±k\pm k, as M=1M = 1.

Last updated