FB-001: engine.run(start, end) silently drops the end date [silent-wrong]
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 76/100
Research direction
The issue points to the date filter at engine.py:129 and says get_available_dates() returns timestamps formatted as "YYYY-MM-DD 00:00:00". Start by reading that filter and how run() receives start and end, then check the available date values for the repro. Done means run(d, d) includes that day and the expiry period no longer closes one day early.
Written by the indexing model from the issue text.
Description
Severity: silent-wrong (all modes, including period="day") · Source: BUGS_FASTBT.md (2026-10-09, re-confirmed 2026-10-11 by findings consolidation B04)
engine.py:129 filters start_date <= d <= end_date as strings, but get_available_dates() returns "YYYY-MM-DD 00:00:00". "2025-07-10 00:00:00" <= "2025-07-10" is False, so the end date is excluded.
Repro (nifty_full.vortex, verified 2026-10-09): [d for d in dates if '2025-07-04' <= d <= '2025-07-10'] gives 07-04, 07-07, 07-08, 07-09 — expiry 07-10 is missing.
Impact: day mode silently skips the last day; run(d, d) runs zero days. In expiry mode the period is truncated: the position is force-closed (EOD_FORCE) at 15:30 the day before expiry.
Workaround: pass end + " 23:59:59".
Fix: compare on str(d)[:10], or normalise the dates once in run().
- Dominant language
- Python
- Stars
- 28
- Forks
- 17
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from uberdeveloper/fastbt
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
uberdeveloper/fastbt#29 ·
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 48/100
uberdeveloper/fastbt#31 ·
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 52/100
uberdeveloper/fastbt#30 ·
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 48/100
uberdeveloper/fastbt#28 ·
-
FB-008: close_trade mixes price and tick; stale exits are silent (zero-P&L fallback) [silent-wrong]Openbug
Difficulty 3/5 1-2 days Newbie friendliness 70/100
uberdeveloper/fastbt#27 ·
All issues in uberdeveloper/fastbt
Similar issues
-
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
gradio-app/gradio#13964 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 93/100
BSData/horus-heresy-3rd-edition#3232 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
jbacalso24/mimry#123 ·
Maintainers usually reply within 1 day
-
p:3-mid pydanty:bug pydanty:is-working
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
pydantic/pydantic-ai#10153 · 1 comment ·
Maintainers usually reply within 1 day
-
good first issue priority: medium size: S testing
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
cubrid-lab/cubrid-cookbook-python#316 ·
Maintainers usually reply within 1 day