# Learning-loop review — 2026-09-14 633 closed trades reviewed, 293 currently open. Proposal only — nothing here is applied automatically (CLAUDE.md §4: the AI review proposes, dan disposes). # 1. Is overall expectancy holding? Pooled expectancy is **+0.73% per trade** over **633 closed trades**, profit factor 1.64. That's a reasonably large pooled n, and directionally healthy. Two caveats before treating it as settled: - The pool is dominated by `qsr` (514/633 = 81% of trades), so "overall" is really "mostly QSR." - The five accounts run genuinely different risk configs and are not repeat samples of one experiment (per the per-account section) — the pooled number is a convenience aggregate, not a single clean measurement. So: yes, expectancy is holding and the pooled sample is large enough to say that much, but it should be read as "QSR is holding," not as evidence about the smaller strategies. # 2. Which bucket is the biggest drag? Filtering to buckets with ≥20 trades and negative-relative-to-pool expectancy, the standout in the standard attribution cuts is **RSI band 30-40**: n=154, expectancy **-0.59%**, PF 0.78, payoff 0.86, total P&L **-$349**. That's the largest-n, clearly-negative bucket among the standard cuts (orb-v1 at n=68 is only flat, ~0.00% expectancy, a much smaller effect). Gap check: -0.59% vs pooled +0.73% is a **1.32pp gap** in expectancy. The stated noise floor for bucket-vs-rest comparisons is **2.48pp**. 1.32pp < 2.48pp — **this gap does not clear the noise floor**. RSI 30-40 clears the 20-trade minimum but is still statistically unresolvable from noise. It cannot be treated as "the answer" even though it's the worst-looking qualifying bucket. # 3. Entry, exit, or regime problem? We don't have MAE/MFE broken out per-bucket (only the book-wide aggregate), so this can only be a coarse read using the whole-book numbers: - MAE winners avg **-1.87%**, MAE losers avg **-5.30%** — losers go meaningfully further underwater than winners ever do before recovering. That's not "winners survived a scare" (small MAE-winners gap); it looks like losers are just... losing, consistent with genuine bad entries or regime rather than a too-tight stop. - MFE losers avg **+1.43%** — modest, not the "was up 3%, gave it all back" pattern the doc flags as a take-profit problem. If it were an exit problem we'd expect a much larger positive MFE-losers number. - `stop_loss` exits (n=233) average **-5.10%**, closely tracking the MAE-losers figure (-5.30%) — stops are firing roughly where the trade genuinely turned, not prematurely relative to noise. Net read: this looks more like an **entry/selection** signature than an exit-timing problem — but given point 2's conclusion, we can't even confidently pin this on the RSI 30-40 band specifically; it's a book-wide observation, not proof about that bucket. # 4. One concrete parameter change Since the only bucket clearing 20 trades with a directional drag (RSI 30-40) has a gap **smaller than the noise floor**, per the anti-self-deception rules **I am not proposing an entry-signal or threshold change**. Projected revisit: at the observed accrual rate, a true 1.00% edge needs 124 symbol-days (have 81, ~10 sessions to go) → **≈2026-09-28**; a more realistic 0.50% edge needs 493 → **≈2027-01-21**. Revisit RSI-band splitting no earlier than the 2026-09-28 checkpoint, and treat anything before that as noise regardless of how it looks. Instead, proposing a **risk-control parameter that doesn't require out-predicting the market**, motivated by a plain bookkeeping fact that isn't subject to the same noise floor: `stop_loss` exits are 233/633 trades (37%) with expectancy **-5.10%** and PF **0.12**, the single largest loss contributor in the book (-$5,699 total). QSR already has a ladder mechanism meant to tighten risk after repeated losses (`riskLadderSinBinAtLosses`). **Proposed change:** `qsr.riskLadderSinBinAtLosses`: **3 → 2** Reasoning: this makes the existing sin-bin (tighter stop regime) trigger one loss sooner within the same 14-day lookback window, directly reducing exposure to the exact loss-cluster pattern the data already shows (stop-outs are the dominant drag, and they cluster — several symbols show 0/n win rates over 6-18 trades, e.g. HWM 0/18, HON 0/8, NKE 0/12). This is a risk-sizing/exit-mechanics tweak, not a signal search, so it's fair game to test now regardless of the noise floor. Change nothing else; measure post-change stop_loss-bucket expectancy and total drag for several weeks before touching anything further. # 5. Notable open positions - QSR has `maxHoldDays: null` — no calendar exit — and it shows: many open positions have been sitting 30-45 days unresolved (ETR 45.3d at -3.98%, CI 39d at +4.98%, AEP 35.3d at -0.87%, BTI ~33-35d, HON ~33d at -3.16%, TRP 32-35d at -0.46%, NKE 19d at -3.92% across four separate tranches). - A few sizeable unrealized moves worth watching: COHR -13.16% after only ~4 days (fast, sharp drawdown), AVGO -4.70% at 26 days, versus ZS +15.33% (two tranches) as a strong runner. - This is situational color only — none of it is closed-trade evidence and it is explicitly excluded from point 4's justification. # 6. QSR shadow comparison note Purely observational: the legacy isTriggered+isBuy/buyZonePct shadow method fired far less often (48 would-buy events across 18 tickers in a 2-week window) than the live newlyA method (333 closed + 282 open across 100 tickers) — newlyA is casting a much wider, higher-frequency net. Ticker overlap is small (14 tickers common to both lists), meaning the two methods are largely selecting **different names**, not just timing the same names differently. The shadow window (2026-08-09 → 2026-08-23) has now closed, so a fuller backtest comparing hypothetical shadow-log outcomes to real newlyA outcomes can be requested — that has not been done here and none of this is evidence for point 4. # 7. t212-isa vs live-1 — which gives the better signal? Not enough data to say. t212-isa has only 4 closed trades total and only started real trading 2026-09-11 — nowhere near the ~20-trade minimum, so there is no outcome comparison possible yet. Qualitatively, on the 14 tickers currently held by both, entry-price gaps range from ~0.2% (ABT, CARR) up to **4.0% (BSX)** and **3.9% (DASH)** apart, consistent with the documented pre-market-vs-post-open timing/basis difference — worth watching those two names once they close, but this is entry-basis observation only, not a signal-quality verdict. No conclusion should be drawn until both accounts have independently-resolved, closed QSR trades in adequate numbers.