Olive Docs
Perpetual Futures

Liquidation

Liquidation

Liquidation Condition

Once this condition is triggered, the position is ready to be liquidated.

Liquidation    {collateral_size+PNLlongborrow_feeclose_fee    sizemax_lev,perp long,collateral_size+PNLshortborrow_feeclose_fee    sizemax_lev,perp short.\text{Liquidation} \iff \begin{cases} \text{collateral\_size}+\text{PNL}_{\text{long}}-\text{borrow\_fee}-\text{close\_fee}\;\le\;\dfrac{\text{size}}{\text{max\_lev}}, & \text{perp long},\\ \text{collateral\_size}+\text{PNL}_{\text{short}}-\text{borrow\_fee}-\text{close\_fee}\;\le\;\dfrac{\text{size}}{\text{max\_lev}}, & \text{perp short}. \end{cases}

Where:

PNL={sizeS0(S1S0),perp long,sizeS0(S0S1),perp short.\mathrm{PNL}= \begin{cases} \dfrac{\text{size}}{S_0}\left(S_1-S_0\right), & \text{perp long},\\ \dfrac{\text{size}}{S_0}\left(S_0-S_1\right), & \text{perp short}. \end{cases}

Borrow fee is accumulated hourly:

borrow_fee={sizeh=1HrTOKEN-variable,perp long,sizeh=1HrUSDC-variable,perp short.\text{borrow\_fee}= \begin{cases} \text{size}\displaystyle\sum_{h=1}^{H} r_{\text{TOKEN-variable}}, & \text{perp long},\\ \text{size}\displaystyle\sum_{h=1}^{H} r_{\text{USDC-variable}}, & \text{perp short}. \end{cases}

Liquidation Price

Pliq={pricecollateral_sizeclose_feeborrow_feesizemax_lev  pricesize,perp long,price+collateral_sizeclose_feeborrow_feesizemax_lev  pricesize,perp short.P_{\text{liq}}= \begin{cases} \text{price}-\dfrac{\left|\text{collateral\_size}-\text{close\_fee}-\text{borrow\_fee}-\dfrac{\text{size}}{\text{max\_lev}}\right|\;\text{price}}{\text{size}}, & \text{perp long},\\ \text{price}+\dfrac{\left|\text{collateral\_size}-\text{close\_fee}-\text{borrow\_fee}-\dfrac{\text{size}}{\text{max\_lev}}\right|\;\text{price}}{\text{size}}, & \text{perp short}. \end{cases}

In this case price is the oracle price of the token.

On this page