Repository navigation
Add selected opening-hour walk-forward research - #33
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 612cd59551
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if manifest["as_of"] != args.session_date: | ||
| raise SelectedOutcomesBlockedError( | ||
| "manifest.as_of must equal session_date" | ||
| ) |
There was a problem hiding this comment.
Reject same-session analysis dates
When a valid manifest has analysis_date == session_date, this check passes because normalization permits equality, so the screen can contain that session's closing data while the script compares it with the same session's opening-hour bars. That introduces direct look-ahead into the advertised point-in-time outcomes; require manifest["analysis_date"] < args.session_date, as the existing opening-hour collector does.
Useful? React with 👍 / 👎.
| rows = { | ||
| row.day: row | ||
| for row in qta1.read_csv(instrument["benchmark_csv"]) | ||
| } |
There was a problem hiding this comment.
Verify the benchmark hash before computing the regime
If the benchmark CSV is updated or revised in place after the frozen manifest was created, this reads the changed file without comparing it to benchmark_csv_sha256; the resulting regime and pass/fail summaries therefore silently combine a frozen screen with untracked data. Validate the file against the manifest hash before reading it so the outcome remains reproducible and bound to its declared inputs.
Useful? React with 👍 / 👎.
| value = evaluation.normalized_screen(path) | ||
| method = value["method_version"] |
There was a problem hiding this comment.
For a valid qta-screen/v2 artifact whose screen_status is BLOCKED, screen_universe.py deliberately emits empty selected lists, but this path accepts the artifact and eventually reports the outcomes artifact as READY with zero candidates. Check screen_status == "READY" before consuming selections so failed screening is not converted into a successful research result.
Useful? React with 👍 / 👎.
Summary
Validation