computePriceImpact function
Percent
computePriceImpact(
- Price midPrice,
- CurrencyAmount inputAmount,
- CurrencyAmount outputAmount
Returns the percent difference between the mid price and the execution price, i.e. price impact. @param midPrice mid price before the trade @param inputAmount the input amount of the trade @param outputAmount the output amount of the trade
Implementation
Percent computePriceImpact(
Price midPrice, CurrencyAmount inputAmount, CurrencyAmount outputAmount) {
final inputAmountFraction = Fraction(inputAmount.raw);
final outputAmountFraction = Fraction(outputAmount.raw);
var exactQuote = midPrice.raw.multiply(inputAmountFraction);
var slippage = (exactQuote.subtract(outputAmountFraction).divide(exactQuote));
return Percent(slippage.numerator, denominator: slippage.denominator);
}