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_previous_trading_day
Remove job_id filter from get_previous_trading_day() SQL query to enable portfolio continuity across jobs. Previously, new jobs would reset to initial $10,000 cash instead of continuing from previous job's ending position. Root cause: get_previous_trading_day() filtered by job_id, while get_current_position_from_db() correctly queries across all jobs. This inconsistency caused starting_cash to default to initial_cash when no previous day was found within the same job. Changes: - api/database.py: Remove job_id filter from SQL WHERE clause - tests/unit/test_database_helpers.py: Add test for cross-job continuity Fixes position tracking bug where subsequent jobs on consecutive dates would not recognize previous day's holdings from different job.
This commit is contained in:
@@ -611,6 +611,10 @@ class Database:
|
||||
|
||||
Handles weekends/holidays by finding actual previous trading day.
|
||||
|
||||
NOTE: Queries across ALL jobs for the given model to enable portfolio
|
||||
continuity even when new jobs are created with overlapping date ranges.
|
||||
The job_id parameter is kept for API compatibility but not used in the query.
|
||||
|
||||
Returns:
|
||||
dict with keys: id, date, ending_cash, ending_portfolio_value
|
||||
or None if no previous day exists
|
||||
@@ -619,11 +623,11 @@ class Database:
|
||||
"""
|
||||
SELECT id, date, ending_cash, ending_portfolio_value
|
||||
FROM trading_days
|
||||
WHERE job_id = ? AND model = ? AND date < ?
|
||||
WHERE model = ? AND date < ?
|
||||
ORDER BY date DESC
|
||||
LIMIT 1
|
||||
""",
|
||||
(job_id, model, current_date)
|
||||
(model, current_date)
|
||||
)
|
||||
|
||||
row = cursor.fetchone()
|
||||
|
||||
Reference in New Issue
Block a user