# Learning-loop review — 2026-09-07 462 closed trades reviewed, 175 currently open. Proposal only — nothing here is applied automatically (CLAUDE.md §4: the AI review proposes, dan disposes). # Journal Review ## 1. Is overall expectancy holding? Overall expectancy is **+0.96% per trade** across 462 closed trades, profit factor 1.67. The pooled n is comfortably above the 20-trade minimum, so the headline number is real (not noise) at the whole-book level. However, this pools four strategies with very different risk configs and three accounts with different fill assumptions (see account section) — the pooled number is a fair summary of "the system as run," not proof that any single strategy or bucket is individually sound. ## 2. Which bucket is the biggest drag? Buckets with ≥20 trades and negative or clearly worst expectancy: - **orb-v1** (68 trades): expectancy **-0.00%**, PF 0.92 — flat/slightly negative, essentially break-even. - **rsi 30-40** (103 trades): expectancy **-0.41%**, PF 0.67 — worst RSI band with adequate n. - Several individual symbols (HWM n=18 just under threshold, NXPI n=8, CDNS n=9) are worse but don't clear 20 trades individually. The clearest ≥20-trade drag is **rsi 30-40** at -0.41% expectancy vs. the all-trades average of +0.96% and vs. rsi 40-50's +1.65% (167 trades). That's a gap of **~2.06pp** between the 30-40 and 40-50 bands. **Check against noise floor:** the stated noise floor for bucket-vs-bucket comparison is **2.48pp**. The observed gap (2.06pp) is *smaller* than that floor. So even though both buckets individually clear the 20-trade minimum, **the difference between them is not statistically resolvable** — it could easily be noise. orb-v1's -0.00% vs. the pooled +0.96% is a ~0.96pp gap, also well under the floor. **Conclusion: no bucket clears both the trade-count bar and the noise floor simultaneously.** The RSI-band split is the closest candidate but is explicitly unresolvable with current data. ## 3. Entry problem, exit problem, or regime problem? Since no bucket's gap is statistically real, this can't be answered with confidence from signal buckets. But the exit-reason cut (which doesn't require out-predicting the market, just describes execution) is informative and *does* clear the bar: - stop_loss: 148 trades, win rate 1.4%, expectancy **-5.20%** - take_profit: 169 trades, 100% win, expectancy **+4.31%** - trailing_stop: 90 trades, 100% win, expectancy **+5.17%** This is a *mechanical* pattern, not a signal one: stops essentially never turn into winners (by construction) and there's no MFE-on-losers red flag reported (MFE losers avg **+1.14%**, fairly modest, not screaming "give-backs"). MAE winners avg -1.82% vs MAE losers -5.13% — losers give a much bigger adverse move before failing, consistent with stops being hit at their natural distance rather than clipped early. This reads as **closer to an entry/stop-sizing pattern than an exit-timing (MFE) problem**: losers are not winning trades that got given back (MFE losers +1.14% is small), they're trades that moved against us and kept going to the stop. That's consistent with normal stop behavior, not a broken exit rule — so overall this looks more like noise in entries than a systemic exit leak. ## 4. One concrete, small parameter change to propose The RSI-band and orb-v1 differences are both **below the 2.48pp noise floor**, so per the rules I will **NOT** propose an entry-signal/threshold change (no RSI band tightening, no relvol cutoff, no time-of-day gate) based on them. - Projected revisit for a 1.00% true edge: **2026-09-21** (10 more sessions needed); for a more realistic 0.50% edge: **2027-01-14**. Instead, staying within "risk sizing / caps / mechanics" (fair game at any sample size): **orb-v1 is flat-to-negative (expectancy -0.00%, PF 0.92, n=68) and is explicitly a backtest-only strategy not live-wired**, yet it already carries a live risk-sizing knob (`sizeMultiplier: 0.5`). Given 68 trades showing no edge and no exit-mechanics red flag, the lowest-risk, single-parameter action is a capital-turnover change, not a signal change: **Proposed change:** reduce `orb-v1.sizeMultiplier` from **0.5 → 0.25**. Reasoning: this doesn't touch any entry/exit logic, doesn't rely on a bucket comparison that fails the noise floor, and simply reduces capital allocated to a strategy whose 68-trade sample shows no measured edge (PF 0.92, expectancy ~0), while leaving it live enough to keep collecting data toward a real read. This is a sizing change, not a signal change, so it's compatible with the anti-self-deception rules. ## 5. Notable open positions - A large cluster of **QSR** positions across `live-1` (and other accounts) are aging 25–48+ days with **no calendar time-stop** (HDB, ETR, CI, AEP, TRP, BTI, EBAY, ENB) — e.g. HDB at -3.88% for 47.3 days, ETR at -0.62% for 38.3 days. QSR's live params show `maxHoldDays: null`, consistent with what's observed. This is a large number of open, unresolved, uncapped-duration positions concentrated in one strategy — worth watching for capital lockup, but this is situational color only, not evidence for point 4. - The crypto-trend-v1 BTC/USD and ETH/USD positions have also been open 48.2 days with only 2 closed trades total historically — far too few to draw any conclusion, just noted as present. ## 6. QSR shadow comparison note The shadow-log window (2026-08-09 → 2026-08-23) is **closed**. Qualitatively: the legacy isTriggered+isBuy/buyZonePct method fired far less often (48 would-buy events across 18 tickers) than the live newlyA method's real entries in the same-ish period (192 closed + 159 open across 57 tickers) — newlyA is both more frequent and touches a much broader universe. Ticker overlap between the two methods is modest (12 of 18 legacy tickers also appear in newlyA's 57), meaning the two selection logics are picking largely different names, not just re-ranking the same candidates. This is observational only — a fuller backtest comparing hypothetical shadow outcomes to real newlyA outcomes can now be requested, but no outcome data exists yet from the shadow method itself, so none of this feeds point 4.