# Learning-loop review — 2026-09-28 1126 closed trades reviewed, 365 currently open. Proposal only — nothing here is applied automatically (CLAUDE.md §4: the AI review proposes, dan disposes). # QSR / System-Wide Journal Review ## 1. Is overall expectancy holding? Pooled expectancy is **+0.18%/trade, PF 1.70, n=1126** — nominally positive. But this number is not trustworthy at face value for three reasons: - **It blends paper and live accounts.** Paper accounts pay no fees and have optimistic (simulated) fills. The only two accounts with real money and real fills are `live-1` (net **‑$143.46** over 177 closed trades — a real, >20-trade negative result) and `t212-isa` (net **+$31.47** over 73 trades — barely positive). The headline +0.18% is being carried by paper-main's $5,126.56 net, which overstates what the same strategies do with real fills/fees. - **qsr dominates the pool (861/1126 = 76%)**, and qsr rows are heavily non-independent — anchor+runner splits, tranches, and repeat weekly re-buys of the same ticker mean the effective independent sample is far smaller than the row count (the doc's own power-check found 334 scored qsr rows collapse to just 81 independent symbol-days). - swing-dip-v1 has **zero** closed trades in this snapshot, so it isn't contributing anything to this figure despite being a live strategy. **Verdict:** raw n is large, but the honest independent sample is much smaller, and on the two accounts that use real money the result is flat-to-negative. Not solid confirmed evidence of edge yet. ## 2. Which bucket is the biggest drag? **RSI 30–40 at entry: n=311, expectancy ‑2.09%, total P&L ‑$1,218** — clears the 20-trade bar and is the largest-magnitude negative bucket in any of the standard cuts (vs. rsi 40‑50 at +1.44%, a 3.53pp gap). **Does the gap exceed the noise floor? Not reliably — this bucket is very likely unresolvable, for the same reason the doc's own power-check exists.** The 2.48pp floor quoted above was computed on a properly declustered qsr symbol-day sample (81 independent days). This RSI-band cut has the identical clustering problem: a large share of the 311 rows are repeat buys of a handful of names — `CARR` (n=21), `HWM` (n=18), `COHR` (n=17), `ARM` (n=12), `BKNG` (n=10), `NXPI` (n=9), `ITUB` (n=9) — all chronically bad performers regardless of which RSI band they happen to fall in. The nominal 3.53pp gap numerically clears 2.48pp, but the true independent-event count behind it is nowhere near 311, so the effective noise floor for this specific cut is higher than 2.48pp, and I can't certify this is real. Treat it as a hypothesis, not a result — same caveat the doc gives for "great bucket, 5 trades," just running in the other direction (bad bucket, inflated n). ## 3. Entry, exit, or regime problem? **Reads as an entry/symbol-selection problem, not an exit problem.** Aggregate MFE on losers is only **+1.43%** — modest, not the "was up 3%, gave it back" signature that would indict exits. MAE on losers averages **‑5.24%**, i.e. losers mostly just kept falling toward the stop without much of a favorable excursion first. Combined with the per-symbol table showing several names losing persistently and repeatedly (0% win rate on `HWM` n=18, `HON` n=8, `MO` n=8, `BTI` n=8, `ETR` n=8, `CMCSA` n=10, `NKE` n=18, `TRP` n=10), this looks like specific bad names getting re-bought over and over, not a stop-placement or take-profit-timing issue. Can't assess a regime effect — 862 of 1126 trades occurred in the one recorded regime (SPY>MA200); there's no bear-regime sample to compare against. ## 4. Proposed parameter change **RSI-threshold or bucket-based entry change: declining, per rule.** The apparent RSI 30–40 drag is (a) confounded with symbol concentration as shown above, and (b) not even actionable here — QSR's RSI logic lives in the sibling `yahoo-screener` codebase, not as an adjustable parameter in this repo's live params. Per the instructions, since this is an entry-signal/bucket-threshold read with a gap I can't certify against the noise floor, I'm proposing **NO CHANGE** on that front. Next legitimate check point per the power table: **1.00% true edge → 2026-10-12** (10 more sessions at the current ~4.5 symbol-days/session rate); anything smaller is a 2027+ question. **Instead, the one change I'm proposing is a risk-sizing/exposure control, not a signal bet:** > **`QSR_V1.riskLadderSinBinAtLosses`: 3 → 2** This doesn't claim to out-predict the market — it's a capital-exposure lever, fair game at any sample size. The evidence for it is a plain count, not a correlation: several symbols (`HWM`, `HON`, `MO`, `BTI`, `ETR`, `COHR`, `NXPI`) have racked up 8–18 closed trades each with catastrophic win rates (0%–24%) and large negative expectancy (‑6% to ‑8%), meaning the current 3-loss threshold before the sin bin engages is letting real capital get re-deployed into names that have already shown a clear pattern before the ladder intervenes. Tightening the trigger to 2 losses shortens that exposure window without touching anything that claims to predict returns. This is a small, single, reversible knob — exactly the kind of change the doc allows regardless of statistical power. ## 5. Notable open positions (situational only) - **`BTI` and `HON` are aging 47–49 days** — far past qsr's own ~9.6d average hold. Both are already documented among the worst closed-trade performers for this strategy (`BTI`: 0% historical win rate, `HON`: 0% win rate, ‑7.96% expectancy), so these open positions sitting this long, unresolved, with no calendar time-stop (by design), are worth a manual look. - **`PDD` has 8 open qsr rows, all uniformly ‑2.19%** — real concentration in one name right now. - **crypto-trend-v1 is carrying 9 simultaneous open positions** (BTC, ETH, ADA, AVAX, DOGE, UNI, LTC, XRP, BCH) with no unrealized P&L visible (dashes in the data) — looks like a live-price data gap on those rows rather than a trading issue, worth checking `pnpm prices` ran recently. None of this feeds point 4 — these are open, unconfirmed outcomes. ## 6. QSR shadow comparison note The shadow window is **closed** (2026‑08‑09 → 2026‑08‑23); a fuller outcome backtest comparing hypothetical legacy fills to real newlyA outcomes can now be requested. Qualitatively: the two methods look at almost entirely different names. Legacy would-buy fired on only 18 distinct tickers over the whole window; live newlyA has since traded 159 distinct tickers and produced roughly 14x the volume (676 closed + 348 open vs. legacy's 48 would-buy events). Only 6 of the legacy's 18 tickers (`AEP`, `DDOG`, `IBKR`, `AZN`, `SU`, `COHR`, `TDG`, `TRP`, `BTI`, `ENB`, `NKE`, `ITUB`, `EBAY`, `VALE` — actually listed as 6 overlap out of 18) show up under both methods. This is a real difference in selection breadth/frequency worth knowing about, but it's not an outcome comparison — no shadow trades ever executed, so it can't feed point 4. ## 7. t212-isa vs live-1 — which gives the better signal? **Not enough data to say yet — this is entry-price-basis only, no resolved outcomes.** Across 43 shared open tickers, most entry-basis gaps are tiny (0.0%–0.7%), with a few outliers (`BSX` 4.0%, `VALE` 3.5%, `MDB` 2.2%) and no consistent direction — t212-isa isn't systematically better or worse priced than live-1. Since t212-isa only started real trading 2026‑09‑11, there's no closed-trade outcome sample yet to say whether one account's timing basis actually produces better realized results. Revisit once both accounts have accumulated enough independently-closed qsr trades to compare net outcomes, not just entry prices.