estimate_position_price_impact
Documentation for eth_defi.gmx.market_depth.estimate_position_price_impact function.
- estimate_position_price_impact(long_open_interest_usd, short_open_interest_usd, size_delta_usd, is_long, params)
Estimate price impact for a position using the GMX v2 formula.
This is a pure-Python implementation – no RPC calls are needed. Pass
PriceImpactParamsobtained viafetch_price_impact_params().The GMX price impact formula from PricingUtils.sol (called by PositionPricingUtils.sol):
applyImpactFactor(diffUsd) = diffUsd ^ exponent * factor impact = applyImpactFactor(initialDiff) - applyImpactFactor(nextDiff)
where
initialDiffandnextDiffare the absolute OI imbalances before and after the trade respectively.Note
Virtual inventory (cross-market impact) is not modelled here, matching the behaviour of the existing
_estimate_price_impacthelper ineth_defi.gmx.order.base_order.- Parameters
long_open_interest_usd (float) – Current long open interest in USD
short_open_interest_usd (float) – Current short open interest in USD
size_delta_usd (float) – Position size to open in USD (must be positive)
is_long (bool) –
Truefor a long position,Falsefor shortparams (eth_defi.gmx.market_depth.PriceImpactParams) – Price impact parameters fetched from the DataStore contract
- Returns
Price impact in USD. Negative values are a cost to the trader (execution price worsens). Positive values are a rebate.
- Return type