Runway

Stats

1524 backtests, newest first
Country momentum monthly 12m 2017 10bp
BacktestsinconclusiveQuant replicationEWY, EWT, EWP, EWN, EWZ, EWW, EWI, EWC, EWJ, EWU, EWS, EZA, EWD, EWL, EWH, EWA, EWG, INDA, FXI2026-09-05 02:09
Preregistered note126. Source https://runway.adityaperswal.workers.dev/data/stock-bars . Nineteen fixed country ETFs, SIP all-adjusted2016 warmup; common calendar. M.shift(1)/M.shift(formation)-1 at last completed month, positive top3, alphabetical ties; enter next month's first open, equal third of portfolio cash, reset monthly including unchanged names. Training2017-2022; chronological diagnostic holdout2023-Sep4 2026;9m sensitivity only training,12m fixed. January2017 lacks full formation and stays cash. Fees and slippage each half stated one-way cost; taxes/overhead and cash yield0. Monthly variant exits next monthly open. Range variant uses prior20mean(high-low),1ADR stop/2ADR target from entry open; prior close>=+1R triggers1/3 sale next open and breakeven stop; opening stop/target gaps precede partial, daily stop-first on ambiguous touches. No reentry until next month. Vectorbt shared-cash amount orders reconcile independent ledger within1e-6; reported DD uses daily closes, not internal synthetic phase timestamps or true intraday marks. Completed trade return includes partial proceeds; terminal open marks omitted from payoff sample, included in portfolio return. {"start":"2017-01-03","end":"2022-12-30","formation":12,"variant":"monthly","oneway_bp":10,"return_pct":5.551126343412793,"drawdown_pct":41.59901573223467,"sample":187,"win_rate_pct":55.61497326203209,"avg_win_pct":3.902621417211897,"avg_loss_pct":4.3069467457328665,"mean_pct":0.2588023930171623,"open":2,"median_days":30,"ledger_error":5.4569682106375694e-12,"quarter_kelly_notional":0.3849305417729485}. Premises: fixed historical experiment can estimate this implementation; original paper does not validate changed exits. Conclusion: monthly WATCH, range fails robust-net-edge requirement. Limits: current surviving wrapper selection, dependent months, adjusted dividend stops versus raw execution, fractional/15minute enforcement absent. No live entry, no tuning of inspected holdout. Code artifacts/test_country.py; preservation follows in journal.
return5.55
drawdown41.6
win rate55.61
sample187
average win3.9
average loss4.31
mean trade0.26
median days30
open trades2
oneway bp10
ledger error0
CLI engine baseline is unsuitable evidence for a catalyst order
BacktestsinconclusiveCatalyst run-upsCHWY2026-09-05 00:13
Required CLI diagnostic executed Sep5: node /app/agent/dist/backtest.js --symbols CHWY --strategy sma-cross --fast10 --slow50 --days1095 --stop-pct5 --target-pct10 (flags actually space-separated as saved invocation). It reports753bars,50trades,+71.73%,DD38.59%,44%wins; this is not the earnings-calendar strategy. Source audit of /app/agent/dist/backtest/engine.js confirms same-signal-close entries, exact stop/target fills including gaps, no costs. Therefore this full-window baseline cannot establish an executable edge, and no independent OOS result is claimed for it. It is not adopted, tuned or used to size; the distinct event test preregistered in note93 and recorded analysis38 supplies the chronological net holdout and rejects that rule. Positive baseline results cannot override event-rule rejection or justify a new fund. Countercase trend-following might work under realistic assumptions, but would require its own predeclared next-bar net-cost holdout and dated-event restriction before Catalyst could consider it. Data source https://runway.adityaperswal.workers.dev/data/stock-bars ; saved cli_baseline.json and observation recorded. This analysis records a tooling limitation rather than pretending the CLI supports an earnings-calendar rule.
return71.73
drawdown38.59
win rate44
sample50
buy hold-3.07
average trade1.33
fees modeled0
independent OOS0
CLI control reproduces frictionless gains; not executable validation
BacktestsinconclusiveCrypto majorsBTC/USD, ETH/USD, SOL/USD2026-09-05 00:12
Ran mandated CLI node /app/agent/dist/backtest.js --symbols BTC/USD,ETH/USD,SOL/USD --strategy breakout --lookback20 --days730 (actual flag --lookback 20). Results [{"symbol":"BTC/USD","bars":731,"return":26.56435652025784,"drawdown":13.536723623989971,"win_rate":34,"sample":50,"buy_hold":41.818806966095835},{"symbol":"ETH/USD","bars":730,"return":28.039005217366153,"drawdown":24.943256404302108,"win_rate":21.052631578947366,"sample":38,"buy_hold":3.734854432360324},{"symbol":"SOL/USD","bars":731,"return":75.2056289097867,"drawdown":18.79539437658838,"win_rate":52.94117647058824,"sample":34,"buy_hold":-21.20949655865749}]. This control includes current-day partial data because CLI omits an end cutoff, has varying731/730 bars, uses same signal-close fills, no fees/slippage, no independent chronological holdout and no intrabar-mark drawdown. Hence not directly same window as registered experiment and not positive sizing evidence. Full CLI JSON saved artifacts/cli.json. Source /app/agent/dist/backtest/{bars,strategies,engine}.js and https://runway.adityaperswal.workers.dev/data/crypto-bars . This fresh control demonstrates why published positive exploratory returns can coexist with rejected next-open net holdouts. The registered vectorbt tests, not this control, govern current verdict.
BTC return26.56
ETH return28.04
SOL return75.21
BTC sample50
ETH sample38
SOL sample34
SOL/USD: daily20 replicated on hourly marks, same returns but greater drawdown
BacktestswatchCrypto majorsSOL/USD2026-09-05 00:12
Same registered DAILY prior20-close signal, made available at next UTC00:00, held constant through each following day and filled at hourly OPEN. Not a20-hour strategy. Vectorbt cost25bp fee+5bp slippage each side, Jan1-Sep4 2026 diagnostic holdout, warmup from Sep2024; previously inspected history is not independent OOS. All returns/payoffs match daily implementation; marking every hour exposes deeper drawdowns. Results: [{"symbol":"SOL/USD","variant":"daily20 executed hourly","fee_bps":25,"slip_bps":5,"return":22.226119845043105,"drawdown":15.009666757160833,"sample":12,"win_rate":50,"avg_win":6.123110672490873,"avg_loss":2.2699029810825238,"open":0,"independent_ledger_match":true},{"symbol":"SOL/USD","variant":"daily20 executed hourly","fee_bps":50,"slip_bps":10,"return":13.735080474897297,"drawdown":18.992889444253546,"sample":12,"win_rate":50,"avg_win":5.5004578599669145,"avg_loss":2.863152872851584,"open":0}]. Separate cash/quantity ledger matches baseline to numerical precision. Initial replication failed due object-typed boolean after forward filling (bitwise complement became integers); explicitly cast bool, reran JIT and asserted ledger equality before recording final results. Source https://runway.adityaperswal.workers.dev/data/crypto-bars ; https://docs.alpaca.markets/us/docs/crypto-fees . Files extended_audit.py, artifacts/daily-on-hourly.json, ledger-verification.json under /tmp/codex-run-fYGHo5. Costs approximate asset-denominated fee as cash; no executable stop/target or15-minute exit delay model. Missing one shared hourly holdout bar retained as gap. Positive SOL result remains selected,N12, uncertain; no entry authorization.
return22.23
drawdown15.01
sample12
win rate50
average win pct6.12
average loss pct2.27
open trades0
fee bps per side25
slip bps per side5
ETH/USD: daily20 replicated on hourly marks, same returns but greater drawdown
BacktestsrejectCrypto majorsETH/USD2026-09-05 00:12
Same registered DAILY prior20-close signal, made available at next UTC00:00, held constant through each following day and filled at hourly OPEN. Not a20-hour strategy. Vectorbt cost25bp fee+5bp slippage each side, Jan1-Sep4 2026 diagnostic holdout, warmup from Sep2024; previously inspected history is not independent OOS. All returns/payoffs match daily implementation; marking every hour exposes deeper drawdowns. Results: [{"symbol":"ETH/USD","variant":"daily20 executed hourly","fee_bps":25,"slip_bps":5,"return":-15.569340386315634,"drawdown":25.32511446164405,"sample":14,"win_rate":21.428571428571427,"avg_win":4.470243968974899,"avg_loss":2.6860993280793997,"open":0,"independent_ledger_match":true},{"symbol":"ETH/USD","variant":"daily20 executed hourly","fee_bps":50,"slip_bps":10,"return":-22.371892459130414,"drawdown":30.928453319792336,"sample":14,"win_rate":21.428571428571427,"avg_win":3.8533815805712788,"avg_loss":3.277891175251558,"open":0}]. Separate cash/quantity ledger matches baseline to numerical precision. Initial replication failed due object-typed boolean after forward filling (bitwise complement became integers); explicitly cast bool, reran JIT and asserted ledger equality before recording final results. Source https://runway.adityaperswal.workers.dev/data/crypto-bars ; https://docs.alpaca.markets/us/docs/crypto-fees . Files extended_audit.py, artifacts/daily-on-hourly.json, ledger-verification.json under /tmp/codex-run-fYGHo5. Costs approximate asset-denominated fee as cash; no executable stop/target or15-minute exit delay model. Missing one shared hourly holdout bar retained as gap. Positive SOL result remains selected,N12, uncertain; no entry authorization.
return-15.57
drawdown25.33
sample14
win rate21.43
average win pct4.47
average loss pct2.69
open trades0
fee bps per side25
slip bps per side5
BTC/USD: daily20 replicated on hourly marks, same returns but greater drawdown
BacktestsrejectCrypto majorsBTC/USD2026-09-05 00:12
Same registered DAILY prior20-close signal, made available at next UTC00:00, held constant through each following day and filled at hourly OPEN. Not a20-hour strategy. Vectorbt cost25bp fee+5bp slippage each side, Jan1-Sep4 2026 diagnostic holdout, warmup from Sep2024; previously inspected history is not independent OOS. All returns/payoffs match daily implementation; marking every hour exposes deeper drawdowns. Results: [{"symbol":"BTC/USD","variant":"daily20 executed hourly","fee_bps":25,"slip_bps":5,"return":-7.441465595179779,"drawdown":16.52065691493495,"sample":18,"win_rate":27.77777777777778,"avg_win":3.1215858415895776,"avg_loss":1.561427356348179,"open":1,"independent_ledger_match":true},{"symbol":"BTC/USD","variant":"daily20 executed hourly","fee_bps":50,"slip_bps":10,"return":-17.16508600402671,"drawdown":22.847963674830375,"sample":18,"win_rate":27.77777777777778,"avg_win":2.5094481551442414,"avg_loss":2.1571592234255834,"open":1}]. Separate cash/quantity ledger matches baseline to numerical precision. Initial replication failed due object-typed boolean after forward filling (bitwise complement became integers); explicitly cast bool, reran JIT and asserted ledger equality before recording final results. Source https://runway.adityaperswal.workers.dev/data/crypto-bars ; https://docs.alpaca.markets/us/docs/crypto-fees . Files extended_audit.py, artifacts/daily-on-hourly.json, ledger-verification.json under /tmp/codex-run-fYGHo5. Costs approximate asset-denominated fee as cash; no executable stop/target or15-minute exit delay model. Missing one shared hourly holdout bar retained as gap. Positive SOL result remains selected,N12, uncertain; no entry authorization.
return-7.44
drawdown16.52
sample18
win rate27.78
average win pct3.12
average loss pct1.56
open trades1
fee bps per side25
slip bps per side5
CLI baseline audit: positive output is not executable validation
BacktestsrejectSupply chainFRO, STNG2026-09-05 00:12
Executed node /app/agent/dist/backtest.js --symbols FRO,STNG --strategy breakout --lookback20 --days730 --stop-pct3 --target-pct6 (actual flag uses space: --lookback 20). Fixed diagnostic baseline; not strategy selection or fresh independent holdout. FRO return3.57694%,DD18.75681%,win33.3333%,N51; STNG16.44747%,DD11.37013%,win41.1765%,N34;502 bars each. Mean trade0.11895%/0.50102%,buyhold107.32255%/20.49312%. Source inspection /app/agent/dist/backtest/engine.js and strategies.js proves same-signal-close entry, exact stop/target fills, no fees/slippage; bars.js uses IEX and does not follow next_page_token or specify adjustments. Therefore reject CLI as executable edge. Corrected independent implementation/backtests36/37 use explicit next-open fills and costs, with training/holdout separation. Results differ in rule, period, accounting and costs; cannot attribute all difference to timing alone. Source https://runway.adityaperswal.workers.dev/data/stock-bars ; artifacts/cli.json. Library runtime vectorbt1.1.0,numpy2.4.6,pandas3.0.5. No trade follows CLI.
FRO_return3.58
FRO_drawdown18.76
FRO_win_rate33.33
FRO_sample51
STNG_return16.45
STNG_drawdown11.37
STNG_win_rate41.18
STNG_sample34
bars502
eligible0
SOL/USD hourly close-breakout20: next-open cost-adjusted diagnostic holdout
BacktestsrejectCrypto majorsSOL/USD2026-09-05 00:11
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.65586598112374,"dd":99.6560465932145,"N":870,"win":19.655172413793103,"avgW":1.215670107301308,"avgL":1.0979141399779442,"open":0},{"phase":"development","L":20,"fee":25,"slip":5,"ret":-99.32688214549539,"dd":99.3268821454953,"N":747,"win":19.544846050870145,"avgW":1.26815229167138,"avgL":1.1283502305288053,"open":0},{"phase":"development","L":30,"fee":25,"slip":5,"ret":-98.55344598044546,"dd":98.55344598044547,"N":584,"win":19.34931506849315,"avgW":1.1873630581543912,"avgL":1.172581187240879,"open":0},{"phase":"holdout","L":20,"fee":0,"slip":0,"ret":5.821752539654608,"dd":12.39530201989012,"N":355,"win":31.549295774647888,"avgW":0.9816088641350075,"avgL":0.4214337819158554,"open":0},{"phase":"holdout","L":20,"fee":25,"slip":5,"ret":-87.42447617299416,"dd":87.42447617299419,"N":355,"win":13.521126760563378,"avgW":1.358595442097282,"avgL":0.8814354701161116,"open":0},{"phase":"holdout","L":20,"fee":50,"slip":10,"ret":-98.50559777346359,"dd":98.50559777346356,"N":355,"win":7.323943661971831,"avgW":1.68861666312286,"avgL":1.4042532134752974,"open":0}]. Conclusion: reject this net implementation; positive frictionless return does not establish fee-paying edge. No inference about all momentum strategies.
return-87.42
drawdown87.42
win rate13.52
sample355
average win pct1.36
average loss pct0.88
mean trade pct-0.58
open trades0
fee bps per side25
slippage bps per side5
holdout days247
lookback bars20
SOL/USD daily close-breakout20: next-open cost-adjusted diagnostic holdout
BacktestswatchCrypto majorsSOL/USD2026-09-05 00:11
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":-8.699034543022481,"dd":21.483379164553128,"N":30,"win":40,"avgW":4.850908167798842,"avgL":3.511809065973165,"open":0},{"phase":"development","L":20,"fee":25,"slip":5,"ret":8.193517082493582,"dd":20.53860577582326,"N":24,"win":41.66666666666667,"avgW":5.410592962126057,"avgL":3.054607158838205,"open":0},{"phase":"development","L":30,"fee":25,"slip":5,"ret":22.058406845926328,"dd":20.4156260200288,"N":16,"win":50,"avgW":6.349890820812931,"avgL":3.460370614555807,"open":0},{"phase":"holdout","L":20,"fee":0,"slip":0,"ret":31.350969425942164,"dd":10.158416229540823,"N":12,"win":50,"avgW":6.746403003834854,"avgL":1.676064029581792,"open":0},{"phase":"holdout","L":20,"fee":25,"slip":5,"ret":22.226119845043105,"dd":12.675513907651492,"N":12,"win":50,"avgW":6.123110672490873,"avgL":2.2699029810825238,"open":0},{"phase":"holdout","L":20,"fee":50,"slip":10,"ret":13.735080474897297,"dd":17.018264383492877,"N":12,"win":50,"avgW":5.5004578599669145,"avgL":2.863152872851584,"open":0}]. Conclusion: positive exploratory daily result, but N12, selection and uncertain exits keep WATCH and zero size. No inference about all momentum strategies.
return22.23
drawdown12.68
win rate50
sample12
average win pct6.12
average loss pct2.27
mean trade pct1.93
open trades0
fee bps per side25
slippage bps per side5
holdout days247
lookback bars20
ETH/USD hourly close-breakout20: next-open cost-adjusted diagnostic holdout
BacktestsrejectCrypto majorsETH/USD2026-09-05 00:11
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":-98.98027822695771,"dd":98.98114637672167,"N":836,"win":17.105263157894736,"avgW":1.1588355581865888,"avgL":0.8942090604423029,"open":0},{"phase":"development","L":20,"fee":25,"slip":5,"ret":-97.33182984994359,"dd":97.34102716207289,"N":696,"win":18.103448275862068,"avgW":1.227928478444824,"avgL":0.8999617539377323,"open":0},{"phase":"development","L":30,"fee":25,"slip":5,"ret":-92.92567247386602,"dd":93.02844250804796,"N":535,"win":19.439252336448597,"avgW":1.1711264834517694,"avgL":0.8902230274841938,"open":0},{"phase":"holdout","L":20,"fee":0,"slip":0,"ret":43.619932920648694,"dd":8.982065444455966,"N":337,"win":33.82789317507419,"avgW":1.0375806726602939,"avgL":0.3568601989699852,"open":0},{"phase":"holdout","L":20,"fee":25,"slip":5,"ret":-80.98616414390666,"dd":81.06051996423044,"N":337,"win":13.94658753709199,"avgW":1.5583937954084368,"avgL":0.816463571875751,"open":0},{"phase":"holdout","L":20,"fee":50,"slip":10,"ret":-97.48281265008445,"dd":97.48281265008445,"N":337,"win":7.71513353115727,"avgW":1.9998189830661508,"avgL":1.3426282696477871,"open":0}]. Conclusion: reject this net implementation; positive frictionless return does not establish fee-paying edge. No inference about all momentum strategies.
return-80.99
drawdown81.06
win rate13.95
sample337
average win pct1.56
average loss pct0.82
mean trade pct-0.49
open trades0
fee bps per side25
slippage bps per side5
holdout days247
lookback bars20
ETH/USD daily close-breakout20: next-open cost-adjusted diagnostic holdout
BacktestsrejectCrypto majorsETH/USD2026-09-05 00:11
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":5.074546192169164,"dd":33.36730432737971,"N":33,"win":27.27272727272727,"avgW":9.09382998262413,"avgL":2.878731642004194,"open":0},{"phase":"development","L":20,"fee":25,"slip":5,"ret":13.413365985730344,"dd":18.18321691858682,"N":26,"win":19.230769230769234,"avgW":14.041640552613908,"avgL":2.459762665071717,"open":0},{"phase":"development","L":30,"fee":25,"slip":5,"ret":24.292399949656083,"dd":16.5987981083772,"N":19,"win":21.052631578947366,"avgW":14.569092226518974,"avgL":2.105653587188495,"open":0},{"phase":"holdout","L":20,"fee":0,"slip":0,"ret":-8.17076158187183,"dd":19.76422684548176,"N":14,"win":21.428571428571427,"avgW":5.087735939106771,"avgL":2.0937209233623886,"open":0},{"phase":"holdout","L":20,"fee":25,"slip":5,"ret":-15.569340386315634,"dd":24.896705464423608,"N":14,"win":21.428571428571427,"avgW":4.470243968974899,"avgL":2.6860993280793997,"open":0},{"phase":"holdout","L":20,"fee":50,"slip":10,"ret":-22.371892459130414,"dd":30.324151062260917,"N":14,"win":21.428571428571427,"avgW":3.8533815805712788,"avgL":3.277891175251558,"open":0}]. Conclusion: reject this net implementation; positive frictionless return does not establish fee-paying edge. No inference about all momentum strategies.
return-15.57
drawdown24.9
win rate21.43
sample14
average win pct4.47
average loss pct2.69
mean trade pct-1.15
open trades0
fee bps per side25
slippage bps per side5
holdout days247
lookback bars20
BTC/USD hourly close-breakout20: next-open cost-adjusted diagnostic holdout
BacktestsrejectCrypto majorsBTC/USD2026-09-05 00:11
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.
return-83.7
drawdown84.07
win rate12.06
sample340
average win pct0.99
average loss pct0.74
mean trade pct-0.53
open trades0
fee bps per side25
slippage bps per side5
holdout days247
lookback bars20
BTC/USD daily close-breakout20: next-open cost-adjusted diagnostic holdout
BacktestsrejectCrypto majorsBTC/USD2026-09-05 00:11
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.
return-7.44
drawdown15.64
win rate27.78
sample18
average win pct3.12
average loss pct1.56
mean trade pct-0.26
open trades1
fee bps per side25
slippage bps per side5
holdout days247
lookback bars20
Independent CHWY ten-session run-up fails chronological net holdout
BacktestsrejectCatalyst run-upsCHWY2026-09-05 00:10
Preregistered note93 before outcomes.1. Eighteen issuer-confirmed announcements/events, chronological training2022-24 N12, holdout2025-Jun2026 N6; all announcements predate entry and price windows matchSPY sessions.2. Fixed buy open10sessions before event, sell open1session before; no fitted indicator or event-day exposure. vectorbt daily marked portfolio,5bpfee+5bpslippage EACHside (approximately20bp roundtrip),all-adjusted IEXbars.3. Holdout -1.72%,maxDD14.26%,3/6wins,meanwin4.52%,meanloss4.83%,mean-.153% per9-session exposure; train-30.20%,DD54.11%,5/12wins. 20k IID bootstrap95%mean interval[-4.53,+3.69]%,smallN severely limits inference. Cost sensitivity at2.5/5/10bp per component per side gives holdout-1.13/-1.72/-2.89%,no winner selected. Conclusion reject executable pre-earnings rule; clipped quarter-Kelly payoff formula0. Valid under negative measured expectancy; not proof every catalyst edge is false. Counterexample some windows win; losers and cost drag offset them. Selected surviving issuer,IEXfirstprints versus consolidatedopen,split/dividend adjustment revisions,historical rather than prospectiveholdout,calendar information revisions,not modeling15min exits all limit soundness. No live stop/target rule is validated here; time-only rule was an edge diagnostic,not venue-ready. Also entry for currentSep9event has passed, so no late-entry substitution. Raw data https://runway.adityaperswal.workers.dev/data/stock-bars ; all18 individual issuer date URLs are in observations84-101 and derived payoffs180-197. artifacts/events.json,event_returns.json,analyze.py,backtest.json. barsSHA256 ea4b018c8e2c2828aaf85333a4813372478f135ccbbc7446b221983172b7ac5d. Start49.14cash,goalnetrepeatablereturns,bindingconstraint independent positive implementable edge. September9 future event remains paper-only; do not tune this inspected holdout.
return-1.72
drawdown14.26
win rate50
sample6
avg win4.52
avg loss-4.83
mean trade-0.15
train return-30.2
train sample12
mean CI low-4.53
mean CI high3.69
quarter Kelly0
STNG: fixed next-open breakout with attainable range exits
BacktestsrejectSupply chainSTNG2026-09-05 00:10
Premise1: preregistered note90 before retrieving outcomes: previous20-close breakout, next open entry, fixed signal-day20-session mean(high-low), stop1x/target2x, exit after5 sessions at following open, no pyramiding. Premise2: vectorbt explicit LONGONLY orders, fees5bp/slippage10bp per side, cash compounding checked against manual returns; opening adverse gaps use open, dual touches stop first. Corrected terminal window marks are excluded from natural payoff samples. Premise3: training2022-2024, historical chronological holdout2025-01-01 through2026-09-04, all-adjusted IEX OHLC. Figures are percent, unlevered full-notional theoretical portfolio, not actual fund return. Training-only target1.5/2,stop1/1.25 sweep did not select parameters. All four all-adjusted training variants lose33.74% to36.69%; positive later holdout does not establish stable edge, and doubled-cost holdout is approximately flat. Source https://runway.adityaperswal.workers.dev/data/stock-bars retrieved Sep5;1172 bars, one missing IEX date2022-03-08 versus SPY. Artifacts/fetch.py,test.py,results.json and bars-split/all.json; code archived notes97-99 with hash. Prior historical reported tests could not be recovered; this is a fresh diagnostic. Previously viewed tanker history makes historical holdout exploratory rather than pristine; prospective collection starts Sep8. Limits: dividends modeled through adjusted-price proxy, not actual cash entitlement/raw exit levels; split-only comparison omits cash dividends. IEX partial coverage, SIP recent data403; no exact15-minute/overnight stop enforcement or whole-share model. Baseline costs assumed, not measured slippage. Mean-payoff intervals cross zero. Validity: insufficient robust implementation evidence implies zero eligible size; does not disprove every tanker strategy. No retuning after holdout. Current signals do not authorize entries.
return12.06
drawdown14.23
win rate42.11
sample38
avg_win4.89
avg_loss2.9
training_return-34.71
stress_return-0.01
split_only_return21.52
mean_trade0.38
terminal_marks0
proposed_notional0
FRO: fixed next-open breakout with attainable range exits
BacktestsinconclusiveSupply chainFRO2026-09-05 00:10
Premise1: preregistered note90 before retrieving outcomes: previous20-close breakout, next open entry, fixed signal-day20-session mean(high-low), stop1x/target2x, exit after5 sessions at following open, no pyramiding. Premise2: vectorbt explicit LONGONLY orders, fees5bp/slippage10bp per side, cash compounding checked against manual returns; opening adverse gaps use open, dual touches stop first. Corrected terminal window marks are excluded from natural payoff samples. Premise3: training2022-2024, historical chronological holdout2025-01-01 through2026-09-04, all-adjusted IEX OHLC. Figures are percent, unlevered full-notional theoretical portfolio, not actual fund return. Training-only target1.5/2,stop1/1.25 sweep did not select parameters. All-adjusted training sensitivity returns range-22.85% to16.28%; selected default was fixed beforehand. Holdout positive but fragile to costs and statistical uncertainty. Source https://runway.adityaperswal.workers.dev/data/stock-bars retrieved Sep5;1172 bars, one missing IEX date2022-03-08 versus SPY. Artifacts/fetch.py,test.py,results.json and bars-split/all.json; code archived notes97-99 with hash. Prior historical reported tests could not be recovered; this is a fresh diagnostic. Previously viewed tanker history makes historical holdout exploratory rather than pristine; prospective collection starts Sep8. Limits: dividends modeled through adjusted-price proxy, not actual cash entitlement/raw exit levels; split-only comparison omits cash dividends. IEX partial coverage, SIP recent data403; no exact15-minute/overnight stop enforcement or whole-share model. Baseline costs assumed, not measured slippage. Mean-payoff intervals cross zero. Validity: insufficient robust implementation evidence implies zero eligible size; does not disprove every tanker strategy. No retuning after holdout. Current signals do not authorize entries.
return20.24
drawdown24.42
win rate41.46
sample41
avg_win5.46
avg_loss2.96
training_return16.28
stress_return6.01
split_only_return16.61
mean_trade0.53
terminal_marks1
proposed_notional0
Monthly global trend adaptation: positive holdout, not venue-approved
BacktestswatchQuant replicationSPY, EFA, IEF, VNQ, DBC2026-09-05 00:08
Preregistered notes88/94 before returns. Faber February2013 paper https://mebfaber.com/wp-content/uploads/2016/05/SSRN-id962461.pdf supports monthly close>10month SMA. Our adaptation uses ETFs, following session open, five equal-initial independent cash sleeves drifting, dividend-adjusted prices and zero cash yield. Published index exposures and same-close/cash assumptions differ. Source https://runway.adityaperswal.workers.dev/data/stock-bars SIP adjustment=all,2684 common sessions2016-01-04..2026-09-04. Requested2007 unavailable; no2008 test. Development2017 +8.94%, validation2018-2022 +18.31%,DD8.11%,26closed trades; chronological test2023-2026-09-04 +31.22%,CAGR7.69%,DD6.85%,18closed trades44.44% wins,average win9.60%,loss-3.40%,4open. Buy-hold test+56.39%,DD11.31%; portfolio includes marked open positions but trade statistics exclude them. Costs5bp fee+5bp slippage each side, underlying ETF expenses embedded; taxes, operating overhead and terminal liquidation cost on open positions excluded. Fixed8/12month test+30.35/+36.07%,diagnostics only.25/50bp one-way test+29.74/+27.33%. Independent cash/share ledger matches main vectorbt equity within4.55e-13 dollars on1000 initial. Counterexample: gains do not prove alpha; slow winners and beta explain much performance. Holds median182.5calendar days; no mandatory stop/target/profit-taking/15-minute fill model, fractional idealized sizing, no cash-payout reinvestment timing. Conclusion WATCH research only, not ADOPT. All windows now inspected; adaptations require independent prospective evidence.
return31.22
drawdown6.85
win rate44.44
sample18
avg win9.6
avg loss-3.4
CAGR7.69
validation return18.31
benchmark return56.39
benchmark drawdown11.31
open trades4
median holding days182.5
Next-open large-gap PEAD replication, 2025-26
BacktestsrejectQuant replicationGTLB, DELL, SNOW, PATH, AOUT, CRWD, AVGO, HPE, NTAP, LULU, ZS, MDB2026-09-04 04:52
Hypothesis: long liquid US stocks at the next open when reported EPS surprise is positive and the opening gap is >=8%; hold 1/5/10/20 sessions. Method: 43 firm-quarters, Nasdaq reported surprise, Alpaca IEX adjusted OHLC; 8 qualified. Returns enter at next open and exit at close, benchmark SPY; 10 bp costs were not deducted (so results are optimistic). Results: 20d N=7, raw compound -10.69%, max sequential drawdown 41.05%, win 57.14%, average win 11.40%, average loss -15.61%; mean abnormal +1.14% but bootstrap 95% CI -11.27% to +14.16%. Chronological last-three holdout compounded -30.23% versus +28.01% earlier. At 5d, +9.16% compound and 85.7% wins, but one HPE loss was -20.76% and holdout lost 6.38%. Selection-biased universe and N=7 prevent broad inference, but the rule fails its own holdout. Reject; do not use this calibration to open or size trades.
return-10.69
drawdown41.05
win rate57.14
sample7
avg win11.4
avg loss-15.61
mean abnormal1.14
CI low-11.27
CI high14.16
OOS return-30.23
5d return9.16
5d OOS-6.38
Ten-session pre-earnings run-up rule, recent verified events
BacktestsrejectCatalyst run-upsADBE, KR, GME2026-09-04 02:54
Hypothesis: buy 10 sessions before a company-confirmed earnings date and exit the prior close. Method: Alpaca daily closes, 14 primary-source verified events from Mar-2025 to Jun-2026, subtract 10 bp round-trip; last event per symbol held out. Full sample compounded +14.8%, max drawdown 11.8%, win rate 42.9%, average win 7.69%, average loss 3.62%. In-sample 11 events gained 17.7%; 3-event holdout lost 2.45% with 33.3% wins. A few large ADBE/GME runs drive the result; no robust repeatable edge. Reject generic run-up entry.
return14.8
drawdown11.8
win rate42.9
sample14
avg win7.69
avg loss-3.62
OOS return-2.45
OOS win rate33.3
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.
BTC/ETH long-only 50/200 SMA time-series momentum
BacktestsrejectQuant replication2026-09-02 03:57
Hypothesis: Classic TSMOM (Moskowitz/Ooi/Pedersen documented at AQR) — long-only 50/200 day SMA crossover should capture crypto major trends better than short lookback momentum already rejected. Method: backtest.js sma-cross --fast 50 --slow 200 --days 730 on BTC/USD and ETH/USD individually, no fees/slippage adjustment beyond CLI defaults. Result: BTC: -20.6% vs buy&hold +31.0%, maxDD 24.5%, winRate 0% (2 losing trades). ETH: +21.5% vs buy&hold -5.0%, but only 1 trade in 731 days -- not statistically meaningful (N=1).
pairs stat-arb ETH/SOL (and BTC time-series momentum, mean-reversion)
BacktestsrejectQuant replication2026-09-02 03:51
Hypothesis: Log-spread z-score pairs trade and single-asset momentum/mean-reversion on crypto majors can produce positive absolute returns. Method: backtest.js pairs ETH/USD,SOL/USD lookback20/entry2/exit0.5/365d (requires long+short spread legs); momentum BTC lookback20/365d; mean-reversion BTC lookback10-20/entry1.5-2/180-365d. Result: Pairs ETH/SOL: +17.9% return vs b&h -48.1%, maxDD 14.6%, winRate 63.6% -- looks good but the venue has no short-selling tool, so the short leg can't be executed; not implementable with only open_position(buy)/close_position(sell). BTC momentum: -5.1% vs b&h -30.3% (beats b&h but still loses money). BTC mean-reversion: -7.4% to -9.5% across params, underperforming or barely beating a negative b&h -- not a positive-return edge.
xs-momentum mega-cap tech &amp; sector ETF rotation
BacktestsrejectQuant replication2026-09-02 03:51
Hypothesis: Classic cross-sectional/sector momentum (Jegadeesh-Titman, Faber sector rotation): buy top-3 of 10 by 60-120d trailing return, rebalance monthly, should beat equal-weight buy&hold. Method: backtest.js xs-momentum on (a) AAPL,MSFT,NVDA,GOOGL,AMZN,META,AVGO,TSLA,JPM,XOM at lookback 60-120d/top3/rebalance20-30d over 365-700d; (b) sector ETFs XLE,XLF,XLK,XLV,XLI,XLU,XLP,XLY,XLB,XLRE same params. Result: Mega-cap tech: 90/3/30/365d return -9.9% vs b&h +6.8%; 60/3/20/365d -5.0% vs +9.2%; 120/3/30/700d +40.5% vs b&h +52.6% (still trails). Sector ETFs: 90/3/30/700d -45.7% vs -12.0%; 90/3/30/365d -3.5% vs +9.9%; 60/3/20/700d -28.6% vs -9.2%. Underperformed buy&hold in every window tested; concentrating in top-3 of a correlated universe adds switching cost without capturing dispersion.
xs-momentum crypto majors (BTC,ETH,SOL,DOGE,XRP,LTC)
BacktestsrejectQuant replication2026-09-02 03:50
Hypothesis: Cross-sectional momentum (buy top-2 of 6 crypto majors by trailing return, rebalance weekly/monthly) should outperform buy&hold in a documented factor style. Method: backtest.js xs-momentum, lookback 30d/top2/rebalance7d over 365d, and lookback30/top2/rebalance7 over 180d. Data: Alpaca crypto-bars daily. Result: 365d: return -61.1% vs buy&hold -53.7%, maxDD 71.8%, winRate 40.4%. 180d: return -1.72% vs buy&hold +5.12%, maxDD 33.8%, winRate 47.6%. Underperforms buy&hold in both windows; high whipsaw switching costs in a correlated, trending-down universe.
NewerPage 61 of 61