feat: improve performance query reliability
This commit is contained in:
@@ -19,6 +19,7 @@ from sqlalchemy import (
|
|||||||
Select,
|
Select,
|
||||||
String,
|
String,
|
||||||
UniqueConstraint,
|
UniqueConstraint,
|
||||||
|
case,
|
||||||
desc,
|
desc,
|
||||||
func,
|
func,
|
||||||
select,
|
select,
|
||||||
@@ -1937,11 +1938,15 @@ class Trade(ModelBase, LocalTrade):
|
|||||||
pair_costs = (
|
pair_costs = (
|
||||||
select(
|
select(
|
||||||
Trade.pair,
|
Trade.pair,
|
||||||
func.sum(Order.filled * Order.average).label("cost_per_pair"),
|
func.sum(
|
||||||
|
func.coalesce(Order.filled, Order.amount)
|
||||||
|
* func.coalesce(Order.average, Order.price, Order.ft_price)
|
||||||
|
).label("cost_per_pair"),
|
||||||
)
|
)
|
||||||
.join(Order, Trade.id == Order.ft_trade_id)
|
.join(Order, Trade.id == Order.ft_trade_id)
|
||||||
.filter(
|
.filter(
|
||||||
*filters,
|
*filters,
|
||||||
|
Order.ft_order_side == case((Trade.is_short.is_(True), "sell"), else_="buy"),
|
||||||
)
|
)
|
||||||
# Order.filled.gt > 0
|
# Order.filled.gt > 0
|
||||||
.group_by(Trade.pair)
|
.group_by(Trade.pair)
|
||||||
|
|||||||
Reference in New Issue
Block a user