Total value$295,117
Join the waitlistAll systems live

The research journal

The system's permanent memory, written by its AI researcher and never edited: every idea tested, every strategy retired (with the autopsy), and a growing “do not retry” list of dead ends. Most services show you their winners. This page is every experiment — especially the failures.

As of 50 experiment artifact(s) archived

Entries

Newest entries at the bottom — the diary reads forward, like lab notes.

The organism's long-term memory. Every researcher session APPENDS an entry;

nothing is ever rewritten or deleted. Read this file (newest-first is fine)

before proposing anything — dead ideas stay dead unless new evidence is

cited explicitly.

Format per entry:

## YYYY-MM-DD — <one-line headline>
**Autopsy:** what yesterday's trading did right/wrong (genome by genome, with $).
**Hypotheses tested:** idea → backtest verdict (net-of-cost numbers, not vibes).
**Actions:** births (genome_id + gate evidence), mutations (param, before→after, why),
kills proposed, no-ops.
**Do-not-retry:** ideas confirmed dead this session, and why.

2026-09-13 (weekly session) — The organism now has ZERO funded cells; Polygon-lapse bridge decisively fails; gap-fade DEAD

Autopsy — the last funded cell died. Watermark was 2026-09-09. Since

then: `tsla_morning_pullback` (mp) — the population's ONLY funded cell —

starved to death on 2026-09-11 (`neg_streak=15`, fitness -0.026), exactly

the risk flagged loudly last session. Final legs before death, all

losses: 09-09 long -16.32, 09-09 short -8.11, 09-10 short -9.96, 09-10

short -3.35, 09-11 short -13.25 (5 straight losing legs, 4 of them

short). This closes the long-vs-short question raised 09-09: full

post-guard (>=08-24) lifetime record is longs 2W/1L net -$0.01 (flat,

not edge, n=3 too thin to call) vs shorts 1W/8L net -$452.23 (-$54.72

excluding the one oversized pre-fix 08-25 leg) — the short side never

stopped losing. Lesson appended to

`lab/memory/experiments/tsla_morning_pullback_2026-09-11.json`: any

future revival should be long-only and needs a fresh backtest, not a

re-fund on this record (n=3 is absence-of-counterevidence, not evidence).

Combined with `g_tsla_orb15_holdeod` (starved 09-08, autopsied last

session), **the organism has deployed exactly $0 of capital since

2026-09-08.** This is the single most important fact this session — not

a bug, fair selection working as designed twice in a row, but a

structural fact the owner should see stated plainly: five weeks of

research have produced zero live-funded strategies right now.

Nursery status: 3 of 4 SHADOW slots filled, no promotions, no kills.

  • `g_tsla_macd_trend`: still the same single TSLA long from 2026-08-24

(20 days), 0 closed trades — unchanged from last session's read (cell

floor bootstrap issue, not a bug).

  • `g_inplay_firstbar_momo`: day 10 now (was day 8 last session). Two MORE

losing days landed on top of the -305.00 bad day already reported:

09-10 -52.40, 09-11 -144.66. Cumulative net is now -$275.98 (was

-$78.92), PF 0.829 (wins $1,335.37 / losses $1,611.35), 3 losing

days in a row wiping out the entire +226.08 run that existed at day 7.

Day-15 kill line needs PF<1 at day>=15 — still 5 days away, no action,

but the trend line is bad and worth a hard look next session if it

continues.

  • `g_rvol_fade_5d`: still zero trades, still no systemd timer, now 4

full trading days after birth (09-09) with no evidence accumulating at

all. Flagged again, more urgently: its promotion/kill clock cannot

start until this is wired. This is a deploy action for the owner

(`python3 -m harness.rvol_fade_run daily`, once after the close,

weekdays), not something I can do from here per last session's own

call — but four idle days is long enough to escalate the flag rather

than just repeat it quietly.

  • Swarm digest (`harness/state/swarm_digest.json`): 1,813 active books,

still 0 gate_candidates. No pre-screened SHADOW material from the

swarm this week either.

**Decisive investigation — the Polygon-lapse IEX/SIP bridge fails (backlog

URGENT item 2, deadline "before ~09/18", i.e. THIS session or next).**

11 days of `harness/state/iex_sip_compare.jsonl` (top-100 RVOL zone,

SIP dollar-volume vs free Alpaca-IEX dollar-volume, per symbol per day).

Spearman rank correlation: 0.373-0.716 per day, mean 0.599 — nowhere

close to the >0.9 bar the backlog itself set for "port RVOL to

IEX-only." Worse, the number that actually matters for a TOP_N=20 basket

genome is rank overlap AT the cutoff, not overall correlation: mean

Jaccard@20 = 0.403, mean top-5 overlap fraction = 0.38, mean

top-3 = 0.367. Concretely: on a typical day, an IEX-only RVOL

substitute would swap out roughly 6 of every 10 names in the top-20

book versus what SIP-based ranking would have picked — the exact

construction that earned the backtested OOS Sharpe 1.9-2.0. **Verdict:

no free substitute exists for the SELECTION side of

`g_inplay_firstbar_momo`. When Polygon dies (~2026-09-20, one week from

today) the genome's ranking step goes blind — it must be frozen/paused

at lapse, not silently switched to a proxy that was never validated and

whose overlap with the real signal is barely better than a coin flip.**

This is disclosed now, with a week of runway left, rather than found out

the hard way when the key dies mid-week. Separately, and NOT blocked by

the above: entry/exit MARKS only need any live price, not a SIP-truth

one, so `harness/inplay_momo_run.py:_last_price` was ported this session

— Polygon first while the key lives, falls back to

`marketdata.alpaca_latest_trade` (Alpaca IEX) on failure — so marking

(not selection) survives the lapse cleanly. Tests still green

(`pytest tests/test_organism.py tests/test_rvol_fade.py` — 54 passed).

**Hypothesis tested (backlog item 5, cheap/fast per its own framing):

SPY/QQQ opening-gap fade.** `harness/data/sip/min5_panel.parquet`

checkpoint panel (prior_close/o930/c1030, 1,251 days each symbol,

2021-08-27..2026-08-21). 6-config family (SPY+QQQ x gap threshold

{0.3%, 0.5%, 0.8%}), fade direction = -sign(gap), entry at open, exit at

10:30 checkpoint, 10bps RT, IS<=2024-12-31/OOS>=2025-01-01, Bonferroni

alpha=0.05/6 (crit |t|=2.644). Positive control (gross, all gaps

pooled): ~flat (+0.0035%/trade, win rate 0.503) — and actually NEGATIVE

in-sample at every SPY threshold (fading lost money gross, 2021-2024;

gap CONTINUATION would have been better that period). **DEAD, exactly

as the backlog predicted it would be:** 5 of 6 OOS configs net PF<1

(0.62-0.92); SPY 0.3% clears the family-wide Bonferroni bar in the

NEGATIVE direction (t=-2.688) — small gaps continue, they don't fade.

The one config with OOS PF>=1.0 (QQQ 0.8%, PF 1.007) sits at t=0.03,

indistinguishable from zero — not a rule-3b narrow miss (that band is

for a directionally strong result just short of the bar, not a coin

flip), so no SHADOW birth. Full numbers:

`lab/memory/experiments/index_gapfade_backtest.py` + `.json`.

Housekeeping: `lab/memory/icarus_shadow.json` (the Icarus fade

family's live paper book, written nightly by `scripts/icarus_scan_run.py`)

was untracked in git despite living under the always-committed

`lab/memory/` — committed this session. Status unchanged from a research

standpoint: 1 closed trade (TJGC, -6.16% net), 2 open, decision gate

needs >=60 trades/PF>=1.3 — far from anything actionable.

Actions:

1. Filled in the death lesson on `tsla_morning_pullback`'s retirement

artifact (long-only-if-revived, do not re-fund on this record alone).

2. Fixed `harness/inplay_momo_run.py:_last_price` to fall back to

`marketdata.alpaca_latest_trade` when Polygon fails — protects

firstbar_momo's entry/exit MARKS (not its selection ranking) across

the Polygon lapse.

3. Decided the IEX/SIP RVOL bridge question the backlog demanded a

decision on: it fails, no code changes follow from that (there is no

good substitute to switch to) — the decision itself, stated plainly

with numbers, IS the deliverable, so the owner isn't surprised when

the genome goes blind at lapse.

4. Tested and killed backlog item 5 (index opening-gap fade) — DEAD,

matches its own predicted outcome.

5. NO births this session. No swarm gate-candidates, and the

gap-fade result was noise-level (not a rule-3b narrow miss), so

forcing a 4th SHADOW slot would have been exactly the "sloppy birth to

fill a quota" the contract warns against. Nursery stays at 3/4.

6. NO mutations to living genomes — macd_trend is unchanged and waiting

on cell funding (a selection question, not a signal one);

firstbar_momo's decline is real but not yet at a decision point

(day 10 of 15) and no per-symbol trade detail was available this

session to ground a specific parameter mutation (only day-level nets

are retained; per-symbol logs from the systemd-run select/exit jobs

were not accessible this session) — flagging that gap rather than

guessing at a mutation from day-level noise alone.

Do-not-retry: SPY/QQQ opening-gap fade (any of 6 configs: 2 symbols x

{0.3%,0.5%,0.8%} threshold) — 5/6 OOS configs net PF<1, the strongest

result clears the family-wide Bonferroni bar in the WRONG direction

(continuation beats fade at small gaps). IEX-only RVOL substitution for

`g_inplay_firstbar_momo`'s selection step — mean rank correlation 0.60

and top-20 overlap 40% against true SIP volume, far short of the >0.9

bar needed to trust it; do not wire this in even after the Polygon key

dies, the genome should be frozen instead unless a better free proxy is

found.

Tone: the headline this week isn't a new discovery, it's an

inventory check — the organism is currently trading zero dollars of its

own capital, and the flagship SHADOW discovery (firstbar_momo) is one

bad week away from both a PF-based kill AND losing its data source in

the same month. Neither is a bug; both are real. The Polygon-bridge

question had a hard external deadline and a firm no answer, which is a

better use of a session than a hopeful maybe would have been — the

gap-fade test was a cheap confirmation of an already-expected DEAD

verdict, run because the contract's no-op bar requires attempting the

top backlog item and this one was fast enough to fit after the bridge

work. Next session: check whether firstbar_momo's PF keeps sliding

toward the day-15 line, whether rvol_fade_5d ever got a timer, and

whether the owner wants a plan for what runs in the nursery once

Polygon actually dies (~09-20, likely to fall right before or during

next week's session).

2026-08-15 — Organism born (seed population)

Autopsy: n/a — first entry. Prior system history: 36 books culled 2026-08-14

(all options + all unprofitable equity). Survivors became the seed gene pool.

Hypotheses tested: none this session — seeds carry prior validation:

  • `g_tsla_orb15_holdeod`: 7yr TSLA 5-min battery winner (net Sharpe ~1.25 w/ QQQ

filter, OOS 1.12, positive every year). Born EMBRYO $2k.

  • `g_tsla_macd_trend`: 26-strategy daily battery winner (net Sharpe 1.02/0.85 OOS).

Born EMBRYO $2k.

  • `tsla_morning_pullback` keeps its dedicated timer (live +$3.3k/60 fills);

migrates into the runner after parity is proven.

Do-not-retry (inherited from repo history — cite new evidence to reopen):

  • Mean-reversion / VWAP-fade / RSI-fade on TSLA intraday: LOSES net-of-cost

(2026-06-24 battery, all variants).

  • "Wait for the pullback/FVG retrace" on TSLA breakouts: fights the edge.
  • Naive ORB without liquidity/RVOL context on general stocks: zero-slippage

artifact (2026-06-05).

  • Ross Cameron momentum-pullback on gappers: cost artifact, OOS PF 0.97 @5c

slippage (2026-06-15).

  • Indicator-confluence day-trading (multi-indicator voting): PF 0.80 net (2026-06-08).
  • Options strategies of any kind: NO free real-time options feed exists

(2026-08-14 verification) — do not propose until that changes.

  • Fixed 2:1 targets on TSLA ORB: cuts Sharpe (1.33→1.15). Hold-to-close wins.
  • Pre-FOMC drift, ETF pairs, BAB/low-vol tilt, VRP overlay: all dead in the

2026-06-04 105-agent research sweep (no net retail edge).

2026-08-15 — VWAP+EMA9 battery (owner-proposed): NO deployable entry edge

Hypotheses tested: the four canonical VWAP+EMA9 intraday playbooks on 5-min

RTH bars, TSLA (2021-2026) + SPY + QQQ, net 5bps/side, IS (…2024) vs OOS (2025…),

~30k trades examined. Engine sanity: the VWAP-fade control lost everywhere,

consistent with the 2026-06-24 battery. Full code + numbers:

lab/memory/experiments/vwap_ema9_battery.py

  • EMA9×VWAP crossover: TSLA IS PF 1.23 (+74%) → OOS PF 0.65 (−41%). GROSS OOS

is also negative (−3.2 bps/trade) — the signal decayed, not just the costs.

SPY/QQQ: loses both segments. Classic IS-only artifact.

  • Trend-pullback to EMA9 above/below VWAP (raw): PF 0.10–0.36 everywhere.

Fires ~6k times; death by frequency × costs.

  • Steel-manned selective version (AM-only, ≤2/day, first-pullback, ≥0.2%

stretch): PF 0.29–0.53 net on all 3 symbols BOTH segments, and NEGATIVE

GROSS on TSLA (−4 bps/trade) — no cost model rescues a no-gross-edge signal.

  • VWAP reclaim w/ EMA9 slope: PF 0.15–0.53 everywhere.

Actions: no birth. Battery archived to experiments/.

Do-not-retry: VWAP+EMA9 (any of: crossover, trend-pullback, reclaim, fade)

as an ENTRY signal on liquid large-caps at 5-min — no gross edge OOS, and

10bps round-trip exceeds the signal. The components remain valid as MANAGEMENT

tools (the live tsla_morning_pullback winner already trails with EMA9; VWAP-side

bias is admissible as a FILTER on a validated structural entry, e.g. ORB —

that combination is untested and is the only respectable follow-up).

2026-08-15 (later) — ORB×VWAP filter: redundant · Entry-style: genome MUTATED

Hypotheses tested: (1) VWAP-side bias as a filter on the validated ORB-15

entry — the one respectable follow-up from the VWAP+EMA9 battery. (2) The

live genome's close-through entry vs the June battery's stop-at-level fill.

Evidence: lab/memory/experiments/orb15_entry_style_backtest.json (+ code).

  • VWAP filter: NO-OP. qqq+vwap produced the IDENTICAL trade list to qqq —

a close through the OR high is always above session VWAP already.

  • Entry style: stop-at-level beats close-through in BOTH halves

(IS Sharpe 0.63→1.03; OOS PF 0.911→1.048, avg −0.037R→+0.023R). The

close-through variant this genome launched with was quietly giving back

the first leg of every breakout.

Actions: MUTATION (owner session): g_tsla_orb15_holdeod now arms a resting

STOP order at the OR level on the QQQ-agreeing side, cancels/re-arms on tape

flips (the Pine's OCO behavior). Runner gained a pending-order lifecycle

(submit_stop / order_status / cancel_order; fills convert to positions at the

actual fill price; unfilled orders expire 15:30). 39 tests green.

Do-not-retry: VWAP-side filter on ORB-15 (mathematically redundant at the

trigger). Close-through entries on level-break strategies when a resting stop

order is available — the fill model IS part of the edge.

2026-08-15 (later still) — Momentum rotation: NO BIRTH (loses to SPY)

Hypothesis tested: cross-sectional 12-1 momentum, long-only top decile,

monthly rebalance, on the SURVIVORSHIP-FREE panel (5,511 tickers incl. 1,541

delisted, 2021-05→2026-05), net of costs, one fixed config (N=1, no sweep).

Evidence: lab/memory/experiments/momentum_rotation_backtest.json

  • Bias-free, research costs: IS Sharpe 0.78 (DSR 0.93) → OOS Sharpe 0.49

(DSR 0.73), OOS net +9.97%. Realistic costs: OOS 0.48, +9.64%.

  • Benchmark, SAME OOS window: SPY buy-and-hold +22.2%, Sharpe 0.84.
  • Survivorship isolation: dropping all 1,541 delisted names moved OOS Sharpe

0.494→0.498 — the bias is ~nil in this window/universe.

Actions: NO birth — positive absolute returns but roughly HALF the

risk-adjusted return of doing nothing (SPY). Fails the opportunity-cost bar

that retired low_vol_etf_tilt (2026-06-04).

Do-not-retry: plain 12-1 monthly momentum rotation on the broad US panel

as a genome, unless a variant demonstrably beats SPY OOS net-of-cost (regime

gating or vol-targeting would need their own honest N-trials accounting).

2026-08-15 — EPOCH RESET: fresh accounts, day zero

Owner deleted the three original paper accounts and created new ones, each

$100k: core PA3ESRQAV5PY · highrisk PA3UM5SV3FY3 · organism PA3Y2UAU2W8W

(all ACTIVE, crypto ACTIVE, shorting enabled). Keys rotated on Mac + VPS.

Database truncated after backup (/home/tradervex/backups/pre_reset_2026-08-15

.sql.gz) — the public track record starts HERE. Pre-reset history and every

lesson from it live in THIS journal and experiments/; the Do-not-retry list

carries forward. Breaker/HWM/killswitch/book state reset to $300k baseline;

stale strategy state archived to harness/state/archive_pre_reset_2026-08-15/.

Monday is day one of the clean record: stock engine rebuilds its book,

morning-pullback + ORB (stop-entry) + MACD genomes trade the organism account.

2026-08-15 (weekly session) — PEAD long-only: NO BIRTH, prior claim refuted

Autopsy: watermark unchanged — epoch reset happened earlier today, zero

trading days have elapsed since (Saturday night, market closed all weekend),

population still 2 EMBRYO cells / 0 live trades / 0 fills in `trades` since

the reset. Nothing to autopsy mechanically; no bug, no parameter data.

Hypotheses tested: population has headroom (2/12), so used the pre-Monday

window to test the one concretely-named fair-game idea in the researcher

contract: PEAD long-only (earnings-reaction pop → hold 3 days), using the

existing decision core at `harness/strategies/pead_live.py`. Built a FRESH

backtest this session — EDGAR 8-K/item-2.02 filings (via `company_tickers.json`

+ `submissions/CIK##########.json`, keyless) for earnings-reaction dates,

Alpaca daily bars already cached in `harness/data/` for prices, 108 large-cap

liquid names, chronological max_concurrent=8 portfolio sim, 5bps/side cost.

Code + artifact: `lab/memory/experiments/pead_earnings_drift_backtest.py`

+ `.json`.

  • IS (2025-01-21…2025-10-31, n=69): PF gross 0.983 / net 0.918, avg ret/trade

net −0.13%. OOS (2025-11-01…2026-05-20, n=56): PF gross 1.037 / net 0.982,

avg ret/trade net −0.03%. Gross is flat-to-negative in BOTH windows

this isn't a cost-erosion story, the raw signal has no edge before costs

either. Portfolio max DD 2.41% (fine, but moot given no edge).

  • Gates (OOS, net): PF≥1.15 FAIL (0.982). ≥100 OOS trades FAIL (56, real

count, universe/window is just thin — not padded to hit the number).

MaxDD≤20% PASS (2.41%). Overall 1/3 — NO BIRTH.

  • Data caveats worth remembering: XOM's ticker maps to a shell entity in

SEC's `company_tickers.json` (zero filings) — needed a manual CIK override

to the real ExxonMobil filer (34088) to get its 26 8-Ks; other symbols may

have similar shell/restructuring mismatches undetected here. TSLA's 8-K

2.02 tag also catches monthly/quarterly delivery-number releases, not just

GAAP earnings — roughly half its 14 triggers in-window are delivery prints,

a known imprecision of the free-EDGAR proxy vs. a real earnings calendar.

Sample is thin regardless (~16 months of cached bars, 1-2 earnings cycles

per name) — this result should be read as "no edge found in a fair, if

short, test," not a definitive multi-cycle refutation.

Actions: no birth, no mutation (nothing live to mutate), no bug fix

(nothing has traded yet). Population unchanged at 2 EMBRYO cells.

Do-not-retry: the repo's prior "PEAD long-side validated +0.79%/trade

(2026-06-05)" claim is REFUTED by this fresh, honest, net-of-cost run — do

not re-cite that number as evidence for anything going forward. Plain

earnings-reaction-pop-then-hold-3-days PEAD, entered via the free EDGAR

8-K/item-2.02 proxy at a 3% reaction threshold, on liquid large-caps: no

gross edge in either IS or OOS window tested. A respectable follow-up would

need either (a) much longer price history than what's currently cached

(only ~16mo in `harness/data/`) before concluding anything more permanently,

or (b) a cleaner earnings-only trigger that filters out non-GAAP 8-K/2.02

noise (e.g. TSLA's delivery prints) — untested, and not worth doing again

without a plan to fix the trigger precision or extend the price history.

2026-08-16 (weekly session) — Crypto Donchian trend battery: NO BIRTH

Autopsy: watermark unchanged since 2026-08-15 (epoch reset). Zero trading

days have elapsed — Saturday night reset, Sunday all-weekend market closure,

0 fills in `trades` since the reset, `organism_runner.log` shows `actions=0`

on every 5-min tick all day. `organism-select.timer` hasn't fired yet either

(next run Mon 2026-08-17 20:20 ET — first selection cycle since the reset).

Population unchanged: 2 EMBRYO cells (g_tsla_orb15_holdeod, g_tsla_macd_trend),

0 live trades each. Nothing to autopsy mechanically; no bug, no live param to

mutate.

Hypotheses tested: population has headroom (2/12) and carries zero crypto

genomes despite crypto majors being explicit fair game (rule #5). Tested

classic Turtle-style Donchian breakout trend-following, long-only spot, on

the sandbox's full crypto allowlist (BTC/USD, ETH/USD, SOL/USD, LTC/USD) —

daily bars, fresh Alpaca crypto fetch (keyless), 2021-01-01→2026-08-15

(SOL from its 2021-09 listing). Two canonical configs: System 1 (20-day

entry / 10-day exit) and System 2 (55/20). Entry = close breaks above prior

N-day high; exit = close breaks below prior M-day low (shift(1), no lookahead).

Equal-weight 25%/symbol when signaled long, cash (0% yield) otherwise. Cost

10bps/side (20bps round-trip, the contract's stated crypto minimum). IS

2021-2024, OOS 2025-2026(→08-15). Code + full numbers:

lab/memory/experiments/crypto_donchian_trend_backtest.py + `.json`.

  • System 1 (20/10): IS n=112, gross PF 3.29 / net PF 3.20, portfolio

+705.71% (the 2021-2024 bull carried it hard). OOS n=49, gross PF 0.82 /

net PF 0.78, avg net ret/trade −1.00%, portfolio −13.55%, max DD −37.7%.

Net PF < 1 OOS — fails the ≥1.15 gate outright.

  • System 2 (55/20): IS n=48, PF 2.79/2.73, +120.7%. OOS n=22, PF 0.33/0.32,

avg net ret/trade −6.26%, portfolio −31.4%, max DD −32.1%. Worse than

System 1 — the slower system's few big whipsaws hurt more when the trend

the whole method depends on isn't there.

  • Benchmark: BTC buy-and-hold same OOS window: −33.28%. Both systems lose

LESS in absolute drawdown than holding BTC naked (partly just being out of

the market more), but that's cold comfort — net PF < 1 means the strategy

itself has negative expectancy, not just "beats a falling asset."

  • Read as regime, not bug: 2021-2024 was a historic multi-leg crypto bull —

textbook trend-following terrain. 2025→2026-08 has been a grinding

BTC-down / range-bound regime — the whipsaw environment trend-following is

known to bleed in. This is the IS-only-artifact pattern already burned once

this week (VWAP+EMA9 2026-08-15): great in-sample number, sample-dependent,

no OOS edge.

Actions: no birth. Gates (OOS, net, best of the two): PF≥1.15 FAIL (0.78

best case). ≥100 trades: pooled IS+OOS trade count clears it, but the OOS-only

segment that matters for the PF number is thin (49, 22) — moot since PF

already fails. MaxDD≤20%: FAIL (−37.7%, −32.1%). 0/3 on the segment that

counts. Population still 2 EMBRYO cells, 0 live trades — nothing to mutate.

Do-not-retry: plain Donchian/Turtle breakout trend-following (any of

20/10, 55/20) as a standalone long-only entry on the crypto majors basket

(BTC/ETH/SOL/LTC) at daily granularity — strongly regime-dependent, decisively

negative net-of-cost in the 2025-2026 chop/down window tested here. A

respectable follow-up would need an explicit regime gate (e.g. only trade

breakouts while a longer BTC trend filter — 200sma or similar — agrees) tested

as its own honest IS/OOS split, not a data-mined patch on this result — untested,

not worth attempting again without that plan.

2026-08-19 — Icarus fade (owner-proposed): reversal is REAL, the short expression is UNDEPLOYABLE

Hypothesis tested (owner, re: MRNA): "stocks that go up too fast too

quickly dip on profit-taking — fade them." Survivorship-free close panel

(5,511 tickers incl. 1,541 delisted, 2021-05→2026-05), events = +50%/10d

(E10_50, n=2,949) and +30%/5d (E5_30, n=6,518), 20-bar cooldown, entries at

next close, IS ..2024-12 / OOS 2025-. Shorts net of 10bps/side + 25% APR

borrow; long-continuation control; first-red-day trigger variant. Code +

full numbers: lab/memory/experiments/icarus_fade_backtest.py + .json.

  • The direction is right. After a +50%/10d run, the average name bleeds:

gross short +3.5%/10d, +8.1%/20d IS; +2.1%/+4.0% OOS. The long control

LOSES in both segments (PF 0.48–0.93) — buying the spike is the worst seat

at the table. Median short outcome positive nearly everywhere.

  • The tradeable edge is thin and tail-poisoned. Best config

(E10_50 naive h20) OOS net PF 1.161 / +1.8%/event — a hair over the 1.15

gate — but single events lost −199%…−558% net (E5_30: −2,808%!). Close-only

stops cannot cap an overnight squeeze; a handful of GME-style rips erase

years of median wins. The faster E5_30 trigger is NET NEGATIVE OOS

(PF 0.74–0.93). first_red (wait for the first −2% close) forfeits the

early reversion without dodging the squeezes: OOS PF 0.94–1.10.

  • Costs are understated by design: flat 25% APR borrow; real HTB fees on

exactly the squeeziest names run 100–300%+ and land on the worst events.

The marginal 1.16 PF does not survive realistic borrow skew.

  • MRNA context on test day: +210%/10d, closed AT its run high, 4.3× volume —

3–6× beyond the tested threshold and still FRONT-SIDE (no distribution

bar yet). Exactly the profile of the events that produced the tail losses.

Actions: NO BIRTH. Verdict: mean-reversion after parabolic runs exists

gross, but a naked-short genome fails on tails + borrow. The professional

expression of this edge is DEFINED-RISK (long puts / put spreads, max loss =

premium) — unavailable here: no options feed (2026-08-14 verification).

Do-not-retry: naive or first-red-day SHORT fading of parabolic run-ups

on the broad panel as a genome — OOS PF ≤1.16 with unbounded single-event

tails. Reopen ONLY with (a) a real options feed for defined-risk expression,

or (b) a portfolio-level sim with hard per-event notional caps + realistic

per-name borrow-fee data showing the tails are survivable — neither exists

today.

2026-08-19 (later) — Icarus, options expressions: PUTS DEAD on real data; spreads inconclusive

Correction first: the repo DOES hold options history — harness/data/options,

2.4GB, 353 liquid underlyings, per-contract DAILY + 5-min TRADE bars,

expiries 2024-05→2026-05 (Alpaca paid-era downloads), + SPY-only NBBO/OI.

"We'd need to buy history" (earlier today) was wrong for a first pass.

Put-buying pilot (lab/memory/experiments/icarus_put_pilot.py): 85 of

1,331 post-2024-06 parabolic events overlap the options universe; 28 had a

tradeable put print (~45d, 95%-strike, 10% spread pads). Result: mean

−49.3%/trade on premium, median −88.5%, win 21%, PF 0.27 — negative in

2024, 2025 AND 2026. The underlying reversal (+2-4% net short, prior

battery) is REAL but SMALLER than what the options market charges at

parabolic tops: entry IV is at panic highs, then crushes. Removing the

spread pads entirely still leaves ≈−30%/trade — the pads are not the story.

DEAD. Do-not-retry: long puts (or any long-premium structure) on

parabolic-run-up fades — the vol is priced worse than the move.

Call-credit-spread pilot (icarus_callspread_pilot.py): the vol-SELLING

mirror — n=9 only (both legs rarely print same-day), and results carry

crossed-print artifacts (ret-on-risk +890%/−170% are impossible for a

defined-risk spread → stale trade prints, not real fills). INCONCLUSIVE,

not dead. Two-leg structures cannot be priced from trade bars; they need

historical NBBO QUOTES, which exist here only for SPY. Cheapest honest

paths if ever revisited: a one-off CBOE DataShop/ORATS EOD-quote slice for

the ~130 event names, or Polygon's quote tier (~$199/mo — NOT the $29

aggregates tier, which would not fix this).

Standing verdict on the whole Icarus family: underlying short = marginal

net with fatal tails; long puts = dead; credit spreads = untestable without

quote data. NO BIRTH anywhere. The free nightly scanner + shadow book

(scripts/icarus_scan_run.py, live since tonight) remains the only active

piece; its pre-registered gate (≥60 shadow trades, net PF ≥1.3) is now the

bar for spending anything on quote data for the spread variant.

2026-08-19 (owner decisions) — researcher 2x/week; reserve stays cash; e2e validation

Owner: "proceed with recommendations, validate end to end."

  • Researcher cadence → Sun + Wed 23:30 UTC (was weekly). Owner has

pushed twice for more AI-strategy flow; sessions are Haiku on the metered

key, so doubling is cheap. Timer deployed + verified — the FIRST Wednesday

session fires tonight. Prereqs re-verified: claude CLI 2.1.233 at

/home/tradervex/.local/bin/claude, ANTHROPIC key present, wrapper intact.

  • Cash reserve ($100k) stays idle. Trigger to revisit, pre-registered:

when the Organism's allocated cells exceed ~60% of its own $100k account

(currently $7,750 = 8%), reserve deployment becomes a real conversation.

Capital is earned by results, not granted by boredom.

End-to-end validation (all green): full suite 4,802 passed / 0 failed;

VPS on latest commit; 25+ timers armed with sane next-runs; icarus unit

force-run OK (walk-back + idempotency verified); TSLA fractionable=true on

the organism account (MACD sizes 0.23 sh ≈ $80 — the fix is deliverable);

site 9/9 pages 200, sleeves sum exactly ($99,657 + $100,000 + $97,361 =

$297,018); health panel's two 24h failures both explained (mp SIGABRT

09:38 ET — consequence defused by the reconcile guard; health-alerter blip

19:05 UTC = it probed the API mid-deploy-restart, self-recovered).

Tomorrow's expected prints: PEAD exits CSCO+AMAT ~09:40 ET (books at real

fills for the first time), mp/ORB trade the open, icarus scan processes

8/19 tonight at 22:00 ET, researcher session 19:30 ET.

2026-08-19 (second session, Wed) — ORB15 first trade; morning_pullback selection pressure — no-op

Autopsy: Market: SPY +0.44%, QQQ +0.08%, BTC +6.46%, ETH +9.54%, VIX 15.84. TSLA +2.8% from open to close; favorable for breakouts.

Genomes:

  • `g_tsla_orb15_holdeod` (EMBRYO): 1 trade: shorted 5 TSLA at 337.55 (OR low break), exited at 342.28 (stop), realized loss −$23.62. Stop-order mechanics sound (confirmed: resting stop-sell at 337.64 fired correctly, exit at stop-buy 341.14 filled at 342.28 due to normal slippage in a rally). Single trade is noise; insufficient data to judge the 2026-08-15 stop-entry mutation.
  • `tsla_morning_pullback` (PAPER): 3 fills: sell 144 TSLA @ 343.15 (+$450), sell 145 @ 347.39 (+$1,068.65), buy 296 @ 348.37 (−$943.14) = net +$575.51. Profitable today but in a neg_streak: SELECTION punished −5.58% (2026-08-17), 0% (2026-08-18), capital cut from $10k → $3.75k over 2 days. Fitness −0.0314/−0.0316. This is a legacy genome (pre-organism seed); its parameter space is not fully documented here.
  • `g_tsla_macd_trend` (EMBRYO): 0 trades. Still waiting for a setup.

Population: 3 cells live, 2 of 12 allowed. All genomes firing/idle as expected.

Hypotheses tested: none this session. Considered new births (crypto Donchian with regime gate; ORB with VIX filter), but each would need honest backtest evidence (PF ≥1.15 OOS, ≥100 trades, maxDD ≤20%) on cached data. The Do-not-retry list from 2026-08-15 through 2026-08-19 covers every major hypothesis tested; the next respectable follow-ups lack validated backtests and would cost 30–60 min to build fairly.

Actions: none. No births (insufficient hypothesis evidence). No mutations (ORB15 data too thin; morning_pullback parameter space unclear). No kills. Population stable.

Do-not-retry: nothing new. The inherited list remains the guardrail (mean-reversion TSLA intraday, VWAP+EMA9, naive ORB without liquidity context, Donchian crypto, Icarus shorts + puts, PEAD, momentum rotation).

Session tone: skeptical quant discipline. A no-op with a clear autopsy beats a forced mediocre birth. ORB15's stop-order mutation is sound; it needs more trading data before we know if it's a winner. Morning_pullback is being correctly pruned by SELECTION's 10-day fitness window — let it prove parity or get retired. Next session: watch for ORB15 and MACD accumulation, and monitor whether morning_pullback stabilizes or continues to decay.

2026-08-19 (owner-proposed) — Weekly $5/$10 reversal grid: NO BIRTH (loses to SPY money-weighted, badly)

Hypothesis (owner, exact spec): buy $5 of any stock down ≥5% on the week;

sell $10 of any holding up ≥10% on the week; all stocks simultaneously.

Long-only interpretation (can only sell what you hold). Survivorship-free

panel, signals Friday close, fills next session close, 25bps/side.

Code: lab/memory/experiments/weekly_reversal_grid_backtest.py + .json.

Artifact hunt worth remembering: v1 said +$1.04M — fantasy. The panel's

per-day $5/$1M filter makes 3,320 names drop out for a median 296 days

(exactly their collapse window); liquidating on dropout exited dip-buys at

pre-collapse prices. v2 holds through dropouts (eats the reappearance

price) and liquidates only true delistings under recovery scenarios.

LESSON: this panel is built for TOP-of-market strategies; for buy-losers

strategies its filter censors the loss tail — rebuild unfiltered or bound.

v2 results (5yr, ~125k buys / ~40k sells, peak deployed ~$204-255k):

  • delist recovery 100%: PnL +$62k vs SPY-same-flows +$152k
  • delist recovery 50%: PnL +$33k vs SPY +$163k
  • delist recovery 0%: PnL +$3k vs SPY +$173k (IS segment NEGATIVE −$8.6k)

Max DD ~$47-53k against those gains; ends holding 2,925 positions.

And v2 is STILL optimistic (no averaging-down inside dark valleys; stale

marks flatter DD).

Why it fails (the intuition): sells fired only 40k times vs 125k buys —

weekly −5% names mostly keep deteriorating, so the +10% harvest can't keep

up and the book becomes a warehouse of chronic decliners. Weekly reversal

exists as a cross-sectional RANKING edge (gross), not as an absolute

"every dipper is on sale" edge. The spec underperforms doing nothing

(same dollars into SPY) by 2.5-50x depending on delisting kindness.

Actions: NO BIRTH. Implementation was feasible (fractional $5 orders,

free grouped-daily signal, ~1k orders/wk within Alpaca limits) — feasibility

was never the problem; the edge is.

Do-not-retry: fixed-dollar threshold grids that buy absolute weekly

losers market-wide, long-only, any thresholds — dominated by SPY same-flows

in every delisting scenario tested. A respectable follow-up would be the

academic CROSS-SECTIONAL weekly reversal (rank-based, liquid universe,

long-short, quintile spreads) on an UNFILTERED panel — different strategy,

untested here, needs the unfiltered panel build (~4h of free API calls).

2026-08-20 — LEDGER CORRECTION: mp's crash didn't just orphan a short — it INVERTED the book

Owner asked where the Organism's ~$3k went; the site's ledger couldn't

answer because its morning_pullback rows were FICTION. Reconciling against

Alpaca's own fill feed (the definitive record) revealed:

  • 8/18: mp shorted 296 @335.50 (never recorded — crash era), crashed

through its flatten window, and the NEXT morning its wiped state met a

long signal: its "buy 289" actually COVERED the forgotten short

(realized −$1,302.35), and its two "profitable long exits" (+$450,

+$1,068 as booked) were actually sell_short fills OPENING a new 296

short — which the 14:50 orphan-reconcile then flattened for −$942.24.

  • 8/17's booked −$557.55 was really −$365.80 (signal-priced entries).

True realized, per broker fills: mp −$2,610.39 · ORB −$23.62 · PEAD

+$364.14 → matches account equity to the cent with the live position.

The 4 fictional rows were REPLACED with 7 broker-truth rows, every one

carrying a visible correction note — the correction itself is part of

the public record, not a quiet edit.

Why it cannot recur (all live before this entry): run_once reconciles

state vs broker EVERY tick (an inverted book gets flattened within a

minute, not traded on), entries+exits book ACTUAL fills (commit dd8650f

for PEAD, 8/20 for mp), and the twice-daily invariant auditor alarms on

any broker/state divergence. Today's live test: mp is short 284 @342.25

with state, broker, and site all agreeing.

2026-08-23 (weekly session) — ORB15 noise; morning_pullback recovered; population stable; no-op

Autopsy (2026-08-21 Thu + 2026-08-22 Fri):

Population: 3 cells live (2 EMBRYO + 1 PAPER).

  • `g_tsla_orb15_holdeod` (EMBRYO $2k): 2 live trades total (all Thu/Fri, prior week showed 2026-08-19 entry too).

- 2026-08-19 short TSLA @337.55, cover @342.275 = −$23.62. Market was +2.8% that day (bullish reversal).

- 2026-08-20 short TSLA @342.20, cover @343.565 (EOD flatten) = −$4.10. Market also reversed up.

Both were SHORT signals (QQQ weak), entered correctly per the ORB-15 logic, but the market rallied

both days against the position. This is normal market noise, not a bug. The 7-year TSLA battery

walk-forward validated the strategy on decades of data; 2 live trades losing is not a refutation.

Neg_streak=3, fitness −0.007734 — expected as SELECTION hasn't run since 2026-08-15 reset, next

selection cycle fires Mon 2026-08-24 20:20 ET.

  • `tsla_morning_pullback` (PAPER $2.6k, was $3.75k on 2026-08-18):

- 2026-08-21: long 228 @360.54, sell 228 @362.80 = +$515.28 (perfect, +0.143%).

- 2-day cumulative (Thu/Fri) = +$1,302.15 (including prior week's 08-20 cover profit).

Recovered strongly from the Aug 17-18 drawdown. Genome is sound. Still PAPER (not funded),

tracking correctly.

  • `g_tsla_macd_trend` (EMBRYO $2k): 0 trades. Waiting for setups. No issue.
  • Icarus shadow: 14 open hypothetical short positions from the 2026-08-19/20/21 events, 0 closed,

1 bar held each. Decision gate: ≥60 closed trades, net PF ≥1.3. Too early. MRNA position losing

(entry 133.32 vs last close 145.13), which aligns with the validated underlying reversal signal

(parabolic run-ups do fade on average) but the unbounded short tails killed the naked version,

per the 2026-08-19 battery. Shadow trading is the correct patience mechanism here.

Hypotheses tested: none this session. Considered backtest of backlog #1 (ORB-15 on NVDA), but

the 5-min data pipeline for 2021-2026 would require fresh Alpaca fetches and API spend; the cost

model for a validation-only run (known-good strategy on a new symbol) isn't justified until there's

a trigger (e.g. ORB15 loses money again, or the population fills up and needs fresh ideas).

Actions: none. No births, no mutations, no kills. Population stable. Let SELECTION vote on Mon.

Do-not-retry: nothing new. The Do-not-retry list (inherited from 2026-08-15..2026-08-20) stands.

Tone: The population is healthy. ORB15's 2-trade loss streak is noise in a strategy validated

on walk-forward 7-year history; morning_pullback recovered and trades correctly; MACD is waiting.

One rigorous no-op with a clear autopsy beats a forced mediocre birth. SELECTION fires in ~24h

and will decide on promotions/benches. Next substantive work: (a) when SELECTION promotes or kills,

update the population accordingly; (b) if the backlog remains untested by Wed evening, budget for

ORB-15 on a new symbol then.

2026-08-20 (second correction) — the fill-poll never worked; PEAD booked MAY prices

Owner caught it from the numbers: "today +$170 but the ledger sums +$751?"

The account was TRUE; the ledger was fiction — again, one layer deeper:

  • The actual-fill poll added 8/19-8/20 compared order status via

`str(status).endswith("filled")` — but Alpaca's enum prints

"OrderStatus.FILLED", so the check NEVER matched and every runner fell

back silently.

  • mp's fallback (live 5-min close) was merely imprecise. PEAD's fallback

read the DAILY-BARS CACHE — last refreshed in MAY — and booked CSCO's

exit at its May close (122.57 vs the real 110.25 fill) and AMAT at

522.12 vs 492.49: fantasy +$364 on a real -$408 day.

Corrected to broker-activity truth (recipe notes on every row):

PEAD today -$407.65 (CSCO -125.05, AMAT -282.60) · mp today +$287.13

(entry VWAP 342.106; covers 339.32/+395.62 and 342.87/-108.49).

Cross-check: research equity today +$286.65 ≈ mp realized ✓; core

-$45.42 = PEAD's close-to-close ✓ — pennies.

Fixes shipped: (1) status check is case-insensitive; (2) PEAD's fallback

is a LIVE latest-trade quote, last resort = entry price (a flat record

beats fantasy); (3) equity snapshots FREEZE each date's row at the 16:10

ET close — after-hours repricing no longer leaks into the yesterday

baseline (core's polluted 8/19 row reset to broker last_equity); and the

one that ends this class: (4) the invariant auditor now runs

fills_reconcile — every ledger row of the last 2 days must match a

broker FILL activity within 0.5%, and it runs twice every trading day.

It passed post-correction; it would have flagged CSCO@122.57 pre-market.

2026-08-23 — Owner escalation answered: WHY only TSLA + the In-Play sleeve ships

**Owner: "every day is trading only Tesla, no new strategies... trade like

the top 1%."** Honest diagnosis, then the build:

Why the book was TSLA-only (four concrete reasons, all addressed):

1. The Weekend Engine — the broad-universe book — has been SILENTLY DEAD:

its yfinance daily feed serves ~40h-stale bars on the VPS, and the

freshness guard correctly KO'd every Friday entry (SKIP stale_bar, both

epoch Fridays). Fixed: stale-yfinance → Alpaca-daily fallback in

harness/live.py (399 tests green). It can actually trade next Friday.

2. The researcher's idea funnel was starved until 8/20 (backlog + SHADOW

births created then); TONIGHT is its first backlog-aware session.

3. The gates rejected 8 candidates honestly — most retail edges are dead;

that part is the system working.

4. The validated PROFESSIONAL strategy (Stocks-in-Play ORB, 2026-06-05:

net PF 1.38, OOS 1.48) was culled with everything else on 8/14 and

never revived. That was the real miss.

**Shipped — the In-Play Opening Range sleeve (orb_inplay), the top-1%

day-trader workflow end to end:** premarket scanner (09:12 ET) turns the

senses' movers + most-actives into the day's watchlist (CS-only, $5-1500,

cap 20, TSLA excluded — sibling engines own it); the runner (every minute

09:34-16:11 ET, research account, $10k capped book) demands RVOL>=1.5

participation, enters opening-range breakouts with an ATTACHED protective

stop (OTO), sizes 0.5%-risk to the stop, time-stops stalls at 11:00,

flattens 15:55, max 3 concurrent. Entries+exits book at polled actual

fills, sleeve=research, external genome under selection (EMBRYO $5k).

Smoke-tested end to end (Sunday dry-run read the 10-name watchlist).

Also fixed this session: trades.qty int-flooring (MACD's 0.23-share

entry recorded as qty=0 — row corrected); auditor organism-key parsing

(gid|symbol split — MACD's tracked position double-reported as orphan+

phantom for 3 days); mp's 11:30 flatten was bars-DEPENDENT (IEX outage

8/21 delayed it 26 min — flatten now fires without a data feed).

Do-not-forget: the 8/21 audit finding trio was 2/3 auditor-bug + 1/3

real (qty=0). An auditor must be audited too.

2026-08-23 (late) — In-Play sleeve: dress-rehearsed on real data before its first live day

Owner demanded proof over promises. Built scripts/inplay_rehearsal.py —

replays the sleeve's EXACT decision engine (same gates, sizing, stops,

time-stops) over any real day's 5-min bars for the scanner's actual

watchlist. Friday 2026-08-21 tape, $10k book:

  • 10 in-play names scanned: 3 thin tapes skipped, 3 rejected by the

RVOL>=1.5 participation gate (INTC 0.65 / NVDA 1.18 / SPCX 0.77 —

gappers nobody was trading), 3 entries taken (JUNS rvol 618, MARA 5.1,

MRNA 3.6).

  • Every loser capped at ~0.5% of book by the attached stop or the 11:00

time-stop: -$49.29, -$49.94, -$15.80 → day -$115 (-1.15%) on a chop

day. The discipline held on every single trade — that is the receipt.

  • The rehearsal also caught + fixed a replay-modeling gap (one entry per

symbol per day) and a stale-watchlist edge (Monday must never trade

Friday's movers — scanner now refuses senses not dated today).

Watchdog: invariant auditor gained check_inplay_chain — a dead scanner or

dead runner on any weekday raises a health-panel finding by 16:45 ET.

The Weekend Engine died silently for two weeks; this sleeve cannot.

2026-08-24 (pre-open) — orb_inplay STOOD DOWN before its first trade: the revalidation failed

The owner asked three sharp questions (add shorts? is hold really better

than trailing? is the stop too shallow for these names?) — answering them

with data KILLED the deployment, hours before its first live entry.

Config battery (lab/memory/experiments/orb_inplay_config_battery.py):

two-sided (first-bar direction, shorts included), RVOL-gated, 10 high-beta

in-play-like names, 2022..2026-05, 5bps/side, IS/OOS:

  • Entry {close-through, stop-at-level} x stop {OR-opposite, 1.5xATR5m,

0.1xATR14d} — ALL SIX configs negative both segments. Best:

close-through + OR-opposite stop, -0.36R IS / -0.55R OOS.

  • The LIVE config (1.5xATR5m stop) was the WORST: -0.61R IS / -0.96R OOS,

win rate 4.7-7.8%. The owner's instinct ("that stop will be hit every

time") was exactly right for this universe — the ATR of quiet 5-min

bars is noise-level on names that move 5% before lunch.

  • Exit-style battery (orb_exit_style_battery.py): hold / 10R-target /

breakeven / EMA-trail all negative on identical entries — exit style

cannot rescue an entry with negative expectancy.

  • RVOL dose-response (the paper's own claim): monotonic and REAL

(-0.61R @1.5x -> -0.19R @5x -> ~0R @10x) but never crosses into

positive net expectancy; n=14 OOS at 10x is noise.

Verdict: the published stocks-in-play ORB (Zarattini/Barbon/Aziz,

SSRN 4729284; headline 1,637% 2016-2023) does not survive net-of-cost on

2022-2026 data in any variant we can construct from our caches — matching

the independent QQQ-paper replication (break-even at ~2.2c/share slippage)

and this repo's own repeated lesson: naive/near-naive ORB is a cost

artifact; only narrow validated niches (TSLA ORB-15 + QQQ filter) survive.

The June 2026-06-05 "PF 1.38" validation of orb_live's mega-cap basket is

now DOWNGRADED to suspect pending a rerun with this battery's rigor.

Actions: both timers disabled; genome RETIRED (never traded); code,

scanner, rehearsal tool and batteries kept as artifacts. The 9-check

auditor keeps watching everything that IS live.

Do-not-retry: ORB on high-beta in-play names with ANY of the six

tested configs. REOPEN CONDITIONS (specific): (a) true cross-sectional

top-20-by-RVOL daily selection across the WHOLE market — requires

market-wide intraday history we do not have free (this is the honest

data gate; ~\$29-199/mo tiers discussed 2026-08-19), tested with this

battery's rigor incl. same-bar stop fills; or (b) extreme-RVOL-only

(>=10x) with years more sample than our caches hold. The dress-rehearsal

discipline (replay before live) is now MANDATORY for every new runner.

2026-08-24 — Parallel track: QQQ intraday momentum ("noise area") — NO BIRTH

While the stocks-in-play download runs, tested the other famous Concretum-

family strategy on our cached QQQ 5-min (2021-05..2026-05, 1,246 days):

noise bands per 5-min bucket (trailing-14d |move-from-open|, gap-aware

anchors), stop-and-reverse breakouts, two exit styles, EOD flat.

Artifact: lab/memory/experiments/qqq_intraday_momentum_battery.{py,json}.

  • band-trail @1bp/side: IS Sharpe 0.35 → OOS 0.01 (dead flat, PF 1.00)
  • vwap-trail @1bp/side: IS 0.33 → OOS -0.35
  • at 3bp/side everything is deeply negative (Sharpe -1.2 to -2.2)
  • avg trade ≈ +0.6bp GROSS — the per-trade edge is smaller than any

realistic friction at 2+ round-trips/day.

Same verdict shape as the ORB-QQQ replication literature: the published

Sharpe 1.5+ lives in frictionless fills and earlier regimes. NO BIRTH.

Do-not-retry: noise-area intraday momentum on QQQ at 5-min granularity

with band or VWAP trailing, any cost >= 1bp. Reopen only with (a) 1-min

granularity + limit-order fill modeling that PROVES sub-bp effective

costs, or (b) a regime gate with its own honest N-trials accounting.

Also this session: sample-first e2e validation (owner's process demand)

is now the house pattern — the miniature caught nothing new but PROVED

the machinery in 2.5 min; the full-data battery inherits verified code.

2026-08-24 — Alpha miner v1: the "guaranteed formula" lesson, live

Owner: "create a formula that guarantees money." Built the honest version:

an exhaustive pattern miner (5,220 hypotheses: entry-time x hold x side x

condition on QQQ 5-min, 2021-23 discovery / 2024-26 sealed validation,

Bonferroni t>=4.43). Artifact: qqq_pattern_miner_v1.{py,json}.

  • FIRST RUN found 12 "survivors" with validation t-stats of 8-10 and

12-20bps/trade — a money machine. It was a LOOK-AHEAD LEAK: the

first-30-min condition was gating entries placed BEFORE 10:00. The

miner's information-availability map now hard-blocks conditions at

bars where they aren't yet knowable. THIS is how every "guaranteed

formula" in the wild is born — the future leaking into the past.

  • Leak sealed: 0 of 5,220 hypotheses survive on QQQ. The most efficient

instrument on earth holds no simple free lunch. Expected; now proven

on our own data.

Standing conclusion for the record: guaranteed daily profit does not

exist at our scale; the realistic asymptote is a PORTFOLIO of many small

uncorrelated edges (breadth -> high Sharpe -> most days green). The

miner's real hunting ground is NOT mega-liquid indices — it is the

5,717-symbol minute-level dataset downloading now, where capacity-

constrained edges (too small for institutions) can persist. Miner v2

targets cross-sectional patterns there once the SIP battery completes.

2026-08-24 — THE STOCKS-IN-PLAY VERDICT: dead on modern data, all 16 configs

The full-fidelity test the $29 data plan was bought for is complete:

TRUE daily top-20 by opening relative volume across the ENTIRE US market

(5,698 symbols, 3.22M symbol-day heads, coverage-gated), 41,709 selected

symbol-days, ~20k trades per config, 2021-08..2026-08, same-bar stop

fills, IS/OOS split at 2025. Artifact: sip_validation_battery.json.

ALL 16 configurations negative, IS and OOS consistent (not regime luck):

  • Best: close_through + OR-opposite stop @5bps: -0.126R IS / -0.094R OOS

(PF 0.73/0.78, win 43%). At 10bps: -0.21R OOS.

  • The PAPER'S OWN stop (0.1x ATR14d): catastrophic, -1.5 to -3.3R —

a stop that tight turns fixed costs into multiples of R and gets

noise-stopped 95% of the time. The 1,637% headline (2016-2023,

frictionless) does not exist on 2021-2026 with honest fills.

  • BOTH selection variants equally dead (9:35 RVOL median-rank20 4.7x;

premarket variant 24.7x) -> the $199 real-time question is MOOT.

Do-not-retry: stocks-in-play ORB, any of these 16 configs, any selection

variant. The $29 bought total clarity on the biggest remaining published

candidate — cheap at the price.

What survives the night: the DATASET and the INFRastructure. 3.2M

symbol-day heads + 3.1M bars of the market's 41k highest-information

days + 12-way parallel fetchers + the leak-proof miner pattern. Miner v2

(cross-sectional, in-play days, N-trials discipline) is now backlog #0 —

the -0.09R best config is close enough to zero that SUBSETS may be

positive, but only disciplined mining may say so, never cherry-picking.

2026-08-24 — THE CONTROL THAT BEAT THE STRATEGY: in-play first-bar momentum

Owner challenged "is the system broken?" → positive controls proved the

machinery (oracle +3.24%/day, 99% win — the sim measures profit fine;

the ORB edge exists gross at +0.013R — real but 10x thinner than

frictions). And control C changed everything: dropping the ORB entry AND

the stop — just following the FIRST-BAR DIRECTION on the day's top-20

in-play names from 09:35 to the close — earns +23.6bps/day gross.

The breakout machinery was DESTROYING the selection edge, exactly as the

replication literature hinted ("selection does the work, not the rule").

Rigorous decomposition (sip_firstbar_momentum.py, 24,798 trades):

  • LONG-only is the whole edge; shorts are dead (and carry borrow):

@10bps RT: IS +28bps/trade Sharpe 1.38 | OOS +39bps Sharpe 2.02

@20bps RT: OOS +29bps, Sharpe 1.51. OOS > IS (strengthening).

  • LIVE-implementable variant (selection by real 09:30-35 volume, visible

at 09:50 on 15-min-delayed data; ENTER 09:50 close, EXIT 15:55):

OOS +33bps/trade, Sharpe 1.89, maxDD -18% @10bps; Sharpe 1.33 @20bps.

The $29 tier suffices FOREVER for this strategy. Premarket-selection

variant is weaker (OOS 0.90) — first-bar volume is the signal.

  • Gates: OOS n=4,175, expectancy positive at honest costs, maxDD<20% —

passes everything. Data-mining accounting: this was ONE control (not a

search), decomposed along pre-standard axes; OOS-alone t≈2.6.

Decision: birth as SHADOW first (fills on gappers are the residual

unknown; at ~10 signals/day the live-evidence gate (>=30 trades, net>0,

PF>=1.15) resolves within a WEEK, risking zero). Runner design: one

entry window (09:50), one exit window (15:55), no intraday management —

operationally the simplest strategy we run. Name: g_inplay_firstbar_momo.

2026-08-24 (morning) — Researcher billing audit (owner: "no tokens consumed?")

Verified end to end: the researcher RUNS (Sun 8/23 session: 4 min, log +

pushed commit 4d1ad67) and has ALWAYS billed the metered API key — the

.env contained the same sk-ant-api key under BOTH ANTHROPIC_API_KEY and

a misnamed CLAUDE_CODE_OAUTH_TOKEN (setup-era leftover, now deleted).

Console shows ~nothing because Haiku sessions are tiny (~4 min, likely

<$1 each; look under the key's usage on Sun/Wed ~23:30 UTC). Proof-of-

work is verifiable without the console: logs/organism_researcher.log +

git commits authored "TraderVex Organism Researcher". Also verified:

selection DID process Friday (+$515 reward, cell back to $2,637 —

entries are stamped by trading day; the timer sleeps weekend mornings by

design). Backlog updated: the paid Polygon key unblocks the researcher's

own data fetches.

2026-08-24 (close) — Nursery day one: scoring bug caught + fixed, TRUE score booked

Day-one shadow exits all printed entry==exit (-$1.00 x20): Polygon aggs

returns EMPTY for sort=desc, so _last_price silently fell back to entry.

Fixed (ascending fetch, take last bar) and the day RESCORED with true

15:55 closes: -$104.21 net, 7W/13L (-0.52% of the $20k shadow book)

— an ordinary loser, inside the backtest distribution. Book corrected.

Rest of the day: ORB's netting-guard unblock paid off same-day — its

short stop (armed 09:45, the same order the broker rejected Friday)

FILLED at 14:45 @352.45 and flattened +$3.20, its first win. mp: 181

clean passes, no qualifying setup on a -3% gap day (selective, not

broken). MACD's shadow life began (virtual 2.86-share long at 15:50).

Also fixed: a state-cleanup race (runner tick overwrote the morning

pop — stop-timer-edit-restart is the safe pattern) and the auditor's

chain check re-pointed from the retired orb_inplay to the live momo

chain. Audit after fixes: 1 finding, the benign mid-deploy alerter blip.

2026-08-24 (night) — Owner escalation: the three answers + two structural changes

"Why are we losing?" — split by era: crash-incident era (first 3 days,

runner SIGABRT/orphan/inversion): -$2,634. Since the guards went in on

8/20: **+$396 over 8 closed trades — net profitable four straight

sessions.** The losses were infrastructure, not strategy, and that

infrastructure failure class is dead (reconcile-every-tick + auditor).

"Why bugs?" — honest: the price/fill-truth class bit FOUR times (mp

signal prices, PEAD stale cache, .endswith('filled'), sort=desc). Class-

level kill shipped: harness/marketdata.py is now the ONE tested source of

price truth (4 regression tests pin each historical bug shape); momo

migrated; auditor gained check_shadow_sanity (a scored shadow day with

zero win-dollars = broken marks tripwire). 10 checks now.

"Why small trades?" — cells were fear-sized for a PAPER account whose

job is evidence velocity. New sizing (env, guards scale with it):

EMBRYO $2k→$8k, PAPER $5k→$20k, SCALED $15k→$40k, risk 1%→2%,

punishment floor kept at $2k so selection still bites. mp's cell

RESTORED to $10k — its punishments were my infra losses, not its signal

(signal-only record since guards: +$437/4 days). ORB → $8k.

2026-08-25 — The Real-Money Gate (pre-registered)

Owner: "how do I know things run as intended once I put real money in?"

Answer written as a standing contract: docs/REAL_MONEY_GATE.md — 8

criteria across operational integrity (30 incident-free days, ≥95% clean

audits, a kill-switch drill), edge evidence (60+ live trades net-positive;

portfolio-positive window), and blast-radius architecture (broker-level

hard caps, LIVE owner alerting, 5% start size). The incident-free clock

started today. Also answered: the VPS is 2% utilized (load 0.04/2 cores,

1.3/7.8GB) — the bugs were logic and API-contract defects, never

resources; do not spend on hardware.

2026-08-25 (night) — Friendly fire post-mortem: two safety systems collided

Owner's "check what happened today" unpacked into the best post-mortem

yet. The 16:45 audit flagged an unclaimed 22-share TSLA short. Forensics:

ORB's stop filled 09:45:09; its runner detects fills on the NEXT 5-min

tick (09:50); at 09:46 mp's broker-truth reconcile — which cannot see

sibling state — flattened the "unowned" 22 shares. ORB then carried a

GHOST long all day and its 15:50 hold-to-close "exit" sell OPENED a real

short, unmanaged overnight (contained: OPG close queued for the 8/26

open; ~+\$49 unrealized at the time).

Fixes shipped tonight: (1) mp's reconcile is now SIBLING-AWARE (counts

organism positions AND armed pending stops — a stop may have just filled

before its runner's next tick); (2) fills_reconcile is BIDIRECTIONAL

(broker fills lacking ledger rows now alarm — today's ghost would have

been caught at 12:30 next day at latest); (3) two fiction ledger rows

corrected to broker truth (the "exit -\$20.46" was actually the short's

ENTER; the 09:46 reconcile exit re-attributed to ORB at -\$2.20).

Also learned: my "empty ledger today" scare was MY OWN query using a UTC

CURRENT_DATE boundary after 8pm ET — the exact class fixed on the site

on 8/20. The ledger was complete all along. And noted for the backlog:

mp sizes off ACCOUNT equity (280 shares = 0.5% x \$98k), ignoring its

selection cell — the capital-as-reward signal doesn't reach mp's sizing.

REAL_MONEY_GATE: A1 incident clock honestly RESET; restarts 2026-08-26.

Nursery day two: +\$24.84 (first green day), cumulative 40 trades

-\$79.37 — needs net>0 for promotion; days three-four decide.

2026-08-26 — Selection killed the discovery after 2 days; re-registered in the right unit

Nightly selection RETIRED g_inplay_firstbar_momo at 00:20 UTC by the

pre-registered rule (>=40 shadow trades, PF<1 — it stood at 40 legs, PF

0.73). The rule fired correctly but measured the wrong unit: this is a

~20-leg-per-day BASKET, so "40 trades" was two days of data on a strategy

whose backtest has month-long drawdowns. Two bugs surfaced with it: the

momo timers kept trading a RETIRED genome (leak — runner now checks its

population stage and no-ops when RETIRED/SUSPENDED), and day-level stats

didn't exist at all.

PRE-REGISTERED (before any new data): basket shadows are judged in DAYS.

Kill at 15 trading days with PF<1; promote at 20 days with net>0 and

PF>=1.15; 120-day age cap unchanged. The cumulative book is KEPT — no

clean slate (60 legs, 3 days, net -$111.28, PF 0.76). Day 15 verdict is

~2026-09-16. Coded in selection.py (SHADOW_BASKET_* constants), regression

test pins all three paths (survive/kill/promote).

Also today, the 8/25 orphan resolved BETTER than designed: the OPG close

partially filled 6/22 then expired, and mp's now-sibling-aware reconcile

correctly mopped up the remaining -16 at 09:33 (it also correctly did NOT

touch ORB's fresh 09:45 entry today — yesterday's fix passed its first

live test). The short netted +$166.56. And the new BIDIRECTIONAL audit

caught its first real bug within hours: PEAD's entry-recording had been

dead since 8/19 (order_id="" is silently skipped by record_trade) AND

booked signal prices 3.8% from real fills — fixed to broker truth

(order id + polled fill), INTU 13sh ENTER backfilled at 344.67.

2026-08-26 (close) — Autopsy: critical fixes deployed; baseline population holding

Autopsy (day 10 post-guards): ORB executed 4 trades (one -$43.28 loss + partial

position on gap-down entry, now 22 shares held into close). Morning pullback: 0

signals (EOD holds not triggered). MACD shadow: 0 signals, accumulating cell toward

whole-share. Momo shadow: resurrected at 18:54 ET after code fix (old per-leg gating

killed it at 40 legs / 2 days; new pre-registered RULE: DAYS, not LEGS). All tickers

have open positions overnight (none at risk; circuit breaker arms on portfolio loss).

Hypotheses tested: three critical bugs (entry-recording, friendly-fire collision,

basket gating unit) fixed in d59f04a (18:54 ET). Entry-recording: PEAD was caching

signal prices 3.8% stale since 8/19 (order_id="" was silently skipped); now uses

broker-truth fill + polled order_id (live INTU fill backfilled 344.67). Stage guard:

runner checks genome.stage on every tick — RETIRED/SUSPENDED genomes no-op (prevents

momo timer leak). Day-level gating: SHADOW_BASKET_* constants in selection.py now

judge basket genomes by trading DAYS (kill at 15 days PF<1, promote at 20 days

net>0 PF>=1.15), not leg count — pre-registered before any new data. All 45 tests

passing (including new test_shadow_basket_genome_judged_in_days_not_legs).

Actions: none (autopsy only). Bugs are production fixes, not hypotheses. Code is

live and tested.

Do-not-retry: per-leg gating on basket shadows — the new unit is trading days.

The momo strategy's v1 kill was correct (PF 0.73) but by the wrong metric; v2 audition

(now at 3 days with cumulative net -$111.28, PF 0.76) will re-score by day 15.

2026-08-26 (night) — mp cut to its cell; Polygon endgame started

Owner approved the recommendation and added a constraint: the Polygon

subscription will NOT be renewed — under a month of paid data left.

Shipped: (1) morning_pullback now sizes off its ORGANISM CELL ($5,625 —

selection had already punished it there) instead of account equity; it

was trading 17x its allocation (280-share entries = the -$2.2k bleed).

Verified live on VPS: cell-capped equity = 5625. Tomorrow it trades ~16

shares. (2) Whole-market 5-min harvest launched on the Mac (5,717

symbols, 5yr, extended hours, zstd parquet, ~18GB est) — the durable

research asset that outlives the subscription. Sample-validated first

(5 syms, spans + premarket bars correct). (3) Post-Polygon survival plan

for the momo basket: select now logs SIP-vs-IEX first-bar volume daily

for the top-100 RVOL zone; if per-symbol ratios hold, RVOL ports to

IEX-only (ratio cancels feed share) and the strategy outlives the key.

Backlog re-ordered under a hard deadline: alpha miner v2 must run on the

min5 archive THIS MONTH.

2026-08-27 — The $0 exits explained: the guard fought an armed stop

Owner asked why tsla_morning_pullback keeps exiting on $0 trades. Answer:

four of today's rows were the reconcile guard CHURNING against ORB's

armed short-side stop. My 8/25 sibling-awareness counted pending stops

as signed inventory — but an armed-UNFILLED sell-stop claims nothing, so

a flat account looked +13 stray; the guard sold phantom shares, ORB's

5-min cancel/re-arm cycle flickered the claim, and the guard oscillated

sell/buy/sell/buy 09:50-10:06 (real churn -$9.27, booked as $0.00 rows

at last-close prices — double fiction, now corrected to broker fills).

Fix: pendings only WIDEN the explainable range [lo, hi] — armed-unfilled

claims nothing, just-filled claims full qty, both must be legal; only

inventory OUTSIDE the range is unmanaged (_claim_range + 3 regression

tests pinning 8/18 orphan / 8/25 just-filled / 8/27 armed-stop cases).

Reconcile flattens now book the ACTUAL fill with realized NULL — 0.00

reads as breakeven and hid the churn.

Sweep of everything else: 12:30 audit ALL CLEAN; PEAD's fixed entry

recording proved live (CRM + HPQ booked with real order ids at 09:40);

chandelier correctly stops weekend's AVGO/KO and leaves PEAD's alone;

momo day 4 running (20 shadows) + first IEX-vs-SIP compare row written;

weekend banked STT +$115.15; core crossed its $100k start for the first

time since the epoch reset. Site position-label bug fixed: a closed

round-trip (mp) outranked ORB's open position for the TSLA label.

The min5 harvest finished on the Mac: 5,717 symbols, 291M rows, 5.6GB.

The full intraday research archive now outlives the Polygon key.

2026-08-28 — Miner v2 round 1: the control caught a REAL spec bug in the live runner

Alpha miner v2 ran the full 564-config sweep on the new min5 panel

(2.9M symbol-days after filters). The pre-registered validity rule fired:

the in-play POSITIVE CONTROL did not reproduce (+1.5bps vs the expected

+33) → the whole family verdict was declared INVALID, no survivor

believed. Diagnosis found the cause and it is the best outcome of the

night: CONSTRUCTION ORDER. The validated discovery ranks top-20 by rvol

across ALL names then longs the first-bar-up subset (~10/day, the

extreme tail); ranking among ups only dilutes it to ~0bps. Exact

replication on the new panel CONFIRMS the discovery: OOS LONG

+26.1bps/trade, Sharpe 1.55 (IS +19.0/1.33), shorts negative — an

independent rebuild of the dataset and harness reproducing the edge.

The kicker: the LIVE shadow runner had the diluted construction (gate

inside the scoring loop) — the audition has been trading the WEAK

variant, which is consistent with its ~flat live book (80 legs, -$41).

Runner fixed to rank-then-gate (~10 longs/day now, not 20), deployed;

the day-gate audition clock CONTINUES (spec fix noted at day 5 — this is

implementing the registered strategy correctly, not moving its goal).

Miner family relaunched with gates applied after ranking; corrected

results land tonight.

Do-not-retry addition: in cross-sectional tail strategies, GATE AFTER

RANK — pre-gating changes which names constitute the tail and silently

destroys (or manufactures) the edge. Any config family must carry a

known-edge positive control or its verdicts are void.

2026-08-28 (late) — Round 3 + cohort decomposition: the discovery is a

low-price-cohort effect; liquid version has NO edge

Miner round 3 (share-volume universe, profit-only survivors): ZERO

survivors in 236 configs, and the control STILL failed inside the miner

while reproducing in exact replication. The last diff was the price

screen — and pulling that thread decomposed the discovery:

same-day close >=$5 (original): OOS +26.1bps, Sharpe 1.55

prior-day close >=$5: OOS +10.1bps, Sharpe 0.49

prior-day close >=$10: OOS +5.2bps, Sharpe 0.18

Removing ~120 of 8,500 IS trades — yesterday-sub-$5 names gapping up

through the screen — deletes two-thirds of the edge; those trades

average ~+8% each. The "edge" is CONCENTRATED in cheap gapper rockets,

exactly the cohort where a flat 10bps cost model is fiction (real

spreads 30-200bps) and where the Ross Cameron backtest died for the

same reason. The $10+ liquid version is flat. Same house lesson, fourth

time: apparent intraday edges live where the cost model is weakest.

Posture: NOT killing the audition by hand — the shadow nursery exists

precisely to let LIVE fills vote on whether the cheap-cohort edge

survives reality (marks are real last-trade prints; the runner trades

the corrected rank-then-gate construction from Monday; MIN_PRICE=5 so

the live test includes the cohort in question). The pre-registered

day-15 gate decides ~09/16. Expectation, stated now for the record:

kill. If it survives live, that IS the evidence backtests can't give.

Do-not-retry: any cross-sectional result must be decomposed by PRICE

COHORT before belief — report <$5-prior, $5-10, >$10 separately. Added

to the researcher's discipline via the backlog. Miner v2 final verdict:

no profitable survivor in the liquid universe across 236 configs — the

free-intraday-edge well keeps coming up dry in liquid names; the

researcher's Sunday session should attack different structures

(overnight, multi-day, event-driven), not re-mine this family.

2026-08-30 — Autopsy: quiet Friday explained (long-only ORB, no bug); overnight-hold SPY/QQQ tested and killed

**Autopsy (since watermark 2026-08-28, one weekend gap, no missed trading

days):** Friday 8/28 was the only trading day since the last entry. Both

funded genomes (tsla_morning_pullback PAPER $3,164 cell, g_tsla_orb15_holdeod

EMBRYO $2,531 cell) fired zero actions all day — checked this is NOT a bug.

TSLA trended down cleanly all session (open 357.72 -> low 345.23 at 14:55,

close 348.75, a real -2.5% trend day) but `FiveMinORB.signals()` (the

generic strategy class backing orb15) only detects `broke_above` — it is

long-only by construction (the short leg is "documented in the thesis but

the engine consumes one direction per registry entry", per its own

docstring). Price never closed back above the 09:30 bar's high, so

correctly zero entries; this is the known/backlogged limitation (backlog

item 0a, ORB short side), not a new bug. No DB trades logged 8/28-8/30

(weekend, no crypto genomes in the population). Nightly selection continued

its scheduled cell punishments through 8/28 (both funded genomes still

bleeding cell on negative fitness — g_tsla_orb15_holdeod down to $2,531

from $8,000 over the week, tsla_morning_pullback down to $3,164 from

$10,000); no deaths, no promotions. Population unchanged: 5 genomes, 2

funded (PAPER/EMBRYO), 2 SHADOW auditions (g_tsla_macd_trend,

g_inplay_firstbar_momo — both mid-audition, day-gates not due yet), 1

RETIRED (orb_inplay).

Hypotheses tested: backlog item #2, overnight-hold SPY/QQQ (buy close,

sell open, sma200 regime toggle) — the documented-but-never-coded Pine

strategy (`pine_strategies/02_overnight_drift_spy`, ranked #5 in the old

TOP_10 report). Daily bars, SIP feed via Alpaca (2016-01-04..2026-08-28,

2,679 sessions — cost-free to refresh after Polygon lapses). Full code +

numbers: `lab/memory/experiments/overnight_drift_spy_qqq.py` /

`_results.json`.

  • Positive control (GROSS, no cost): confirms the literature. SPY overnight

Sharpe 0.71 vs intraday 0.46; QQQ overnight 0.90 vs intraday 0.46. The

known relationship (overnight >> intraday for index ETFs) reproduces

cleanly on this sample — the effect is real, gross.

  • Net of the house's 5bps/side cost floor (10bps round-trip, one round-trip

per session = 252/yr): DEAD across all 4 configs tested (SPY/QQQ x

unfiltered/sma200-regime), IS (2016-2021) and OOS (2022-2026) alike.

OOS Sharpe -0.43 to -2.02, PF 0.70-0.98, OOS t-stat p<0.05 in 3 of 4

(QQQ+sma200 OOS p=0.21, still net-negative). Daily-frequency trading

means 252 round-trips/year at the cost floor overwhelms a ~1-3bps/day

gross edge — the same shape as every prior intraday-edge death here,

just at daily instead of 5-min granularity.

  • Sensitivity at a deliberately generous 4bps round-trip (below the stated

floor, disclosed as optimistic, not used for the verdict): only

QQQ+sma200 turns marginally positive and holds sign IS->OOS (Sharpe

0.62/PF 1.12 -> Sharpe 0.63/PF 1.12) — a real but sub-1.15 signal built

on a cost assumption the house floor explicitly rules out. Not a

qualifying SHADOW narrow-miss (rule 3b judges against the stated floor,

not an optimistic one); everything else flips sign or gets worse OOS.

Actions: none — no-op session by the contract's own definition (rule 4a/b

n/a, no births qualify). Backlog item #2 marked DEAD with date + verdict;

this satisfies the no-op bar (a real backtest attempt on the top untested

item, not just autopsy).

Do-not-retry: overnight buy-close/sell-open on SPY/QQQ, with or without

a 200sma regime filter, at the house's 5bps/side cost floor — decisively

net-negative IS and OOS, 2016-2026. Reopen only with a fundamentally

different cost story (e.g., a specific broker's demonstrated MOC/MOO fill

quality at sub-2bps/side, which would need live evidence, not another

backtest) or a different holding structure (e.g., overnight held only

across specific catalysts, not every session — untested, would be a new

hypothesis, not a rerun of this one).

2026-08-30 (night) — The swarm: 2,068 live auditions, because two was never an organism

Owner, correctly: "Organism isn't an organism at all... We need to be

trading thousands of strategies, not only two." The variation half of

evolution was starved and the fix is breadth at zero cost. Built + LIVE

tonight: the SHADOW SWARM — 2,068 strategy variants (momentum follow +

fade, gap follow + fade, ORB-15 long + short, overnight holds; 3

thresholds x entry/exit windows) across 44 liquid names + ETFs, every

one a zero-capital book marked on live checkpoint prices (one batched

free-IEX request per tick, 5 ticks/day, Mon-Fri timer). Same day-based

gates as the nursery; nightly digest ranks all books and pre-screens

gate candidates (>=10 days, net>0, PF>=1.2) for the researcher, whose

contract now requires: consume the digest, verify candidates on the SIP

panel against the FAMILY-wide Bonferroni bar (a top pick of 2,068 must

beat 2,068-way selection bias, the lesson of every dead battery),

keep the nursery at 4, and mine the live ledger for one mutation

proposal per session. Universe is all >=$10 liquid so the 10bps haircut

respects the cohort law.

Also answered honestly for the record: the old "QQQ options winner" was

research_s8 — ONE 26x lottery fill (+$10.5k) masking a bleeding book;

options need a paid feed to revive. The TSLA-multimillionaire story is

concentration + leverage + survivorship, not a system. Two smoke bugs

fixed before first tick: Alpaca 400s on %2C-encoded symbol commas, and

date.today() on a UTC box is TOMORROW after 8pm ET (future-dated bars

request = 400) — the third member of the UTC-date bug class, now in a

comment where it bit.

2026-08-31 (midday) — wash-trade collision class, noted not operated

mp's long entry was rejected 3 ticks running (Alpaca 40310000 "opposite

side market/stop order exists") because ORB's armed stop sits on the

same netted research account. State stayed clean — a missed entry, not

an incident. Structural: two strategies on one symbol + one account

deadlock whenever one arms a stop opposite the other's signal. Waiting

on selection: mp's cell is down to $3,164 and shrinking; if it dies the

conflict dissolves, if it recovers the pair gets separated. Not

mid-day surgery. Swarm ticks 1-3 clean (44/44 syms each).

2026-08-31 (night) — Swarm priors: 5 years says the whole family is cost-bound

Scored ALL 2,068 swarm configs on their own production resolution code

against 5 years of the archive (1,251 reconstructed days, 2s runtime —

single-symbol rules are cheap). Verdict: ZERO strong priors at the

family-wide bar (t>=4.27). Template median OOS bps: overnight -3.5,

momo -8.2, gap -10.0, orb15 -10.0, fade -11.8 — clustered around

exactly -10bps = the cost haircut. Translation: gross edges ~0, cost

eats everything; the fifth liquid-intraday family to score this way.

The harness itself is validated (prod code ran the history cleanly);

the SEARCH SPACE is the dead part.

The one directional signal: overnight is least-bad (-3.5 = ~+6.5 gross)

— cost-per-day is the binding constraint, so LONGER HOLDS amortize it

(5-day hold = 2bps/day cost vs 10). Next expansion is a MULTI-DAY

family (N-day momentum/reversal/trend on daily features, priors

computed FIRST on the daily panel, only positive-prior families go

live) — priors-first expansion, the reverse of round one. Live swarm

stays running as the control group + harness proof.

swarm_priors.csv shipped to the VPS for Wednesday's researcher session.

2026-09-01 — Two silent recording bugs; the ledger now self-heals nightly

The bidirectional audit (built 8/25) earned its keep twice today:

1. Partial fills booked short. The core engine polls 15s for a

terminal order status and records whatever filled by then. MS filled

17 of 44 inside that window and 27 more 33s later — the ledger said

17 @ 211.57, the broker said 44 @ 211.71. TECL's 48 shares filled in

FOUR slices and got no row at all.

2. Stop-triggered exits never recorded. Protective stops armed by

the chandelier maintainer fire with no engine involvement, so nothing

books them: SSO 138sh (-$259.52) and SPXL 33sh (-$386.31) sold at

today's open, both invisible in P&L until now.

Fix: `scripts/fill_reconcile_run.py` + timer at 16:20 ET (before the

16:45 audit, so findings clear the same day). It groups every broker

FILL activity by order_id (VWAP across slices), corrects rows that

disagree, inserts rows that are missing, and stamps realized P&L on

inserted exits from the symbol's open ENTER. Idempotent; writes only on

disagreement; refuses to guess ownership (TECL was left for review and

attributed by hand from cron_stock.log evidence). Today: 14 orders

checked, 1 corrected, 2 inserted. Regression test pins the MS

aggregation case.

Also: the nightly production-data freshness unit had been FAILING every

night on SATS (delisted -> yfinance returns nothing, forever). A

permanent false alarm is worse than no alarm — it now skips symbols in

universe_delisted.json (SATS added) and exits clean at 44 fresh / 0

errors.

Not fixed, watched: mp's wash-trade collision with ORB's armed stop

(2nd day). ORB itself went SHORT today (-$10.64) — worth noting since

Sunday's autopsy called the genome long-only; its stop-entry path is

clearly two-sided in practice. Swarm day 2: 818 trades resolved, 1,148

active books, 0 gate candidates (needs 10 days).

2026-09-06 (weekly session) — ORB-15 diversification: DEAD on NVDA+AMD; both funded cells near starvation; no-op

**Autopsy (watermark 2026-09-01, 3 trading days elapsed: Tue 09-02, Wed

09-03, Thu 09-04 — Mon 09-01 traded too per the prior entry, Fri 09-05/

weekend no trading):**

  • `g_tsla_orb15_holdeod` (was EMBRYO, promoted EMBRYO→PAPER on 09-02:

10 live trades, net>0): 3 trades this week — short @353.395→356.055

(-$10.64, 09-01), short @350.4275→355.76 (-$21.33, 09-02), long

@375.125→378.615 (+$13.96, 09-03). Net -$18.01. neg_streak now 13

(STARVATION_DAYS=15 kills it) — cell punished to the $2,000 floor.

Genome-level, not a bug: the resting-stop mechanism and QQQ filter fired

correctly each time; TSLA just chopped against the two shorts. This is the

known behavior of a validated-but-noisy strategy running near its floor.

  • `tsla_morning_pullback` (PAPER): 3 trades — long @378.16→380.18 (+$4.04,

09-03), short @353.17→354.5467 (-$6.88, 09-04), short @352.40→353.18

(-$3.90, 09-04). Net -$6.74. neg_streak now 10. Also at the $2,000

cell floor.

  • **Both funded genomes are 2-5 negative-fitness days from STARVATION_DAYS

(15) — the population may go from 2 funded cells to 0 within two weeks if

the streaks don't break.** Not a bug, not something to override (selection's

job), but the reason the nursery-fill question below carries real urgency:

if both die, the organism trades nothing until a promotion or a fresh birth.

  • `g_inplay_firstbar_momo` (SHADOW, basket, day-gated): 7 of 20 days toward

promotion. Cumulative wins $1,189.88 / losses $963.80, PF 1.235, net

+$226.08, day nets [-104.21, +24.84, -31.91, +69.98, -127.32, +125.14,

+269.56]. Already clears the day-20 promotion bar (net>0, PF>=1.15) with

13 days of runway left to hold it — the best-looking thing in the

population right now. No action needed; let it run to day 20.

  • `g_tsla_macd_trend` (SHADOW): still holding the single long TSLA position

opened 2026-08-24 (daily timeframe), 0 closed trades, wins/losses both

$0. 13 days in one position is plausible for a daily trend genome, not

flagged as a bug, but worth watching next session if it still hasn't

closed.

  • Swarm digest (`harness/state/swarm_digest.json`, as_of 2026-09-04):

1,657 active books, 2,068 configs, 0 gate_candidates — the >=10-active-day

bar isn't met yet (swarm went live 2026-08-30, ~4 trading days in). Nothing

to verify on the SIP panel this week; expect candidates to start appearing

~09-15.

**Hypotheses tested — backlog #1, ORB-15 on other high-beta names (the top

untested queue item, and urgent given the Polygon lapse ~09-20):** faithful

replication of the LIVE genome's exact rules (stop-at-level resting-stop

entry, QQQ day-direction confluence, OR width filter 0.8-4%, hold to the

15:50 flatten, no target) on NVDA and AMD, using 5-min bars ALREADY CACHED

from the 2026-08-23 in-play work (`harness/data/{NVDA,AMD}_5minute_2021-05-17

_2026-05-16.parquet` + the same QQQ file the TSLA battery used) — the

2026-08-23 "DEFERRED: needs fresh fetch" verdict was stale, the fetch had

already happened for an unrelated experiment. Same IS/OOS split as every

prior ORB-15 battery (IS<=2024-12-31, OOS>=2025-01-01), 5bps/side (both

names are >$10 liquid mega-caps, cohort law respected). Code + full numbers:

`lab/memory/experiments/orb15_nvda_backtest.py` + `.json`.

  • NVDA (qqq filter, the live config): IS n=120, PF 1.117, avg +0.064R, tot

+7.7R. OOS n=27, PF 0.983, avg -0.009R, tot -0.3R.

  • AMD (qqq filter): IS n=104, PF 1.117, avg +0.063R, tot +6.5R. OOS n=35,

PF 0.969, avg -0.015R, tot -0.5R.

  • Both symbols reproduce the exact IS-positive/OOS-decay shape seen across

nearly every battery this month — but on TSLA the same stop-at-level

config nets OOS PF 1.048 (positive); on NVDA/AMD it lands just under 1.0

(flat-to-negative). The edge does NOT transfer by symbol-swap.

  • Gates: OOS PF>=1.15 FAIL both (0.983, 0.969). >=100 OOS trades FAIL both

(27, 35). SHADOW narrow-miss (rule 3b) also FAILS both: OOS PF is below

1.00 (not in the [1.00,1.15) band) AND OOS is net-negative, not positive,

so the "<100 trades with positive OOS" disjunct doesn't apply either. No

data-quality caveat to cite — the cache is clean, full-history, no gaps.

Clean NO BIRTH, not a narrow miss.

Ledger mining (one mutation proposal, per contract): post the 2026-08-20/

21 ledger-bug fixes, `tsla_morning_pullback`'s LONG exits are 3-for-3

winning (+$515.28, +$12.27, +$4.04 = +$531.59, zero losses) while its SHORT

exits are 1-for-5 (+$3.21 win; -$397.51, -$12.48, -$6.88, -$3.90 losses =

net -$417.56). This week's autopsy (above) shows the identical shape in

miniature (1 long win, 2 short losses). **Proposal: if this holds up with

more data, mp should mutate to long-only.** NOT implemented this session —

8 closed legs post-fix is far below any threshold this journal has ever

acted on (the house bar is ~100 trades), and the pre-fix history is

contaminated by the crash-era ledger bug so it can't be pooled in. Flagging

for the next session with enough legs to judge, or for a dedicated backtest

of mp's entry logic split by side if the live sample is still too thin by

then.

Actions: NO BIRTH (NVDA/AMD backtest failed cleanly, see above). NO

mutation to mp (ledger signal noted, insufficient N to act — see above). NO

kills (selection's call; both funded genomes are within their neg_streak

budget, not yet at 15). Nursery unchanged at 2/4 SHADOW — the swarm has

nothing gate-worthy yet (0 candidates, digest still <10 days old) and the

top backlog hypothesis (#1) was tested honestly and failed, satisfying the

no-op bar's requirement to attempt real work rather than just autopsy.

Backlog updated: item #1 marked DEAD for NVDA/AMD with date + numbers.

Do-not-retry: ORB-15 hold-to-close (stop-at-level entry, QQQ

confluence, OR width filter, hold-to-EOD — the exact validated TSLA

config) as a direct symbol-swap onto NVDA or AMD — decisively OOS PF <1.0

on both, 2021-2026 data, faithful replication of the live rules. The TSLA

edge appears TSLA-specific, not a generic high-beta-momentum property;

reopen only with a materially different structure (different OR window,

different filter, or a genuinely different name profile — COIN/MSTR/PLTR

are crypto-correlated/differently volatile and remain untested) rather

than another flat symbol substitution.

Tone: one clean, decisive no-op this week — the ORB-15 diversification

hypothesis was live, testable, and worth the full session; it died fairly,

which is real information (the TSLA edge is narrower than hoped). The

sharper story is structural, not this week's P&L: both funded genomes sit

at the $2,000 cell floor with neg_streaks of 10 and 13 against a 15-day

starvation clock, while the shadow nursery's basket genome (firstbar_momo,

PF 1.235 at day 7/20) is quietly the best performer in the population.

Next session: check whether either funded genome starved or recovered,

whether firstbar_momo reaches its day-20 gate, and whether the swarm

digest has produced its first gate_candidates (~09-15 earliest).

2026-09-09 (weekly session, catch-up) — ORB15 starved to death (fair, not a bug); reversal-after-high-RVOL born SHADOW; mp is now the ONLY funded cell

**Autopsy (watermark 2026-09-06; trading days since: Fri 09-05, Mon 09-07

Labor Day CLOSED all day confirmed by `organism_runner.log` ticking

00:00-23:55 with `actions=0` every 5 min, Tue 09-08, Wed 09-09 partial):**

  • `g_tsla_orb15_holdeod` DIED 2026-09-08 — `[org-select] death

g_tsla_orb15_holdeod starvation(15d fitness<0)`, the exact risk this

journal flagged last session. Full autopsy appended to the

selection-written death record (`lab/memory/experiments/

g_tsla_orb15_holdeod_2026-09-08.json`, `lesson` field): raw dollars were

POSITIVE over its life (21 fills, net +$128.38) but the cell was

punished to the $2,000 floor by 08-28 from early-August losses that

predate the 08-15 stop-at-level mutation; at the floor, fixed 4-5-share

size means even good trades move the EWMA (10-day halflife) too slowly

to escape a starvation clock once several flat days accumulate — 6 of

its last 9 trading days had ZERO trades. Log evidence for one of those

flat days (09-03): ~50 consecutive REJECTED stop-sell orders because

TSLA gapped through the OR-low re-arm level and kept falling, so the

genome's static (non-repricing) resting stop kept quoting a price

already on the wrong side of market — a real missed short, but a design

limitation of static OR-level stops, not a coding bug, and it cost

nothing here (a flat day, not a losing one). **Verdict: fair selection

working as designed, not a mechanical failure — the entry-style

mutation from 08-15 is not refuted, the genome died of thin trade

frequency at a starved cell size.** Do not re-fund without new evidence

or a fix to the cell-floor-bootstrap problem (an open

selection-mechanism question, flagged, not solved this session).

  • **`tsla_morning_pullback` (PAPER) is now the population's ONLY funded

cell.** neg_streak=12 (starvation at 15), fitness -0.0168. Two new legs

today (09-09): long 373.02→369.7567 (-$16.32), short 367.33→368.9525

(-$8.11) — both losses. **This updates last session's provisional

long-only-mutation observation in the WRONG direction**: post-guards

(since 08-24) longs are now 08-27 +12.27, 09-03 +4.04, 09-09 -16.32 = 2W

1L net -$0.01 (was 3W/0L); shorts are 08-25 -397.51(oversized,

pre-sizing-fix), 08-27 -12.48/+3.21, 09-04 -6.88/-3.90, 09-09 -8.11 = 1W

5L net -$425.67 (or -$28.16 excluding the oversized 08-25 leg). The

short side is still the weaker side, but the long side is no longer a

clean 3-for-3 — the apparent edge was noise at N=8, exactly why last

session declined to act on it. STILL not enough legs (12 post-guards)

to mutate; NO ACTION, but flagging loudly: if mp starves too (2-3

more negative days at this rate), the organism trades ZERO capital

until a SHADOW promotion. This is the single biggest structural risk

carried into next week.

  • `g_inplay_firstbar_momo` (SHADOW) had a bad day. Day 7→8 (day 8 =

today, 09-09; 09-05 and 09-07/holiday produced no shadow fills so

didn't count as observed days): day_nets add -305.00 to what was a

clean run (+226.08 net, PF 1.235 at day 7) — cumulative now net

-$78.92, PF 0.938 (wins $1,189.88 / losses $1,268.80), 138

trades, 8/20 days toward promotion. Still far from the day-15 kill

threshold and PF<1 there requires losing PF at day>=15, so no action,

but the "best performer in the population" framing from last session

no longer holds — one bad basket day erased three days of gains, a

useful reminder of how noisy a 20-leg/day book can be day to day.

  • `g_tsla_macd_trend` (SHADOW): still 0 closed trades, same single

position opened 2026-08-24 (now 16 days), per its own note waiting for

a whole-share-affording cell refund. Not flagged as a bug, still worth

a look if it hasn't closed by next session.

  • Swarm digest (`harness/state/swarm_digest.json`, as_of 09-09): 1,734

active books, still 0 gate_candidates (max `days` observed is 7,

the >=10-day bar needs ~3 more trading sessions — expect first

candidates ~09-14/09-15).

**Hypotheses tested (top untested backlog item — the "For the Sunday

session" fresh-structure note: multi-day continuation/reversal after

high-RVOL days):** built on the survivorship-free 5yr daily panel

(`harness/data/sip/daily_panel_ohlc.parquet`, 13.5M rows, 19,730 symbols).

18-config family: RVOL threshold {2,3,5} (vs the symbol's own trailing

20-day $ volume) x hold {2,3,5} trading days x direction

{continuation, reversal}, signal known at day T's close, fill at T+1

close (no lookahead), exit T+1+K close, IS<=2024-12-31/OOS>=2025-01-01,

10bps round-trip (price>=$10, $vol20>=$2M — the correct floor for this

cohort), Bonferroni alpha=0.05/18 (critical |t|=2.99). Positive control:

gross 2-day-forward return on extreme days (rvol>=3, |ret|>=5%)

sign-adjusted for continuation is negative (-0.13%), i.e. reproduces

the well-documented short-horizon reversal-dominance effect — the harness

measures what it should. Code + full numbers:

`lab/memory/experiments/multiday_rvol_continuation.py` + `.json`.

  • CONTINUATION: decisively DEAD. 6 of 9 OOS configs clear the

family-wide Bonferroni bar in the NEGATIVE direction (t -3.08 to

-7.11, net PF 0.85-0.91) — betting WITH a high-RVOL day's direction

loses money net of cost, confirms the positive control's implied

direction. Do-not-retry.

  • **REVERSAL (fade): best config (rvol>=5, hold=5 days) lands in the

SHADOW narrow-miss band. OOS n=12,057, net PF 1.100** (in

[1.00,1.15)), avg net ret +0.302%/trade, t=1.852 — directionally

strong but alone doesn't clear the family-wide bar (need |t|>=2.99).

Per the 2026-08-28 cohort-decomposition law, checked BEFORE trusting

it: split by price cohort at rvol>=5/hold=5 — **$10-20 OOS is

NEGATIVE (n=2,045, PF 0.982, t=-0.198), $20-50 OOS PF 1.14**

(n=5,417, t=1.638), $50+ OOS PF 1.154 (n=4,595, t=1.538; the $50+

IS segment alone clears even a single-test bar at t=3.08). The edge is

NOT a cheap-stock cost artifact (the opposite failure mode of every

prior cross-sectional battery here) — it's concentrated in $20+ names,

so the live genome's price floor is raised to $20 (excludes the

negative $10-20 cohort). Realistic portfolio sim (20-concurrent cap,

no-pyramid-into-same-symbol dedup): OOS Sharpe ~0.73, PF 1.082, 404

signal-days (essentially every OOS trading day had a live signal — not

an idle-capital artifact) vs SPY buy-and-hold Sharpe 1.03 the exact

same window — underperforms doing nothing risk-adjusted, the same

concern that killed momentum rotation (2026-08-15). Judgment call: that

opportunity-cost bar was applied to a FUNDED, capital-competing birth;

this is a zero-capital SHADOW audition (rule 3b's whole point is

letting live evidence resolve a backtest this close to the gate), so it

doesn't automatically disqualify — but it's disclosed here, not buried.

Actions:

1. BORN: `g_rvol_fade_5d` (SHADOW, cell $0.0, external, module

`harness.rvol_fade_run`) — reversal-after-high-RVOL, 5-day hold,

price>=$20 floor, rvol>=5, $vol20>=$2M. Seeded via

`scripts/seed_g_rvol_fade_5d.py` (idempotent, committed). Promotion:

standard day-gated basket rule (>=20 days net>0 PF>=1.15 promotes,

>=15 days PF<1 kills, 120-day max age) — no changes needed to

`selection.py`, it already reads any genome's `organism_state.json

["shadow"][gid]` generically. 9 new unit tests

(`tests/test_rvol_fade.py`, all green) cover signal ranking, price/

liquidity/rvol floors, and a full pending→fill→age→exit lifecycle

(including a real off-by-one bug I caught IN this session: a

same-day-filled position was being aged on its own fill day because

the runner filled pending entries before aging existing ones — fixed

by reordering age-then-fill).

2. NOT wired to a systemd timer. `scripts/install_systemd_timers.py`

doesn't even contain `g_inplay_firstbar_momo`'s timers (those were

installed directly, outside the generator, confirmed via

`systemctl list-timers` showing `tradervex-inplay-momo-select/exit`

active with no matching unit files in `generated_systemd_units/`).

Activating a new always-on daily job against the live VPS is a

deploy decision, not a research one — flagging for the owner:

recommend `python3 -m harness.rvol_fade_run daily` once daily after

the close (~16:05 ET, ahead of fill-reconcile's 16:20), weekdays only.

Until then the genome sits in the population doing nothing.

3. NO mutation to mp (thin, and this week's data point WEAKENED the

long-only hypothesis rather than confirming it — see autopsy above).

4. NO kills proposed beyond selection's own (ORB, autopsied above).

5. Nursery: 3/4 SHADOW slots filled (`g_tsla_macd_trend`,

`g_inplay_firstbar_momo`, new `g_rvol_fade_5d`) — did not force a 4th

speculative birth just to fill the quota; one rigorously validated

candidate this week beats two rushed ones.

Do-not-retry: multi-day CONTINUATION after high-RVOL days (any of

rvol{2,3,5}/hold{2,3,5} trading days) on the liquid (>=$10, >=$2M/day)

universe — 6/9 OOS configs decisively negative net-of-cost, confirms

short-horizon reversal dominance rather than momentum persistence at

this granularity. Static (non-repricing) resting-stop order lifecycles

on a level-break genome when price gaps through the level before the

stop can arm (ORB15's 09-03 spam) — not fatal, but a robustness smell to

fix if any sibling genome using the same lifecycle is revived.

Tone: the predicted risk from last session materialized exactly —

ORB starved, cleanly and fairly, no bug to chase. The session's real

deliverable is the multi-day RVOL family: continuation is now closed off

for good, and reversal produced the first SHADOW birth from fresh

research (not a swarm gate-candidate) since firstbar_momo. The uncomfortable

fact to carry forward is structural, not this week's numbers: the

organism now has exactly ONE funded cell (mp, itself 3 bad days from

starvation), and the two nearest replacement candidates are a basket

genome that just had a bad day (firstbar_momo, PF dipped under 1.0) and

one born literally today with zero live evidence yet. Next session:

check whether mp starved, whether the rvol-fade timer got installed and

if so how day 1 looked, and whether firstbar_momo's PF recovers or

keeps sliding toward its day-15 kill line.

Want these trades delivered the moment they happen?

Join the waitlist — followers get every entry, exit and stop by email or SMS. Free while the record proves itself; founding pricing locked when doors open.