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, read_at=None, block_number=None, token_in=None, token_out=None)#
- Parameters:
price (float) –
mid_price (float) –
path (Optional[List[TradingPairIdentifier]]) –
- Return type:
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.
When the price read was performed
What was the block number when the read was performed
Amount of tokens we put in
Amount of tokens we got out
- price: float#
The price we expect this transaction to clear.
LP fees included
Price impact included
Slippage = 0
- 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.
Each trading pair on path will have its own fees. The list is the per path fees.
- 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)