Skip to content

Live track record: score the committed signals with the backtest's accounting - #117

Merged
yanivil merged 1 commit into
mainfrom
feat/evaluate-backtest-accounting
Sep 9, 2026
Merged

yanivil merged 1 commit into
mainfrom
feat/evaluate-backtest-accounting

Conversation

@yanivil

@yanivil yanivil commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Summary

PR 1 of the website plan: the live track record has to use the same accounting as the replays, or the site's "what happened" table would not be comparable to the ten-year figures next to it (and to the late-entry table of #115).

Changes

  • tools/evaluate_signals.py: the fill is the next session's open; an open above the row's Max buy (gap) or at or below the stop (below_stop) is not traded; an unresolved position past the horizon is expired at that bar's close, open means still running; R is measured from the fill. Rows carry fill, fill_date, exit_date, pnl_pct and the sessions on which the signal was listed (listings, listed_days, last_listed); the summary adds the not-traded counts and the total R; the table gains Listed, Fill, Exit and P&L % columns.
  • fill_and_classify is the one implementation of the fill rules: the backtest's _fill_outcome now calls it (expire=False, the replay's convention), with results unchanged, which the existing backtest tests assert.
  • Tests (141 pass), wiki 04, changelog. The evaluate-signals workflow itself is unchanged.

The six live signals under this accounting (run 34326465568 on this branch, bars through 2026-09-08)

Ticker Pattern Signal date Listed Entry Fill Stop Target Outcome Bars Exit P&L % R
BIIB Cup & Handle 2026-09-02 2 222.67 225.44 212.24 256.36 stop 3 212.24 -5.86 -1.0
CL Bullish Wolfe Wave 2026-09-02 2 90.1 90.04 88.67 107.98 stop 2 88.67 -1.52 -1.0
HAL Inverse Head & Shoulders 2026-09-02 4 37.63 37.57 32.64 42.68 open 3 36.8 -2.05 -0.16
VRTX Cup & Handle 2026-09-02 2 556.75 559.0 528.86 625.42 stop 3 528.86 -5.39 -1.0
VZ Inverse Head & Shoulders 2026-09-03 1 50.59 50.55 44.72 60.54 open 2 50.41 -0.28 -0.02
TXN Bullish Wolfe Wave 2026-09-04 1 258.44 260.93 252.94 312.19 open 1 258.92 -0.77 -0.25

Three stopped, three open, mean R −0.57 on six signals; the fills differ from the reported entries by under 1 %.

Test plan

  • ruff --select E,F,W --line-length 120 clean, 141 tests pass locally
  • evaluate-signals workflow run from this branch (34326465568)
  • tests workflow on this PR

🤖 Generated with Claude Code

tools/evaluate_signals.py fills at the next session's open, does not trade
an open above Max buy (gap) or at or below the stop (below_stop), closes an
unresolved position at the horizon (expired) and keeps open for one still
running; R from the fill. Rows carry fill and exit dates, profit percent and
the sessions on which the signal was listed. fill_and_classify is shared:
the backtest's _fill_outcome delegates to it, results unchanged. Tests,
wiki 04, changelog. Groundwork for the website's track record.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@yanivil
yanivil merged commit 12dcbab into main Sep 9, 2026
6 of 7 checks passed
@yanivil
yanivil deleted the feat/evaluate-backtest-accounting branch September 9, 2026 08:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant