Record
٨٩٫٢% headline hit rate across ٣٢٧٬٧١٥ backfilled calls. This is a BACKFILL, not a live-tracked record — see the note below.
احتمالات محسوبة. لا توجد توصيات تداول. ما يعنيه هذا →
This is a backfill, not a live record
This is a BACKFILL: the v3 rule replayed over 2010-2026 history (2017-07+ for RTY), not a live-tracked record. Live publication starts only once /ranges' cron (parity/DESIGN.md task 6b) has actually been deployed and run -- see manifests's own known_gaps for what a fully honest live record still needs (the first-year-of-history walk-forward gap, EXPIRED handling).
Parameter disclosure
d_target and d_inv are PRODUCT PARAMETERS chosen by grid sweep to match the shape of leppyrd's published record20yr.csv signature (hit rate, decision speed, MFE/MAE, payoff, tier spread) - they are NOT a discovered fact about market structure and are not fitted to our own data's outcomes. Given that choice, the ODDS themselves are still walk-forward calibrated honestly (fit on year<Y, applied to year Y) - the parameter choice sets the RULE, the walk-forward sets the PROBABILITY under that rule. See sweep_v3.csv for the full 48-cell grid this was chosen from.
The rule
At TF-bar close t: range_N = max(High,N)-min(Low,N) over last N TF bars. position = (Close_t - min(Low,N))/range_N. prior_move_atr = (Close_t - Close_(t-N)) / mean(High-Low,N). Extreme-high setup (position>=0.97, prior_move_atr>=+0.50) -> CALL UP (continuation). Extreme-low setup (position<=0.03, prior_move_atr<=-0.50) -> CALL DOWN. Winning lookback: N=40.
ASYMMETRIC RACE, v3 (DESIGN.md #1). HIT = a later TF bar's High/Low TOUCHES entry +/- d_target*ATR_N(t). MISS = a later TF bar's CLOSE is beyond entry -/+ d_inv*ATR_N(t). HIT has precedence over MISS within the same bar. Neither within 40 periods -> EXPIRED (reported separately, excluded from the odds fit).
EXPIRED (neither target nor invalidation hit within the ٤٠-period cap): ٠٫٠٠٢% of calls (٧) — excluded from the odds fit and from every tier's hit rate.
Stated vs. actual, by tier
| tier | stated | actual | gap | n | reportable |
|---|---|---|---|---|---|
| A | ٨٤٫٣% | ٨٦٫٤% | +٢٫٠٦ pp | ٩٢٬٢٤٩ | yes |
| B | ٧٩٫٧% | ٨٢٫٣% | +٢٫٥٨ pp | ٩٬٦٦٨ | yes |
| D | ٧٤٫٧% | ٨٢٫٧% | +٧٫٩٧ pp | ٢٣١ | no |
| S | ٩٠٫١% | ٩٠٫٩% | +٠٫٨٣ pp | ٢١٧٬١٦٤ | yes |
Stated vs. actual, by year
| year | stated | actual | gap | n | reportable |
|---|---|---|---|---|---|
| 2011 | ٨٦٫١% | ٨٧٫٨% | +١٫٧٧ pp | ١٦٬٨٤٦ | yes |
| 2012 | ٨٧٫١% | ٨٨٫٤% | +١٫٣٣ pp | ١٤٬٠٧١ | yes |
| 2013 | ٨٧٫٦% | ٨٥٫٦% | -٢٫٠١ pp | ١٣٬٩٨٨ | yes |
| 2014 | ٨٧٫٣% | ٨٧٫٣% | -٠٫٠٢ pp | ١٤٬٠٧٦ | yes |
| 2015 | ٨٧٫٦% | ٨٨٫٣% | +٠٫٦٩ pp | ١٣٬٩٨٨ | yes |
| 2016 | ٨٧٫٥% | ٨٨٫٦% | +١٫٠٧ pp | ١٦٬٧٦٤ | yes |
| 2017 | ٨٧٫٥% | ٨٧٫٧% | +٠٫١٤ pp | ١٦٬٥٠٦ | yes |
| 2018 | ٨٧٫٨% | ٩٠٫٠% | +٢٫١٧ pp | ٢٢٬٤٢٧ | yes |
| 2019 | ٨٨٫١% | ٨٩٫٢% | +١٫٠٨ pp | ١٩٬٤٥٩ | yes |
| 2020 | ٨٧٫٩% | ٩٠٫٢% | +٢٫٢٩ pp | ٢٣٬٤٥٩ | yes |
| 2021 | ٨٨٫٦% | ٩٠٫٢% | +١٫٥٤ pp | ٢٤٬٥٢٩ | yes |
| 2022 | ٨٨٫٩% | ٨٩٫٧% | +٠٫٨٢ pp | ٢٦٬١٥٦ | yes |
| 2023 | ٨٨٫٨% | ٨٩٫٨% | +١٫٠٤ pp | ٢٦٬٢٣٥ | yes |
| 2024 | ٨٨٫٧% | ٨٩٫٨% | +١٫٠٤ pp | ٢٧٬٩٢٨ | yes |
| 2025 | ٨٨٫٨% | ٩١٫٠% | +٢٫٢٢ pp | ٢٦٬٩٠٢ | yes |
| 2026 | ٨٩٫٠% | ٩٢٫٠% | +٣٫٠٢ pp | ١٥٬٩٧٨ | yes |
Stated vs. actual, by market
| market | stated | actual | gap | n | reportable |
|---|---|---|---|---|---|
| CL | ٨٧٫٩% | ٨٩٫٥% | +١٫٦١ pp | ٤٥٬٥٥٣ | yes |
| ES | ٨٨٫٢% | ٨٩٫٥% | +١٫٣٠ pp | ٦٤٬٠٢٥ | yes |
| GC | ٨٨٫٠% | ٩٠٫١% | +٢٫٠٨ pp | ٣٦٬٢٩٧ | yes |
| NQ | ٨٨٫١% | ٨٩٫٥% | +١٫٣٧ pp | ٧١٬٩٦٧ | yes |
| RTY | ٨٨٫٤% | ٨٨٫٧% | +٠٫٣٢ pp | ٤٠٬٦٧٦ | yes |
| YM | ٨٨٫٠% | ٨٨٫٩% | +٠٫٨٧ pp | ٦٠٬٧٩٤ | yes |
Stated vs. actual, by timeframe
| TF | stated | actual | gap | n | reportable |
|---|---|---|---|---|---|
| 15m | ٨٧٫٣% | ٨٨٫٩% | +١٫٥٥ pp | ٩٩٬٦١٣ | yes |
| 30m | ٨٨٫١% | ٨٩٫١% | +١٫٠٤ pp | ٥٢٬٥٨٤ | yes |
| 45m | ٨٨٫٦% | ٨٩٫٨% | +١٫٢٠ pp | ٣٨٬٠١٨ | yes |
| 60m | ٨٧٫٩% | ٨٩٫٣% | +١٫٤٥ pp | ٣٠٬٠٩٢ | yes |
| 75m | ٨٩٫١% | ٨٩٫٧% | +٠٫٦٧ pp | ٢٥٬٤٦٦ | yes |
| 90m | ٨٨٫٣% | ٨٩٫٧% | +١٫٤١ pp | ٢١٬٧٦٤ | yes |
| 105m | ٨٨٫٩% | ٩٠٫١% | +١٫١٨ pp | ١٩٬٤٨٦ | yes |
| 120m | ٨٨٫٢% | ٨٩٫٣% | +١٫١٠ pp | ١٧٬٦٧٠ | yes |
| 150m | ٨٩٫٣% | ٨٩٫٩% | +٠٫٦٢ pp | ١٤٬٦١٩ | yes |
Payoff
Average move size (in ATR) on hits vs. misses, and expected value per call.
| tier | win % | payoff (mean) | EV/call (ATR) |
|---|---|---|---|
| overall | ٨٩٫٢% | ٠٫٩٨٢ | ٠٫٥١٥ |
| A | ٨٦٫٤% | ١٫٠٤٧ | ٠٫٤٩٨ |
| B | ٨٢٫٣% | ١٫٠٣٦ | ٠٫٤٩٠ |
| D | ٨٥٫٧% | ٠٫٩٦٠ | ٠٫٤٢٠ |
| S | ٩٠٫٩% | ٠٫٩٥١ | ٠٫٥٢٧ |
Fixed-horizon side number
1-period close-vs-entry outcome, reported ALONGSIDE the v3 asymmetric-race status (target touch / invalidation close) per parity/DESIGN.md #6 -- 'hit is not whether it paid'. Independent field, not a substitute for the main HIT/MISS/EXPIRED status.
| tier | 1-period rate | n |
|---|---|---|
| A | ٤٥٫١% | ٨٧٬٨٣٧ |
| B | ٤٣٫٣% | ٩٬٠٤٠ |
| D | ٤٢٫٨% | ٨٬١٨١ |
| S | ٤٨٫٨% | ٢١٢٬٥٩١ |
Download
Every backfilled call, unfiltered: record-backfill.csv (17.6 MB, CSV)
Known gaps
- SIGNATURE MISMATCH (central finding, explicitly requested): NO cell in the 48-cell sweep reproduces leppyrd's MISS decision speed. Their record20yr.csv shows MISS median 5-8 periods; every single cell in our grid (d_target in [0.05,0.20] ATR, d_inv in [0.15,1.00] ATR, both N=10 and N=40 lookbacks) gives MISS median 1-3 periods - see sweep_v3.csv column miss_median_period, min=1.0 max=3.0 across all 48 rows. Mechanically this is because ATR is itself the AVERAGE single-bar range, so a single bar's CLOSE crossing a threshold of 0.15-1.00x ATR from entry is a routine, often-1-bar event, especially right after the momentum push that generated the setup. PROPOSAL for the next iteration: replace the single-bar-close invalidation with either (a) a WIDE, TF-scaled invalidation that requires touching a boundary several ATR away (this is what v2's N-bar-range invalidation did, and it DID produce slow MISS - median 17 periods - but was too wide, given hit rate 99.3%), suggesting the true invalidation distance is between v2's N-range width and v3's single-ATR band; or (b) a PERSISTENCE requirement - K consecutive bar closes beyond d_inv before registering MISS, which would let isolated single-bar spikes revert while forcing MISS to wait out a genuine trend, matching HIT staying fast. Neither implemented here (out of scope for this pass) - recommend (b) as the next sweep axis since it directly targets bar-count without re-opening the near/far ATR-distance search.
- Because of the mismatch above, the winning cell is a best-available choice under the documented distance metric, not a close match: hit_pct in the 2-symbol sweep was 90.6% (vs target 80%) and the full 6-market walk-forward gives 89.2% - still meaningfully above the leppyrd 80% target, though the tier distribution now genuinely spans S/A/B/D (unlike v2's near-monolithic S).
- PARAMETER_DISCLOSURE above applies throughout: d_target=0.05 ATR / d_inv=0.15 ATR are a chosen design, not derived truth.
- v1 (literal close-vs-entry rule) kept as *_v1_literal.*; v2 (near=touch-ladder ATR, far=N-range boundary) kept as *_v2_range.* - both superseded by this v3 run for the live deliverable but preserved for audit trail.
- 8396 resolved (HIT/MISS) calls in each market's first calendar year of history have no walk-forward odds (no prior year to fit on) and are dropped from backfill_record.csv, not fabricated.
- No proximity/edge trading gate applied (parity/DESIGN.md point 4) - this is a probability product output, not a trade recommendation.
- Continuous 24h Globex session used, no RTH-only filter. RTY history starts 2017-07 (fewer fold-years than ES/NQ/YM/GC/CL, which start 2010-06).
- EXPIRED (40-period cap, neither side touched) is 0.002% of all calls in the full 6-market build (vs ~0.008% in the 2-symbol sweep) - excluded from the odds fit and from backfill_record.csv, reported separately here.
- DESIGN.md point 2 (call_side/confidence_held/rate_held two-sided grading schema, unified 2026-09-01 evening) is NOT yet implemented in these exports - our calls are already single-directional by construction (the trigger picks UP or DOWN, not both sides of a table cell), so grade is derived directly from odds_assigned without a call_side flip step. This should be reconciled with the /roadmap and /pulse packages' schema in a follow-up pass; flagged here rather than silently left inconsistent.