refactor: Simplify open trades summary query calculation

This commit is contained in:
Bobby (aider) 2025-02-13 10:34:46 -08:00
parent 52839b451e
commit aedd96eef4

View File

@ -478,15 +478,8 @@ def get_open_trades_summary() -> dict:
query = """ query = """
SELECT SELECT
ticker, ticker,
sum(CASE WHEN direction = 'buy' THEN shares sum(shares) as total_shares,
WHEN direction = 'sell' THEN -shares avg(entry_price) as avg_entry_price,
ELSE 0 END) as total_shares,
sum(CASE WHEN direction = 'buy' THEN shares * entry_price
WHEN direction = 'sell' THEN -shares * entry_price
ELSE 0 END) /
abs(sum(CASE WHEN direction = 'buy' THEN shares
WHEN direction = 'sell' THEN -shares
ELSE 0 END)) as avg_entry_price,
min(entry_date) as first_entry, min(entry_date) as first_entry,
max(entry_date) as last_entry, max(entry_date) as last_entry,
count() as num_orders, count() as num_orders,
@ -494,7 +487,6 @@ def get_open_trades_summary() -> dict:
FROM stock_db.trades FROM stock_db.trades
WHERE exit_price IS NULL WHERE exit_price IS NULL
GROUP BY ticker GROUP BY ticker
HAVING total_shares > 0
ORDER BY ticker ASC ORDER BY ticker ASC
""" """
print(f"Executing summary query: {query}") # Debug print(f"Executing summary query: {query}") # Debug