# Learning-loop review — 2026-09-29 1179 closed trades reviewed, 353 currently open. Proposal only — nothing here is applied automatically (CLAUDE.md §4: the AI review proposes, dan disposes). # Learning review, 2026-09-29 ## 1. Is overall expectancy holding? **Expectancy is +0.06% per trade** (n=1179, win rate 48.7%, Wilson lower bound 45.8%, profit factor 1.66, payoff 1.08, max drawdown $1,675). The pooled total is +$5,108. - **The figure is barely above zero.** Expectancy near 0% alongside PF 1.66 mostly reflects different position sizes across strategies and accounts. - **The pooled row overstates what is known.** It mixes paper accounts, which pay no fees, with live ones. Judged on net P&L, live-1 is **−$137.59** (184 trades) and t212-isa is **+$9.65** (85 trades). QSR's net%/t is negative on every account except paper-main, where it is +0.08%. - **The sample is smaller than it looks.** 1179 rows is a large count, but the QSR power section says its rows collapse to about 81 independent symbol-days. That cannot resolve an edge below roughly 1.5%. "Holding" cannot be confirmed or refuted. ## 2. Biggest drag Several buckets have 20 or more trades. The largest condition-based drag is **RSI 30–40 at entry**: | | n | Win rate | Expectancy | PF | Total P&L | |---|---|---|---|---|---| | RSI 30–40 | 332 | 30.7% | −2.13% | 0.59 | −$1,217 | By comparison, the other buckets are: - **RSI 40–50:** n=429, +1.25%. - **Distance from MA50, −10..−5%:** n=284, −0.63%. - **`stop_loss` exits:** n=553, −4.66%. This is an outcome, not an entry condition, so it does not count as a drag bucket. **Gap versus the rest.** The rest of the journal averages about +0.92% per trade (by my arithmetic), so RSI 30–40 sits about **3.0pp** below it. That is nominally above the 2.48pp noise floor, but I do not treat it as resolved, for three reasons: - The floor assumes independent symbol-days. These 332 rows are heavily clustered (anchor/runner pairs, repeat buys, multiple accounts), so the effective n is far lower. - The bucket is confounded with strategy and account. The RSI 30–40 rows are mostly QSR, and RSI is "unknown" for 201 trades. - This is one bucket picked after scanning dozens of cuts. The power section warns that a bucket clearing today's floor is more likely noise than a discovery. **Verdict: suggestive, not actionable.** ## 3. Entry, exit, or regime problem? The numbers do not point clearly at any one of the three. - **Entry (MAE):** MAE of winners is −1.98% and MAE of losers is −5.18%. Losers' MAE sits at the stop distance (stop_loss exits average −4.66%). Winners are not being entered especially early, so nothing here argues for later entries. - **Exit (MFE):** MFE of losers averages +1.40%, which is positive but modest. Losers rarely came near the ~5% target, so this is not a large give-back pattern. - **Payoff structure:** take_profit averages +4.67% against stop_loss at −4.66%. With about 50% wins, that structure gives zero expectancy by construction. QSR's payoff ratio is 0.96, below 1. The ATR-scaled stop (up to 8%) is at least as wide as the ~5% target. The shortfall comes from this payoff geometry, not from a demonstrated entry or exit defect. - **Regime:** it cannot be diagnosed. Every trade with a known regime is SPY>MA200, and 283 are unknown. ## 4. Proposed change **NO CHANGE.** - **RSI band:** the only candidate is an entry-signal (RSI band) change. Its supporting gap is marginal and confounded, as above. - **Revisit date:** for a 1.00% true edge, the power table projects **2026-10-13** (124 symbol-days needed, 81 held). For a 0.5% edge it is 2027-02-05. - **Paired A/B instead:** keep running the anchor/runner comparison. The current result is anchor −0.13% against runner −1.25%, difference −1.12% (95% CI −2.56% to +0.33%), runner ahead in 38 of 107 pairs. That is not significant. Wait for the CI to exclude zero before touching `trailActivationPct` or `trailPct`. - **Change independent of prediction:** if a change is wanted before then, it should be one that does not depend on out-predicting the market. The stop-versus-target asymmetry (`maxStopPct` 8 against `hardSellPct` 5) is one candidate. I am not proposing it now, because it is not backed by a paired comparison on the same fills. ## 5. Open positions (situational only) - **Aged QSR losers with no time-stop:** - BTI has rows at 48–50 days, all at −3.90%. - PDD has eight rows at 21 days, −3.42%. - BKR (−4.26%), NUE (−4.40%) and OXY (−4.26%) sit near their stops. - **Aged QSR winners:** - HON (+0.56%) has been held 26–48 days. - AMGN is +11.70% at 18 days, above its listed 398.03 target. Confirm that its take-profit leg is still live. - **Anomalous exit plans:** RCL (SL 253.73 / TP 250.66) and SHOP (SL 144.71 / TP 135.42) show a take-profit below the stop. Neither has an unrealized P&L figure. That looks like a data or levels bug worth inspecting. - **Missing prices:** BARC.L (6 shares, 8.5 days) and all crypto rows show no unrealized P&L, so `pnpm prices` is not covering them. - **Volume:** roughly 330 QSR rows are open against 903 closed. Many are anchor/runner duplicates across accounts. - **Brand new:** the rsi2-v1 positions are 0 days old (MARA 25 shares, CRM, NOW, KO), so there is nothing to say yet. ## 6. QSR shadow comparison The shadow window closed on 2026-08-23, so a fuller outcome backtest of the shadow log against real newlyA entries can now be requested. - **Frequency:** the legacy method logged 48 would-buy events on 18 tickers. newlyA produced 718 closed plus 328 open rows across about 160 tickers. Rows are inflated by anchor/runner legs and multiple accounts, but newlyA still fires far more often and across a much wider set of tickers. - **Overlap:** 14 of the legacy 18 tickers also appear in newlyA. The four that do not are MO, MAR, MRVL and SNDK. So legacy looks roughly like a narrow subset of newlyA. - **Worth noting, with a caveat:** several overlapping names are among QSR's worst per-symbol buckets, all with 0% win rate: TRP (n=14), ENB (11), BTI (8) and NKE (18). AEP (11 trades) is also poor at 36% wins. These are small per-symbol samples and not evidence. ## 7. t212-isa vs live-1 - **Entry basis:** 43 rows are held by both accounts, about 22 distinct tickers because of anchor/runner duplication. Most sit within 0.0–0.7% of each other. - **Outliers:** BSX (4.0%, t212 lower at 44.20 against 45.985), SLB (2.4%, t212 lower) and CVS (1.0%, t212 lower). t212's basis is lower in those three, which is consistent with a stale pre-market anchor. The direction is mixed elsewhere (BP and UBER run higher on live-1), so there is no clear systematic bias. - **Targets:** each account's target sits about 5% above its own entry, so the basis difference only shifts absolute levels. - **Outcomes:** there are no independently resolved outcomes to compare. QSR net%/t is −0.40% on t212-isa (n=82) and −0.43% on live-1 (n=146), which is indistinguishable. It is too early to say which account has the better signal.