# Learning-loop review — 2026-09-23 988 closed trades reviewed, 374 currently open. Proposal only — nothing here is applied automatically (CLAUDE.md §4: the AI review proposes, dan disposes). # Daily learning review, 2026-09-23 ## 1. Is overall expectancy holding? Headline expectancy is **+0.61% per trade** over 988 closed trades. Profit factor is 1.73, win rate 54.1% (Wilson lower bound 51.0%), and total P&L is $5,235. The sample is large in rows but much smaller in independent evidence, and the headline overstates the edge for these reasons: - **Rows overcount decisions.** QSR writes anchor and runner rows for each buy, and five accounts replicate the same signals. The power section counts only **81 independent symbol-days** in scored QSR. Per-trade SD is roughly 5%, so 0.61% is only about 1–2 standard errors from zero. - **Almost none of the P&L is real-money.** Per-account net is paper-main +$4,851, Paper02qsr +$85 and Paper03QSR +$229, against live-1 −$63 and t212-isa +$133. Live is +$70 of the $5,235, on 205 trades. live-1 is a small, price-biased subsample, so this says only that the live result is flat so far. - **Some journal rows look corrupt.** Several buckets show impossible negative average holds: orb-retest-v1 −2.0d, manual exits −3.9d, MARA −6.5d and PLTR −2.1d. Some buckets also have signs that disagree with their own dollars: - CARR: 28.6% win rate, −2.46% expectancy, yet +$188 P&L. - UNH: −1.78% expectancy, yet +$738. - INTC: PF 0.24, yet +$175. The 19 `manual` exits alone contribute +$1,575, about 30% of total P&L. They have a payoff ratio of 13.7 and negative hold times, which suggests exit timestamps were stamped before entry. **Treat the headline $ as suspect until those rows are audited.** - **QSR's margin over breakeven is thin.** Its payoff is 0.94, so breakeven win rate is 1/(1+0.94) ≈ **51.5%**. QSR's win rate is 56.3% with a Wilson lower bound of 52.8%. That is just above breakeven, and the whole edge rests on it. ## 2. Biggest drag bucket Buckets with 20 or more trades: - **By strategy:** qsr (762, +0.52%), crypto-scalp-v1 (54, +2.71%), orb-v1 (68, −0.00%, PF 0.92, −$67) and vwap-mr-v1 (48, +0.19%). orb-v1 is the only non-positive one, and its drag is about $67. It is flat, not negative, and about 0.6pp below the pool. That is well inside any sensible noise floor, and it has already been tightened three times and halved in size. - **By RSI at entry:** the largest real drag is **RSI 30–40: n=252, −1.60%, PF 0.64, −$866**, against +1.37% for the other 736 rows. That is a gap of ≈ **2.97pp**. The pattern is non-monotonic: 20–30 is −0.77%, 30–40 is −1.60%, 40–50 is +1.94% and 50–70 is +0.11%. - **Excluded from consideration:** exit reason `stop_loss` (n=420, −$6,859) is an outcome, not a cause, and the per-symbol streaks (HWM 0/18, NKE 0/18, COHR 4/17, CARR 6/21) are symbol cuts. **Does the RSI 30–40 gap clear the noise floor?** Nominally 2.97pp is above the 2.48pp floor. I don't treat it as resolved, for four reasons: - The floor assumes independent symbol-days. These 252 rows collapse to far fewer independent decisions because of anchor+runner pairs, five accounts, and repeat buys of the same names. The real floor for this bucket is higher. - A gap that only just clears the floor is, per the power section, more likely noise than a discovery. - The non-monotonic pattern (30–40 terrible, 40–50 excellent) points to time or ticker clustering rather than a clean dose-response. - The bucket is confounded with which stocks and weeks were bought, since the same names lose repeatedly. I call this **unresolvable at the current sample**, not "the answer". ## 3. Entry, exit or regime problem? - **MFE losers avg +1.42%.** Losers were, on average, only 1.4% in the money before failing, far from the 5% target. That is not the "worked then gave it back" signature, so it is not a primary exit problem. A lower take-profit or an earlier trail would rescue few of them. - **MAE winners −2.00% versus MAE losers −5.16%.** Winners dip modestly, while losers run to the stop (average stop-out −4.52%). That is consistent with entries that never worked, or with names that keep falling. - **Regime can't be assessed.** Every classified row is SPY>MA200 (770 rows, +0.27%), and there is no bear-regime bucket. The 218 "unknown" rows (+1.78%) are mostly crypto and T212 rows, so this is not a regime finding. Best read: an **entry-shaped** drag concentrated in a few repeat-loser names. It is not statistically resolvable. ## 4. Proposed change **NO CHANGE.** Reasons: - The only candidate drag is an entry-threshold bucket (RSI 30–40). Its gap is marginal against the noise floor and heavily inflated by clustering. - The qsr live params listed here contain **no RSI parameter**. The RSI gate lives in yahoo-screener, and swing-dip's `maxRsi14` has no journal rows. There is no in-scope knob to move. - The projected revisit for a 1.0% edge is **2026-10-07** (124 symbol-days needed, 81 held). For realistic 0.5% edges it is **2027-01-30**. **Instead of a parameter change:** - **Audit the journal.** Check the negative-hold, manual-exit and sign-inconsistent rows first, because every downstream number depends on them. - **Keep the anchor-vs-runner paired A/B running.** Today it shows anchor −0.12% against runner −1.20%, a difference of −1.08pp (CI −2.56 to +0.40), with the runner ahead in 37 of 104 pairs. That is not significant, but the noise floor is only 1.48pp, so it is the cheapest question this system can actually answer. Revisit once the CI excludes zero. I am **not** proposing a per-ticker re-buy cap. Repeat buying cuts both ways: META goes 18/18 wins, UMC 20/20 and VST 25/27, alongside the HWM and NKE streaks. The net effect can't be resolved with this data. ## 5. Open positions (context only) - **Aging and underwater.** BTI has several rows at 43–44 days and −2.15%, and BTI closed 0/6 with a 29-day average hold. AEP is at 44 days and −3.89%, and AEP closed 4/10 at −0.49%. Both are slow-grind names with no calendar time-stop, the same pattern behind ETR (35.7d), TRP (32d) and ENB (17d) closing as stops. The deepest underwater rows are INTU −6.82%, BX −5.11%, SYK −4.94%, BAM −4.58% and ABNB −4.06%. - **Winners above their take-profit but still open.** Unrealized gains exceed the take-profit level, which is worth checking: - ISRG: +13.65% (TP ≈ 367). - KEYS: +8.42% (TP 336). - AMGN: +7.16%. - NVDA: +6.50%. If these are T212 rows with poll-side take-profits, this is expected. If any are Alpaca rows with a resting server-side leg, a leg has expired or is missing. - **Malformed row.** The SHOP row (qty 0.3264, 2.3d) shows TP 135.42 below SL 144.91, which is inverted. - **Missing live prices.** Several rows have no unrealized P&L: CSCO, GE, GEV, MELI, NKE, RCL, SLB, SHOP, BARC.L and RIO.L, plus all the crypto rows. Those can't be judged from this list. - **Duplication.** PDD (≈10 rows), UBER (≈8) and BSX (≈12) are mostly the same signals across accounts and legs, so distinct exposure is well below the row count (374 rows). ## 6. QSR shadow comparison - **Window closed 2026-08-23. A fuller outcome backtest of hypothetical legacy fills versus real newlyA outcomes can now be requested.** - **Frequency.** The legacy method produced 48 would-buy events on 18 tickers, against 577 closed plus 355 open real newlyA entries on 153 tickers. Legacy is much more selective, with a very different ticker footprint. - **Overlap.** 14 of the 18 legacy tickers also appear in the newlyA set. That is 78% of the legacy list but only about 9% of the newlyA universe. Only MO, MAR, MRVL and SNDK are legacy-only. - **Qualitative flag.** Many overlapping tickers are among the worst real performers in the journal: AEP, BTI (0/6), ENB (0/8), NKE (0/18), ITUB, TRP (0/6) and COHR (4/17 wins). That suggests the legacy rule leans toward the same repeat-losers. It is ticker-level and unscored, and those outcomes come from newlyA trades, so it is not independent evidence. ## 7. t212-isa vs live-1 signal timing There isn't enough to say which gives the better signal. There are **no comparable outcomes**: t212-isa only started real trading 2026-09-11, and its 65% win rate on 55 trades versus live-1's 51% on 150 comes from different windows, caps and configs. On basis, the 32 overlapping tickers are mostly tight, with a typical gap of ~0.0–0.7%. Direction is mixed: t212 is lower on APO, BP, BSX and CSX, and higher on NVS, TRP, ENB, ORLY and CMCSA. There is no systematic bias. Each account's target is set about 5% off its own entry, so a gap in entry just shifts the target with it. The two outliers worth checking as possible stale prior-close anchoring are **BSX (4.0%)** and **APO (1.7%)**, both with t212 entering lower. Nothing more can be concluded until both accounts have enough closed QSR trades.