# Learning-loop review — 2026-08-10 139 closed trades reviewed, 125 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 **+1.85% per trade** across 139 closed trades, with profit factor 2.16 and Wilson-lower-bound win rate 63.2% — on its face, healthy. But this pool mixes three accounts with materially different risk configs and fill realism: - `paper-main`: 125 closed trades (simulated fills) — this supplies almost all of the sample. - `Paper02qsr`: 5 closed trades — below the 20-trade minimum, not usable. - `live-1`: 9 closed trades, real money — below the 20-trade minimum, and its trades are price-biased (small-notional cap → cheap shares only), so its 100% win rate is not comparable evidence. **Verdict:** the pooled number is large enough (n=139, driven by paper-main's 125) to treat the overall system-level expectancy as real and positive, but it is essentially a paper-trading result. It should not be read as confirmed live performance — only `live-1`'s 9 trades are real fills, and that's far too few to conclude anything about live edge yet. ## 2. Which bucket is the biggest drag? Restricting to buckets with **≥20 trades**, the strategy cut shows: | Bucket | n | Expectancy | PF | Win rate | |---|---|---|---|---| | **orb-v1** | 41 | **-0.06%** | **0.87** | 41.5% | | qsr | 83 | 3.01% | 3.67 | 86.7% | (`vwap-mr-v1` has only 15 trades — not actionable.) **orb-v1 is the clear drag**: it's the only strategy-level bucket at or above the 20-trade bar with negative expectancy and a sub-1.0 profit factor, actively losing money (-$91 total) while `qsr` carries the whole system. Other ≥20-trade cuts (RSI 40-50, RSI 50-70, distance -5..0% MA50, relvol<0.8, SPY>MA200, stop_loss/take_profit/eod_flatten exit reasons, and the "unknown" catch-alls) are all net-positive or not strategy-attributable, so orb-v1 remains the standout. ## 3. Entry problem, exit problem, or regime problem? The report does **not** provide a strategy-specific MAE/MFE breakdown — only the overall pooled MAE (-1.85% winners / -3.50% losers) and MFE (0.94% losers), which can't be attributed to orb-v1 specifically. That's a real limitation and should be flagged rather than papered over. That said, the numbers we *do* have for orb-v1 point toward an **entry problem, not an exit problem**: payoff ratio is 1.31 (wins are actually bigger than losses on average — exits aren't giving back an outsized MFE), but win rate is only 41.5% (Wilson low 27.8%). When payoff > 1 but expectancy is still ~flat/negative, the lever that broke is win rate, i.e. too many entries are simply wrong — an entry-quality issue, consistent with the doc's framing ("losers with low MAE that hit the stop... entry was early" or breakout wasn't confirmed). It does not look like a give-back/exit problem (that would show payoff < 1 or high MFE-on-losers), and there's no strategy-specific regime split to support a regime read either. **Caveat stated explicitly:** this is inferred from win-rate/payoff arithmetic, not from a strategy-level MAE/MFE cut, because none exists in the current report. ## 4. Proposed parameter change **Strategy:** `orb-v1` · **Parameter:** `volumeConfirmMult` · **Current:** `2.5` → **Proposed:** `3.0` Reasoning: orb-v1's problem is too many false-positive breakouts getting entered (41.5% win rate) even though the payoff on winners is fine (1.31), pointing at entry confirmation being too loose rather than the target/stop being wrong. Raising the volume-confirmation multiplier demands a stronger breakout-day volume signature before entry, which should filter out the weaker/failed breakouts without touching the exit logic (`targetRMultiple`, stops) — a single, isolated change so any resulting shift in win rate/expectancy over the next batch of orb-v1 trades can be attributed cleanly to it (rule #2 and #4). ## 5. Notable open positions - **QSR has a large, long-tailed open book** (~115+ open legs vs only 83 closed trades in the evidence base) — a lot of the strategy's true current performance is still unrealized and not in the scoreboard at all. - Several QSR positions are **aging without resolving** and sitting underwater: `HDB` (19.3 days, -1.87%, three separate cohorts held 19.3d/11.3d), `ETR` (multiple lots, -2.01%, up to 10.3 days), `MO` (-4.16%, several lots at 4.2–4.3 days). Since `qsr`'s `maxHoldDays` is `null`, none of these have a calendar exit forcing resolution — worth human attention even though nothing here should feed the parameter decision above. - Non-QSR: `MARA` (external, 5.3d, no time-stop) and `ETH/USD` (crypto-trend-v1, 6.1d, -1.99%, no time-stop) are also aging with no calendar backstop. - On the positive side, `VST`, `NVO`, `DDOG`, `LLY`, `SPOT`, `LHX`, `TT` lots are sitting nicely in the green (+4% to +9%) — the open book isn't universally bad, just heavily concentrated and unresolved. ## 6. QSR shadow comparison note Qualitatively notable: the legacy `isTriggered+isBuy/buyZonePct` shadow method and the live `newlyA` method are picking **almost entirely different tickers** — only `AEP` overlaps between legacy's candidate set (AEP, DDOG, IBKR, MO, AZN) and newlyA's real entries (AEP, SU, TRP, BTI). Legacy also fired far less often in its shadow window (9 would-buys, mostly near-miss tier) than newlyA's real 21 open entries. This divergence in *what gets selected* is worth flagging as a signal-methodology difference to investigate once trades resolve — but per the source note, none of this is scoreable evidence (no legacy trades executed, and newlyA's 21 are still open with 0 closed), so it plays no role in point 4. The shadow window is still running (ends 2026-08-23); once it closes, a fuller outcome-based backtest comparison can be requested.