# Learning-loop review — 2026-10-01 1299 closed trades reviewed, 306 currently open. Proposal only — nothing here is applied automatically (CLAUDE.md §4: the AI review proposes, dan disposes). # QSR Journal Review — 2026-10-01 ## 1. Is overall expectancy holding? Pooled overall expectancy is **-0.19%/trade** across 1299 trades — negative, but this pooled number is not the right thing to act on (see account caveat above). Broken out by what matters: - `qsr` pooled: 1012 trades, **-0.42%/trade**, PF 1.17 — comfortably past the 20-trade minimum, but this blends 5 accounts with different configs and fee structures. - Per-account net (the honest view): `paper-main` qsr net%/t **-0.15%**, `Paper02qsr` **-0.22%**, `Paper03QSR` **-0.89%**, `live-1` (real money) **-0.67%**, `t212-isa` (real money) **-1.20%**. QSR is net-negative on every single account that trades it, including both live-money accounts, each with well over the 20-trade minimum (161 and 114 trades respectively). This is not a thin-sample artifact — expectancy is **not holding** for QSR right now, consistently, across paper and live. ## 2. Which bucket is the biggest drag? By strategy, `qsr` (n=1012) is the largest-n negative bucket (-0.42%) and the dominant strategy by trade count, so it's the one actually moving the overall number. Within QSR, the RSI 30-40 band stands out: n=397, win rate 30.7% (Wilson low 26.4%), expectancy **-2.13%**, PF 0.46, total P&L **-$2209** — the single worst large bucket in the whole report. Is this gap real given the noise floor? The statistical-power section gives a **2.48pp** noise floor for bucket-vs-bucket comparisons on 5-day forward returns, and that's for comparing one *band* against the rest. RSI 30-40's expectancy (-2.13%) vs the overall qsr expectancy (-0.42%) is a ~1.7pp gap on a **per-trade close-to-close** P&L basis, not the 5-day-forward-return basis the power section was computed on — these aren't directly the same statistic, so I can't just drop 1.7pp against the 2.48pp floor and call it resolved either way. What I *can* say: the power section's own conclusion was that bucket-splitting by RSI needs ~110+ sessions to resolve a 0.5% edge, and we're nowhere near that. So even though this bucket clears n=20 by a wide margin, **the RSI 30-40 vs. rest gap is not established as a real, resolvable effect** — it's suggestive, not a result. ## 3. Entry problem, exit problem, or regime problem? Only one MAE/MFE split is given (overall, not per-bucket): MAE winners **-2.00%**, MAE losers **-5.18%**, MFE losers **+1.41%**. - MAE losers at -5.18% vs winners at -2.00% is a sizeable gap — losers go materially further underwater before failing than winners ever needed to recover from. That's the classic "stop is tighter than this name's noise, OR entries are simply wrong" signature, not an exit-timing issue. - MFE losers at +1.41% (modest, not deeply positive) means losers are mostly NOT "the trade worked and we gave it back" — if it were an exit/take-profit problem, you'd expect MFE losers to sit well above 0 (per docs/METRICS.md's framing, "materially positive" MFE on losers = exits, not signal). +1.41% is in between — mildly suggestive of some given-back gains, but not the dominant pattern. - Exit-reason breakdown reinforces this: `stop_loss` is 649 trades at a brutal 2.8% win rate and -4.68% expectancy — i.e., almost every stop-loss trade is a clean loss, consistent with stops being hit as designed rather than prematurely. `take_profit` (333 trades, 99.7% win, +4.70%) and `trailing_stop` (176, 96.6%, +6.08%) are essentially risk-free by construction (the defining criterion of the bucket). Read: this looks more like an **entry problem** than an exit problem — MAE losers going ~2.6x deeper than MAE winners before failing suggests either entries that don't have a real edge (so the stop is just correctly catching bad trades) or a regime/signal issue upstream of exits. There's no regime breakdown with enough resolution to separate "entry logic is weak" from "entries are fine but concentrated in a bad regime" — the regime cut here only distinguishes SPY>MA200 (979 trades) from "unknown" (320), with no bear-regime bucket to compare against. So regime can't be ruled in or out from what's given. ## 4. Proposed parameter change This would naturally point at tightening the RSI 30-40 entry band or the stop distance — but both are blocked: - **RSI-band entry change**: explicitly forbidden by rule 4 above — a bucket-threshold change needs a gap larger than the stated noise floor (2.48pp on 5-day forward returns), and QSR's own power-check section says bucket-splitting by RSI needs ~110+ sessions (we have 18). **Proposing NO CHANGE to `maxRsi14`-adjacent QSR entry logic.** Per the revisit table, a 0.50% true edge needs 493 symbol-days (projected 2027-02-07); a 1.00% edge needs 124 (projected 2026-10-15). Wait for one of those dates before revisiting entry-band thresholds. - **Stop-distance change** (`qsr.stopAtrMult`, currently 2): this is a risk-sizing/exit-mechanics lever, not an entry-prediction claim, so it's fair game at current sample size per the rules — but I don't have a paired or clean within-sample comparison to size a specific new value confidently from what's given (no stop-width-vs-outcome breakdown exists in this report), so I won't propose a number without evidence to back it. **What I'm proposing instead, as the one change**: reduce `qsr.maxBuysPerTickerPerWeek` from **3 to 2** (global default; note several accounts already override this higher/lower individually, but the global default governs t212-isa and live-1, both of which are net-negative with real money). Reasoning: this is a **capital-turnover** lever, not a signal-prediction claim, so it's exempt from the noise-floor restriction in rule 4. Every QSR-trading account nets negative, and the open-positions table shows deep over-concentration in a handful of names via repeated small buys (e.g., PDD held across 8 separate open rows, BSX across 6+ rows, several names re-bought at nearly identical entry prices days apart). While the strategy's net edge remains negative on every account, slowing the rate of re-buying a losing/sideways name reduces how much fresh capital compounds into an unproven edge, without touching the entry signal itself. This is deliberately a small, mechanical change — one parameter, no claim about what predicts returns. ## 5. Notable open positions - **QSR dominates open exposure** and several positions are aging a long time without resolving: multiple rows at 50.3d (HON), 29.2d/30.1d (ROK, HON), 23+ days (several PDD/BSX/EW/BHP/AZN rows) — QSR has no calendar time-stop by design (§10), so this is expected behavior, not a bug, but it's worth flagging that a meaningful chunk of capital is parked in multi-week unresolved QSR positions. - **NFLX is deeply underwater** at **-11.34%** unrealized, held across at least 6 open rows (appears repeatedly at different ages) — the single worst open position by a wide margin, well past typical QSR stop distances (~8% max), worth a manual look even though it's not evidence for point 4. - **PDD cluster**: 8 open rows, all at essentially the same -4.64% loss and same ~23-day age — this reads like one entry signal split across many tranches/accounts rather than 8 independent decisions, reinforcing the re-buy-concentration observation behind point 4's proposal. - Several accounts hold **fractional-share rows in pairs** (e.g., BP 4.5+1.5, CSX 4.275+1.425, DASH 0.9739+0.3247) — consistent with the anchor+runner leg split, not a concern on its own. - `rsi2-v1` has a small cluster of very recent (0-2 day) open positions (KO, MA, JNJ, V, LLY, MARA, HOOD, COIN, TMO, UNH) — too new to read anything into yet. ## 6. QSR shadow comparison note The shadow window (2026-08-09 → 2026-08-23) is closed. Qualitatively: the legacy method fired far less often (48 would-buy events across 18 tickers) than live newlyA has since the switch (827 closed + 278 open across 169 tickers) — newlyA is clearly a much higher-frequency signal. Ticker overlap between the two methods is thin (6 of 18 legacy tickers — AEP, DDOG, IBKR, AZN, SU, COHR, TDG, TRP, BTI, ENB, NKE, ITUB, EBAY, VALE overlap only partially), meaning the two selection methods are picking substantially different candidate sets, not just different timing on the same candidates. A fuller backtest comparing hypothetical shadow outcomes to real newlyA outcomes can now be requested — this is purely observational, not evidence for point 4. ## 7. t212-isa vs live-1 — which gives the better signal? Not enough outcome data to say. The entry-timing section only compares *open-position entry prices*, not closed, resolved trades — per the task's own framing, this can only become real evidence once both accounts have enough independently-closed QSR trades to compare. Qualitatively, the price gaps between the two accounts' entries on the same signal are mostly small (0.0–0.9% apart on most of the 31 shared tickers), with two notable outliers: **BSX at 4.0% apart** and **WPM at 2.9% apart** — worth watching if those specific names diverge in outcome, but with no resolved trades yet this is purely descriptive. I'm not drawing a "pre-market entries run worse" conclusion from this.