# Learning-loop review — 2026-09-15 688 closed trades reviewed, 277 currently open. Proposal only — nothing here is applied automatically (CLAUDE.md §4: the AI review proposes, dan disposes). ## 1. Is overall expectancy holding? Pooled across all 688 closed trades: **expectancy +0.56%/trade, profit factor 1.57, win rate 56.0% (Wilson lower bound 52.2%)**. The headline number is positive and the Wilson bound stays comfortably above 50%, so at face value this clears the "is it holding" bar. But two caveats matter before trusting it: - The pooled n=688 mixes five accounts running **different risk configs** (see per-account section) — it is not one clean experiment. - 559 of the 688 trades are `qsr`, and QSR's own power-check shows 334 scored rows collapse to only **81 independent symbol-days**. The "n" in every bucket below is inflated relative to true independent evidence. So: expectancy is holding at the pooled level, but treat the effective sample size as much smaller than 688 when judging any subdivision of it. ## 2. Which bucket is the biggest drag? Restricting to buckets with ≥20 trades, the standout negative is: - **RSI 30–40 band: n=178, expectancy −1.07%, PF 0.70**, versus RSI 40–50 (n=249, expectancy +2.01%). Gap ≈ **3.08pp**. - (`orb-v1` strategy, n=68, expectancy ≈0.00%, PF 0.92 is a secondary, milder drag — a flat strategy, not a strongly negative one.) - `stop_loss` exit-reason (n=271, expectancy −5.07%) is numerically the worst, but that bucket is tautological — every stop-out is a loss by construction — so it's not a diagnosis of "which condition to avoid," it's just restating that stops lose money when hit. Taking RSI 30–40 as the candidate: the 3.08pp gap nominally exceeds the stated 2.48pp noise floor — **but that floor was computed for one bucket-vs-rest split of the whole ~81-independent-symbol-day QSR sample.** Splitting further into five RSI bins divides those ~81 independent days into much smaller sub-clusters per bin, which *raises* the true floor for a bin-vs-bin comparison above 2.48pp. This is exactly the "stop band-splitting entries" case the doc warns needs ~110+ sessions to resolve. **So: this bucket clears the 20-trade bar but is still unresolvable — it should be read as suggestive noise, not a confirmed drag.** ## 3. Entry, exit, or regime problem? The report doesn't break MAE/MFE out per RSI band, only in aggregate, so a clean per-bucket diagnosis isn't possible here. Reading the aggregate numbers as context: **MAE winners avg −1.88%**, **MAE losers avg −5.27%**, **MFE losers avg +1.47%**. Losers' MAE (−5.27%) sits close to the average loss size, i.e. stops are triggering on moves that actually went against the trade rather than getting shaken out early — that argues against a "stops too tight" story. MFE losers (+1.47%) is positive but modest, not the "was up 3%, gave it back" pattern the doc calls a clear exit problem. Net read: nothing here screams a bad exit; if anything it leans mildly toward an entry-quality question, but the evidence is aggregate-level only and too thin to attribute specifically to the RSI 30–40 bucket. ## 4. Proposed parameter change The natural instinct — tighten `maxRsi14` (currently 40) on swing-dip-v1, or otherwise exclude the RSI 30–40 zone — is exactly the entry-signal/bucket-threshold change the anti-self-deception rules forbid here: the supporting gap (3.08pp) is not safely above the *effective* noise floor for a 5-way RSI split of an ~81-symbol-day sample. **Proposing NO CHANGE to any RSI threshold.** Per the revisit table, a true edge in this range (~1%) needs ~124 independent symbol-days; we have 81; at ~4.5/session that's ~10 more sessions — **projected revisit ≈ 2026-09-29**. Wait for that, or re-run the RSI question as a paired same-fill comparison rather than a band split. Instead, propose a change that doesn't depend on out-predicting the market: **`qsr.maxHoldDays`: currently `null` → propose `30`.** Reasoning: this is a capital-turnover/exit-mechanics change, not a signal bet. The closed-trade evidence shows QSR's typical resolution windows are all well under 30 days (take_profit avg hold 5.5d, trailing_stop 11.8d, stop_loss 10.1d), so a 30-day cap wouldn't touch the normal trade lifecycle. But the open-positions table (point 5) shows a cluster of QSR positions sitting 29–40 days with no calendar exit at all, tying up capital indefinitely regardless of outcome. A 30-day time-stop adds a backstop for free, measurable cleanly (trades closed after the change vs before, per rule 4), and is a single, small, reversible parameter change. ## 5. Notable open positions QSR currently has ~273 open positions, and a visible tail is aging well past its typical resolution window with `maxHoldDays: null` (no calendar exit): **CI (40.0d, +4.56%), AEP (36.3d, −2.18%, four separate tranches), BTI (34–36d, −0.98%), EBAY (35.3d, +4.40%), CVS (29.3d, −1.39%)**. None of these are catastrophic individually, but they represent capital that isn't being recycled and has no defined exit horizon — directly the situation the point-4 proposal targets. This is situational color only, not evidence for the RSI decision above. ## 6. QSR shadow comparison note The legacy isTriggered+isBuy/buyZonePct shadow method fired far less often (48 would-buy events, 18 tickers) than the live newlyA method (377 closed + 273 open, 108 tickers) over the same kind of window — newlyA is casting a much wider net. Ticker overlap is limited to 14 names, a small fraction of newlyA's universe. The shadow window (2026-08-09 → 2026-08-23) is now closed, so a fuller backtest comparing hypothetical shadow outcomes to real newlyA outcomes could be requested — but the shadow trades never executed, so under the journal's own rules they can never become a scored bucket; this remains observational only. ## 7. t212-isa vs live-1 — which gives the better signal? Not enough data to say. t212-isa has only 4 closed trades total (far below the 20-trade minimum) and only started real trading 2026-09-11, so there is no outcome sample to compare. The entry-basis differences across the 18 currently-shared open tickers (e.g. BSX 4.0% apart, DASH 3.9%, NOK 3.4%, versus near-zero for PLD, MS) are worth flagging qualitatively — t212-isa's pre-market-anchored fills can diverge meaningfully from live-1's real-market-open fills on the same underlying signal — but this is entry-basis color only, not outcome evidence, and cannot support any parameter decision until both accounts have ≥20 independently closed QSR trades to compare.