TradePricing#
tradeexecutor.strategy.trade_pricing.TradePricing Python class in Trading Strategy framework.
- class TradePricing[source]#
Bases:
object
Describe price results for a price query.
Each price result is tied to quantiy/amount
Each price result gets a split that describes liquidity provider fees
A helper class to deal with problems of accounting and estimation of prices on Uniswap like exchange.
- __init__(price, mid_price, lp_fee=None, pair_fee=None, market_feed_delay=None, side=None, path=None)#
Methods
__init__
(price, mid_price[, lp_fee, ...])from_dict
(kvs, *[, infer_missing])from_json
(s, *[, parse_float, parse_int, ...])Returns a single decimal value for the percentage of fees paid.
Returns the total lp fees paid (dollars) for the trade.
schema
(*[, infer_missing, only, exclude, ...])to_dict
([encode_json])to_json
(*[, skipkeys, ensure_ascii, ...])Attributes
The price we expect this transaction to clear.
The theoretical market price during the transaction.
How much liquidity provider fees we are going to pay on this trade.
What was the LP fee % used as the base of the calculations.
How old price data we used for this estimate
Is this buy or sell trade.
Path of the trade One trade can have multiple swaps if there is an intermediary pair.
- price: float#
The price we expect this transaction to clear.
This price has LP fees already deducted away from it. It may or may not include price impact if liquidity data was available for the pricing model.
- mid_price: float#
The theoretical market price during the transaction.
This is the (ask price + bid price) / 2 order book price that no one can obtain.
No LP fees, price impact, etc. are included in this price. It can be used as a basis for other fee estimation calculations.
See mid price for more information.
- lp_fee: Optional[list[float]]#
How much liquidity provider fees we are going to pay on this trade.
Set to None if data is not available.
- path: Optional[List[TradingPairIdentifier]]#
Path of the trade One trade can have multiple swaps if there is an intermediary pair.
- get_fee_percentage()[source]#
Returns a single decimal value for the percentage of fees paid. This calculation represents the average of all the pair fees. Calculation is the same for v2 and v3.
Calculation:
-> x(1 - fee0)(1 - fee1) = x(1 - fee) -> (1 - fee0)(1 - fee1) = (1 - fee) -> fee = 1 - (1 - fee0)(1 - fee1)
- __init__(price, mid_price, lp_fee=None, pair_fee=None, market_feed_delay=None, side=None, path=None)#