Preregistered note92 audit: close[t]>max(previous20 closes); hold only while signal true, next observed bar OPEN fills. 20 HOURS is a separate high-turnover horizon, not an hourly replication of 20 DAYS. Data https://runway.adityaperswal.workers.dev/data/crypto-bars Sep1 2024-Sep4 2026, full pagination. Development before Jan1 2026, diagnostic chronological holdout Jan1-Sep4 (247days). Holdout overlaps history previously inspected; not genuinely independent OOS. Prospective window in note92 remains untouched. Vectorbt1.1 all-cash per symbol, initial10000, no leverage; fees25bp + slippage5bp PER SIDE, stress50+10, zero-cost comparison. Official fee https://docs.alpaca.markets/us/docs/crypto-fees ; slippage is assumed, not measured. Training-only L15/20/30 sweep, L20 fixed before results. No stop/target overlay; not an executable venue exit rule. Baseline independently reproduced by cash/quantity ledger to <4e-13 percentage points. Return includes mark-to-market open trades; payoff metrics closed only. Missing hourly data unfilled (one shared Mar12 holdout hour); zero-volume bars mean liquidity not demonstrated. Raw/scripts/hashes in /tmp/codex-run-fYGHo5/artifacts and audit.py. Results (%): [{"phase":"development","L":15,"fee":25,"slip":5,"ret":-99.23738882491614,"dd":99.24310402840395,"N":815,"win":13.374233128834357,"avgW":0.7664334126402621,"avgL":0.8052399165590777,"open":0},{"phase":"development","L":20,"fee":25,"slip":5,"ret":-98.55651125885922,"dd":98.57668347451215,"N":691,"win":13.314037626628075,"avgW":0.7698646118877622,"avgL":0.8217619453678915,"open":0},{"phase":"development","L":30,"fee":25,"slip":5,"ret":-96.50286687714137,"dd":96.5296576019487,"N":550,"win":12.909090909090908,"avgW":0.7909306503351886,"avgL":0.8132936153465196,"open":0},{"phase":"holdout","L":20,"fee":0,"slip":0,"ret":25.382154465524877,"dd":8.614672976847205,"N":340,"win":37.64705882352941,"avgW":0.6749944099651991,"avgL":0.2957782167661166,"open":0},{"phase":"holdout","L":20,"fee":25,"slip":5,"ret":-83.69677829050927,"dd":84.07202814638315,"N":340,"win":12.058823529411764,"avgW":0.993215171638744,"avgL":0.7391586270970141,"open":0},{"phase":"holdout","L":20,"fee":50,"slip":10,"ret":-97.88016607413451,"dd":97.90395558572702,"N":340,"win":4.705882352941177,"avgW":1.609603772415301,"avgL":1.264868337962907,"open":0}]. Conclusion: reject this net implementation; positive frictionless return does not establish fee-paying edge. No inference about all momentum strategies.
Preregistered note92 audit: close[t]>max(previous20 closes); hold only while signal true, next observed bar OPEN fills. 20 DAYS; next-open entry/flat signal exit. Data https://runway.adityaperswal.workers.dev/data/crypto-bars Sep1 2024-Sep4 2026, full pagination. Development before Jan1 2026, diagnostic chronological holdout Jan1-Sep4 (247days). Holdout overlaps history previously inspected; not genuinely independent OOS. Prospective window in note92 remains untouched. Vectorbt1.1 all-cash per symbol, initial10000, no leverage; fees25bp + slippage5bp PER SIDE, stress50+10, zero-cost comparison. Official fee https://docs.alpaca.markets/us/docs/crypto-fees ; slippage is assumed, not measured. Training-only L15/20/30 sweep, L20 fixed before results. No stop/target overlay; not an executable venue exit rule. Baseline independently reproduced by cash/quantity ledger to <4e-13 percentage points. Return includes mark-to-market open trades; payoff metrics closed only. Missing hourly data unfilled (one shared Mar12 holdout hour); zero-volume bars mean liquidity not demonstrated. Raw/scripts/hashes in /tmp/codex-run-fYGHo5/artifacts and audit.py. Results (%): [{"phase":"development","L":15,"fee":25,"slip":5,"ret":-13.924659089207253,"dd":26.618388186740482,"N":40,"win":27.500000000000004,"avgW":4.334290329142209,"avgL":2.0665951732434706,"open":0},{"phase":"development","L":20,"fee":25,"slip":5,"ret":-2.825287408158092,"dd":17.319365422151844,"N":33,"win":27.27272727272727,"avgW":4.953819489941566,"avgL":1.8747134096607856,"open":0},{"phase":"development","L":30,"fee":25,"slip":5,"ret":3.1472233439251798,"dd":17.31936542215181,"N":27,"win":29.629629629629626,"avgW":5.567451810176115,"avgL":2.0534180246078213,"open":0},{"phase":"holdout","L":20,"fee":0,"slip":0,"ret":3.4241188901879105,"dd":9.066610878191039,"N":18,"win":38.88888888888889,"avgW":2.7216665330938876,"avgL":1.175115357800608,"open":1},{"phase":"holdout","L":20,"fee":25,"slip":5,"ret":-7.441465595179779,"dd":15.637425804764483,"N":18,"win":27.77777777777778,"avgW":3.1215858415895776,"avgL":1.561427356348179,"open":1},{"phase":"holdout","L":20,"fee":50,"slip":10,"ret":-17.16508600402671,"dd":21.73400631790381,"N":18,"win":27.77777777777778,"avgW":2.5094481551442414,"avgL":2.1571592234255834,"open":1}]. Conclusion: reject this net implementation; positive frictionless return does not establish fee-paying edge. No inference about all momentum strategies.
Changed-state review applying technical lesson #35; current WATCH #20 continues to supersede ADOPT #5. Premise 1: live fund memory contains no subsequent daily/hourly chronological next-bar net-cost holdout or calibrated sample/win/payoff distribution. Premise 2: primary ledger confirms only closed operator-liquidated BTC #10, zero active/pending exposure, monitor #8 done; forced exits cannot identify natural payoff edge. Premise 3: refreshed https://runway.adityaperswal.workers.dev/data/crypto-bars September 4 about 21:19 UTC returns fresh completed September 3 bars for all ten watchlist names, no pagination; BTC/UNI signal true, eight false, none execution-eligible. September 4 incomplete. Conclusion: retain $235.86 cash, no entry/exit/adjustment proposal. Validity: missing mandated validation implies zero permitted size, not negative expected return. Soundness limits: no new holdout, no verified top-volume ranking, no intraday quote or new catalyst scan; selected historical positive returns could reflect momentum but cannot cure timing/cost/selection defects. Start cash; goal repeatable net positive expectancy; binding constraint validated implementable payoff estimates. Quarter-Kelly undefined, policy allocation $0. Who benefits from premature turnover: spread recipients; first order unvalidated entry incurs costs, second order repeated turnover compounds drag, third order miscalibrated Kelly threatens remaining capital. No new backtest, Monte Carlo or rule sweep warranted in this unchanged-rule trading run. Official https://docs.alpaca.markets/us/reference/cryptobars-1 rechecked confirms hourly/daily bars and pagination; absent hourly test is an implementation gap. Existing watch output truncated before completing ten names. Tested compact identical-definition script locally with exit 0 and all ten rows visible; scheduled replacement #11 (240 minutes, 77 runs, 60s timeout), cancelled #10. Replacement is informational, never execution authorization. Next research at September 5 00:00 UTC should preregister net daily/hourly validation with prospective holdout, attainable exits and 15-minute enforcement stress.
fund cash235.86
proposed notional0
active positions0
pending orders0
watch symbols10
completed research signals2
new validated holdouts0
replacement job11
CIO status resolution: Donchian-20 downgraded to WATCH; zero executable allocation
Explicit status resolution requested by CIO: September 2 backtest #5's ADOPT verdict is superseded for all live trading by WATCH, consistent with September 4 analysis #15. Historical reported returns are retained as exploratory evidence only. Premise 1: source audit this run of /app/agent/dist/backtest/strategies.js and engine.js confirms prior-20 CLOSE breakout, same-signal-close entries, immediate flat signal otherwise, exact stop/target fills, and no fees/slippage. Premise 2: #5 reports overlapping 180/365/730-day windows and parameter sweeps, not independent chronological holdouts; no hourly validation or win/payoff sample calibration is recorded. Three overlapping windows are not three independent validations. Premise 3: live ledger has one forced BTC liquidation, no open/pending/closing lots; an exogenous exit cannot identify average natural win/loss. Premise 4: September 4 21:06 UTC primary venue data shows indicative BTC 79779.0295 vs next-close threshold 81269.4915, ETH 2453.254 vs 2515.933, SOL 101.845 vs 109.15, UNI 6.199495 vs 6.32576. September 3 completed BTC/UNI signals remain true; September 4 daily bar is incomplete. Sources https://runway.adityaperswal.workers.dev/data/crypto-bars and https://runway.adityaperswal.workers.dev/data/crypto-snapshots . Conclusion: no new entry, delayed re-entry, or queued breakout order is supported; quarter-Kelly undefined without calibrated payoffs, so allocation is $0. Strongest counterargument: positive BTC/SOL historical returns could reflect real momentum; they do not remedy selected windows or transaction-cost and timing defects. Validity: missing mandated validation implies ineligibility, not proof of negative expected return. Soundness: source behavior directly inspected and memory queried; raw old experiments unavailable, current top-volume ranking not established. Start $235.86 cash; goal positive net repeatable returns; binding constraint executable daily/hourly chronological net OOS validation with realistic exits. Official primary docs https://docs.alpaca.markets/us/reference/cryptobars-1 support Hour bars, so CLI daily-only support is not a data impossibility. Counterparties receive spreads if we trade prematurely; first order definition mismatch changes entries, second order same-close assumptions and turnover distort outcomes, third order false payoff calibration distorts size. No fresh backtest/simulation or broad catalyst research was performed because this is an unchanged-rule trading review. Job #10 remains research-only; monitor #8 is done. Remaining research includes independent holdout design, costs and slippage, measured-range exits, 15-minute enforcement and weekend stress.
proposed notional0
fund cash235.86
position cap212.77
nominal equity risk cap8.51
completed signals in four checked2
current quotes above threshold0
documented hourly holdouts0
documented independent daily holdouts0
Suspend executable status of Donchian research: signal and validation audit
Supersedes the execution eligibility of analysis #5, not its reported historical returns. Premise 1: source inspection of /app/agent/dist/backtest/strategies.js shows breakout is close[t] > maximum of prior 20 closes, returning flat immediately otherwise; it is not an intraday high breakout or a persistent Donchian channel position. Premise 2: engine.js enters on the same signal close, models exact stop/target prices and applies no fees or slippage. Premise 3: saved analysis #5 has daily parameter/window sweeps but no independent chronological holdout, hourly test, trade count, win rate or average win/loss. Conclusion: evidence cannot calibrate an executable positive edge; proposed size is zero. Valid deduction under mandate; it does not prove the strategy is unprofitable. Strongest counterargument is positive reported BTC/SOL historical returns, but selected frictionless results are insufficient. Start all cash, goal validated executable rule, binding constraint cost-adjusted daily/hourly OOS validation with next-bar fills. Exchanges/liquidity providers collect costs on false entries; first-order mismatch changes entry timing, second-order adds unmeasured turnover, third-order invalidates sizing. Current source data https://runway.adityaperswal.workers.dev/data/crypto-bars and https://runway.adityaperswal.workers.dev/data/crypto-snapshots fetched September 4 20:54 UTC. BTC and UNI had completed Sep 3 closing signals, contrary to blanket 'no signal' claims from the high-based watch; every current quote midpoint is below its current 20-completed-close threshold. Yesterday's signal does not validate a delayed entry today. Existing ten-name watchlist is not independently verified as today's top ten by volume.
proposed notional0
daily lookback20
independent OOS documented0
hourly tests documented0
latest completed signals2
current midpoints above threshold0
watchlist size10
Donchian breakout (20d) on BTC/ETH/SOL, daily bars
BacktestsadoptCrypto majors2026-09-02 14:33
Hypothesis: In a trending/volatile crypto regime, a simple long-only Donchian breakout (buy on N-day high breakout, exit on signal reversal) captures upside while avoiding most of a sustained drawdown, beating buy&hold on a risk-adjusted basis even if it lags a strong uptrend.
Method: backtest CLI, strategy=breakout, daily bars, symbols BTC/USD ETH/USD SOL/USD, windows 180d/365d/730d, lookback swept 10/15/20/30/40, stop-pct/target-pct swept 8-12%/15-25% (crypto CLI has no hourly timeframe option, so daily-only; noted as a tooling gap).
Result: 365d: BTC +8.1% vs b&h -30.7% (dd 9%), ETH -14.7% vs b&h -44.6% (dd 21%), SOL +31.4% vs b&h -52.7% (dd 9.9%). 730d: BTC +26.2% vs +30.5%, ETH +24.7% vs -5.7%, SOL +69.9% vs -26.7%. 180d (uptrend): BTC +2.9% vs +13.2%, ETH -12.2% vs +21.0% (underperforms in strong uptrends), SOL +34.6% vs +16.9%. Lookback 20-30 robust; stop/target 8-12%/15-25% barely change BTC (exits fire on signal first) but wider 25% target helps SOL (+32.5% vs +12.2% at 15% target). Currently (2026-09-02) all three are FLAT/no signal: BTC needs to clear ~81,450 (20d high, now 77,120, +5.6%), ETH needs ~2,566 (now 2,394, +7.2%), SOL needs ~110.5 (now 99.0, +11.7%) to trigger a new long.