mirror of
https://github.com/Xe138/AI-Trader.git
synced 2026-04-01 17:17:24 -04:00
fix: enable cross-job portfolio continuity in get_starting_holdings
Remove job_id filter from get_starting_holdings() SQL JOIN to enable holdings continuity across jobs. This completes the cross-job portfolio continuity fix started in the previous commit. Root cause: get_starting_holdings() joined on job_id, preventing it from finding previous day's holdings when queried from a different job. This caused starting_position.holdings to be empty in API results for new jobs even though starting_cash was correctly retrieved. Changes: - api/database.py: Remove job_id from JOIN condition in get_starting_holdings() - tests/unit/test_database_helpers.py: Add test for cross-job holdings retrieval Together with the previous commit fixing get_previous_trading_day(), this ensures complete portfolio continuity (both cash and holdings) across jobs.
This commit is contained in:
@@ -661,6 +661,9 @@ class Database:
|
||||
def get_starting_holdings(self, trading_day_id: int) -> list:
|
||||
"""Get starting holdings from previous day's ending holdings.
|
||||
|
||||
NOTE: Queries across ALL jobs for the given model to enable portfolio
|
||||
continuity even when new jobs are created with overlapping date ranges.
|
||||
|
||||
Returns:
|
||||
List of dicts with keys: symbol, quantity
|
||||
Empty list if first trading day
|
||||
@@ -671,7 +674,6 @@ class Database:
|
||||
SELECT td_prev.id
|
||||
FROM trading_days td_current
|
||||
JOIN trading_days td_prev ON
|
||||
td_prev.job_id = td_current.job_id AND
|
||||
td_prev.model = td_current.model AND
|
||||
td_prev.date < td_current.date
|
||||
WHERE td_current.id = ?
|
||||
|
||||
Reference in New Issue
Block a user