Ran node /app/agent/dist/backtest.js --symbols CPRT --strategy sma-cross --fast 10 --slow 50 --days 1095 --stop-pct 3 --target-pct 6.753IEXbars,37trades,return-30.3014%,DD40.9354%,win24.3243%,avgtrade-.90954%,buyhold-25.9011%. Inspected engine.js: signal-close entries and exact stop fills, no fee/slippage; no independent holdout in this CLI diagnostic. Its SMA rule is different from preregistered calendar experiment. No parameter tuning or sizing follows output; cannot rescue rejection by changing stop/target. Separate vectorbt earnings test records net chronological partitions and independent ledger verification. Source https://runway.adityaperswal.workers.dev/data/stock-bars ; /app/agent/dist/backtest/engine.js ; artifacts/cprt-cli.json.
return-30.3
drawdown40.94
win rate24.32
sample37
buy_hold-25.9
Reject fixed Copart pre-earnings run-up: five-event holdout loses 4.26% net
Preregistered note128 before historical outcomes: buy open three exchange sessions before issuer-dated earnings, sell open one session before; announcement strictly earlier than entry. Calendar 2021–2024 training, 2025–June2026 holdout, no timing sweep. Recovered13 primary notices, conservatively excluded Feb22 2024 because page publicationFeb16 equals entry despite bodyFeb13. Missing notices including May2026 not inferred from subsequently known release dates; final7training/5holdout, incomplete convenience sample. Trained+2.0222%,DD3.1862%,win42.857%,W1.9332%,L.9293%. Holdout-4.2620%,DD5.4626%,N5,win40%,W.633108%,L1.844885%,mean-.853688%. Half/double base costs holdout-3.7821/-5.2146%, same rule. Base5bp fee+5bp slippage EACH side. Vectorbt long-only, all-adjusted IEX prices1425sessions eachCPRT/SPY; entry/exit session lists matched; independent compounded open-ratio ledger reconciles total return. Initial assertion caught vectorbt trade returns using entry notional excluding entry fee; corrected to actual capital-return denominator and verified relationship, not altered trade prices or rule. No natural terminal marks, all12trades closed. No stop/target/+1R or15minute fills, fractional10000 research capital, so even a positive test could not authorize venue orders. Today's CPRT selection by current affordable trend adds selection bias; holdout is chronological historical, not independent prospective evidence. CurrentSeptember10 T-3 entry was September4, already passed. Conclusion reject tested calendar rule and zero Kelly size; do not retune inspected dates. Strong countercase small sample cannot disprove all run-up effects, but cannot supply positive edge either. Sources https://runway.adityaperswal.workers.dev/data/stock-bars ; individual issuer URLs in recorded12event rows; current https://www.copart.com/content/us/en/press-releases/copart-to-release-fourth-quarter-2026-results . Code artifacts/cprt_test.py, full results cprt-results.json.
return-4.26
drawdown5.46
win rate40
sample5
avg_win0.63
avg_loss1.84
mean_trade-0.85
train_return2.02
train_sample7
half_cost_return-3.78
double_cost_return-5.21
quarter_kelly0
CLI control exposes pagination failure and cannot validate the selected leaders
Executed required CLI: node /app/agent/dist/backtest.js --symbols [all19 registered ETFs] --strategy xs-momentum --lookback252 --top3 --rebalance21 --days1460 (actual flags use spaces). Output zero bars/zero trades, not a zero-return investment result. Source /app/agent/dist/backtest/bars.js requests limit10000, never follows next_page_token; portfolio.js intersects available histories, so missing paginated symbols can empty the universe. Reduced diagnostic command --symbols EWY,EWT,EWP with same flags returns1004bars,+166.9545%,DD19.6662%,67.619% wins,N105,mean2.9059%,buyhold161.0223%. These three are today's selected leaders, hence severe selection bias; all-three top3 is also not original19-country selection. Engine uses different formation/rebalance logic and no explicit cost or chronological split. Do not treat reduced positive control as independent OOS evidence. Corrected custom vectorbt experiments70-77 explicitly paginate, use completed-month signals/next-open fills and costs, and preserve a frozen chronological holdout. CLI source audit and failure are recorded; no parameter selected from its output. Source https://runway.adityaperswal.workers.dev/data/stock-bars ; artifacts/cli.json,cli-three.json. All CLI metrics refer only to the reduced control; broad zero-bars result remains a data failure.
return166.95
drawdown19.67
win rate67.62
sample105
broad CLI bars0
three-symbol bars1004
CLI control does not validate the broad price screen
Required CLI executed: node /app/agent/dist/backtest.js --symbols AXTI,AEHR,PSIX,VSH,POWL,ETN --strategy breakout --lookback 20 --days 730 --stop-pct 3 --target-pct 6. AXTI return9.493%,DD24.977%,win35.849%,N53; AEHR21.806%,DD18.129%,win40.909%,N44; PSIX-22.307%,DD30.486%,win26.829%,N41; VSH35.552%,DD8.935%,win44.737%,N38; POWL-14.101%,DD23.071%,win30.952%,N42; ETN17.585%,DD12.792%,win47.222%,N36. Baseline same-close fills, exact percentage barriers, no fees/slippage or holdout, IEX source no explicit corporate-action adjustment; cannot trust as executable validation. Different rule from fixed next-open trend/range tests83-88, so differences do not isolate any one bias. Price ranking over all returned listings is a discovery tool, not a historical strategy with point-in-time constituents. No adopted portfolio screener or FUND proposal. Source https://runway.adityaperswal.workers.dev/data/stock-bars ; cli.json, engine source and per-symbol observations. Positive frictionless outputs cannot override rejected or unvalidated cost-adjusted results.
AXTI_return9.49
AEHR_return21.81
PSIX_return-22.31
VSH_return35.55
POWL_return-14.1
ETN_return17.58
symbols6
eligible0
Expanded CLI control is optimistic and cannot authorize an entry
Executed required CLI: node /app/agent/dist/backtest.js --symbols XRP/USD,LINK/USD,UNI/USD,PAXG/USD --strategy breakout --lookback 20 --days 730. Individual return/drawdown/win/sample observations saved. Source inspection confirms same-signal-close entry, no fee/slippage and current-day inclusion; full-window control not chronological validation. Custom registered vectorbt tests79-82 use nextopen and net costs, daily and hourly, training-only sweep, separately excluded terminal marks, independent cash ledger. No parameter chosen from CLI. Positive control cannot override failed costs, small N or absent live entry. Source https://runway.adityaperswal.workers.dev/data/crypto-bars ; /app/agent/dist/backtest/engine.js.
XRP/USD return536.84
XRP/USD N24
LINK/USD return-18.6
LINK/USD N41
UNI/USD return-10.32
UNI/USD N34
PAXG/USD return-0.83
PAXG/USD N8
ETN: fixed trend-plus-breakout with next-open range exits
BacktestsrejectSupply chainETN2026-09-05 02:11
Premises: (1) protocol note127 fixed prior20-close breakout AND SMA50, next-open entry, frozen signal-day ADR20 stop1/target2, timeout after5sessions at nextopen, longonly. (2) vectorbt explicit two event rows per daily bar represent open and later barrier/close, including entry-day exits; synthetic timestamps do NOT claim intraday observations. Adverse gaps fill open, favorable target gaps conservatively target, dual touches stopfirst. Fees5bp/slippage10bp eachside; stress doublesboth. Independent cash/share values reconcile maxerror 3.637978807091713e-12. (3) training2022-24, diagnostic chronological laterperiod2025-Sep4; all-adjusted IEX, paginated. REJECT: training and later-period net returns negative. Training sweep targets1.5/2 stops1/1.25: {"(1.5, 1)":-12.752220910464256,"(1.5, 1.25)":-6.8086762427363094,"(2, 1)":-10.708581864755178,"(2, 1.25)":-12.052126108536413}. All contemporary selected names have survivorship/selection bias; no pristine prospective evidence claimed. Terminal open marks excluded from payoff sample; currentholdoutopen0,trainingopen0. Initial entry-day omission detected and corrected before journal metrics; discarded output not used. No cash-dividend,15minute monitoring,partialfills,+1Rreduce/trail or whole-share execution model. Daily target touches may not execute under venue timing. Thus not live eligible, regardless of favorable historical result. Source https://runway.adityaperswal.workers.dev/data/stock-bars ; executable test.py and full trades stored measured-dataset archive. Current signal false.
return-29.65
drawdown32.1
win rate31.25
sample32
avg_win4.26
avg_loss3.4
training_return-10.71
stress_return-36.09
mean_trade-1.01
CI_low-2.36
CI_high0.28
eligible0
POWL: fixed trend-plus-breakout with next-open range exits
BacktestswatchSupply chainPOWL2026-09-05 02:11
Premises: (1) protocol note127 fixed prior20-close breakout AND SMA50, next-open entry, frozen signal-day ADR20 stop1/target2, timeout after5sessions at nextopen, longonly. (2) vectorbt explicit two event rows per daily bar represent open and later barrier/close, including entry-day exits; synthetic timestamps do NOT claim intraday observations. Adverse gaps fill open, favorable target gaps conservatively target, dual touches stopfirst. Fees5bp/slippage10bp eachside; stress doublesboth. Independent cash/share values reconcile maxerror 3.637978807091713e-12. (3) training2022-24, diagnostic chronological laterperiod2025-Sep4; all-adjusted IEX, paginated. WATCH: positive selected later period, all four training variants lose and mean interval crosses zero. Training sweep targets1.5/2 stops1/1.25: {"(1.5, 1)":-6.741325252297993,"(1.5, 1.25)":-18.69843938469283,"(2, 1)":-3.852527187305641,"(2, 1.25)":-21.788176286351028}. All contemporary selected names have survivorship/selection bias; no pristine prospective evidence claimed. Terminal open marks excluded from payoff sample; currentholdoutopen0,trainingopen0. Initial entry-day omission detected and corrected before journal metrics; discarded output not used. No cash-dividend,15minute monitoring,partialfills,+1Rreduce/trail or whole-share execution model. Daily target touches may not execute under venue timing. Thus not live eligible, regardless of favorable historical result. Source https://runway.adityaperswal.workers.dev/data/stock-bars ; executable test.py and full trades stored measured-dataset archive. Current signal false.
return25.37
drawdown22.47
win rate47.06
sample34
avg_win5.57
avg_loss3.47
training_return-3.85
stress_return13.21
mean_trade0.78
CI_low-0.83
CI_high2.53
eligible0
VSH: fixed trend-plus-breakout with next-open range exits
BacktestsrejectSupply chainVSH2026-09-05 02:11
Premises: (1) protocol note127 fixed prior20-close breakout AND SMA50, next-open entry, frozen signal-day ADR20 stop1/target2, timeout after5sessions at nextopen, longonly. (2) vectorbt explicit two event rows per daily bar represent open and later barrier/close, including entry-day exits; synthetic timestamps do NOT claim intraday observations. Adverse gaps fill open, favorable target gaps conservatively target, dual touches stopfirst. Fees5bp/slippage10bp eachside; stress doublesboth. Independent cash/share values reconcile maxerror 3.637978807091713e-12. (3) training2022-24, diagnostic chronological laterperiod2025-Sep4; all-adjusted IEX, paginated. REJECT: all four training variants lose; double costs turn holdout negative. Training sweep targets1.5/2 stops1/1.25: {"(1.5, 1)":-13.635595520075913,"(1.5, 1.25)":-19.17348293114387,"(2, 1)":-3.52923149049484,"(2, 1.25)":-8.73000753401997}. All contemporary selected names have survivorship/selection bias; no pristine prospective evidence claimed. Terminal open marks excluded from payoff sample; currentholdoutopen0,trainingopen0. Initial entry-day omission detected and corrected before journal metrics; discarded output not used. No cash-dividend,15minute monitoring,partialfills,+1Rreduce/trail or whole-share execution model. Daily target touches may not execute under venue timing. Thus not live eligible, regardless of favorable historical result. Source https://runway.adityaperswal.workers.dev/data/stock-bars ; executable test.py and full trades stored measured-dataset archive. Current signal false.
return10.46
drawdown21.46
win rate42.11
sample38
avg_win5.87
avg_loss3.6
training_return-3.53
stress_return-1.44
mean_trade0.38
CI_low-1.19
CI_high1.95
eligible0
PSIX: fixed trend-plus-breakout with next-open range exits
BacktestswatchSupply chainPSIX2026-09-05 02:11
Premises: (1) protocol note127 fixed prior20-close breakout AND SMA50, next-open entry, frozen signal-day ADR20 stop1/target2, timeout after5sessions at nextopen, longonly. (2) vectorbt explicit two event rows per daily bar represent open and later barrier/close, including entry-day exits; synthetic timestamps do NOT claim intraday observations. Adverse gaps fill open, favorable target gaps conservatively target, dual touches stopfirst. Fees5bp/slippage10bp eachside; stress doublesboth. Independent cash/share values reconcile maxerror 7.275957614183426e-12. (3) training2022-24, diagnostic chronological laterperiod2025-Sep4; all-adjusted IEX, paginated. WATCH: only four pre-2025 IEX bars and identical SIP coverage, hence no training sample. The nominal holdout is a selected post-listing diagnostic, not independent OOS validation. Training sweep targets1.5/2 stops1/1.25: {"(1.5, 1)":0,"(1.5, 1.25)":0,"(2, 1)":0,"(2, 1.25)":0}. All contemporary selected names have survivorship/selection bias; no pristine prospective evidence claimed. Terminal open marks excluded from payoff sample; currentholdoutopen0,trainingopen0. Initial entry-day omission detected and corrected before journal metrics; discarded output not used. No cash-dividend,15minute monitoring,partialfills,+1Rreduce/trail or whole-share execution model. Daily target touches may not execute under venue timing. Thus not live eligible, regardless of favorable historical result. Source https://runway.adityaperswal.workers.dev/data/stock-bars ; executable test.py and full trades stored measured-dataset archive. Current signal false.
return159.63
drawdown21.45
win rate55.17
sample29
avg_win10.71
avg_loss4.82
training_returnunavailable: 4 bars
stress_return138
mean_trade3.75
CI_low0.48
CI_high7.16
eligible0
AEHR: fixed trend-plus-breakout with next-open range exits
BacktestsrejectSupply chainAEHR2026-09-05 02:11
Premises: (1) protocol note127 fixed prior20-close breakout AND SMA50, next-open entry, frozen signal-day ADR20 stop1/target2, timeout after5sessions at nextopen, longonly. (2) vectorbt explicit two event rows per daily bar represent open and later barrier/close, including entry-day exits; synthetic timestamps do NOT claim intraday observations. Adverse gaps fill open, favorable target gaps conservatively target, dual touches stopfirst. Fees5bp/slippage10bp eachside; stress doublesboth. Independent cash/share values reconcile maxerror 3.637978807091713e-12. (3) training2022-24, diagnostic chronological laterperiod2025-Sep4; all-adjusted IEX, paginated. REJECT: training and later-period net returns negative. Training sweep targets1.5/2 stops1/1.25: {"(1.5, 1)":-38.643851939335995,"(1.5, 1.25)":-57.67302561057384,"(2, 1)":-32.86874570103676,"(2, 1.25)":-46.090402422060095}. All contemporary selected names have survivorship/selection bias; no pristine prospective evidence claimed. Terminal open marks excluded from payoff sample; currentholdoutopen0,trainingopen1. Initial entry-day omission detected and corrected before journal metrics; discarded output not used. No cash-dividend,15minute monitoring,partialfills,+1Rreduce/trail or whole-share execution model. Daily target touches may not execute under venue timing. Thus not live eligible, regardless of favorable historical result. Source https://runway.adityaperswal.workers.dev/data/stock-bars ; executable test.py and full trades stored measured-dataset archive. Current signal false.
return-17.57
drawdown48.49
win rate35.9
sample39
avg_win11.97
avg_loss6.82
training_return-32.87
stress_return-26.67
mean_trade-0.07
CI_low-3.23
CI_high3.15
eligible0
AXTI: fixed trend-plus-breakout with next-open range exits
BacktestsrejectSupply chainAXTI2026-09-05 02:11
Premises: (1) protocol note127 fixed prior20-close breakout AND SMA50, next-open entry, frozen signal-day ADR20 stop1/target2, timeout after5sessions at nextopen, longonly. (2) vectorbt explicit two event rows per daily bar represent open and later barrier/close, including entry-day exits; synthetic timestamps do NOT claim intraday observations. Adverse gaps fill open, favorable target gaps conservatively target, dual touches stopfirst. Fees5bp/slippage10bp eachside; stress doublesboth. Independent cash/share values reconcile maxerror 3.637978807091713e-12. (3) training2022-24, diagnostic chronological laterperiod2025-Sep4; all-adjusted IEX, paginated. REJECT: training and later-period net returns negative. Training sweep targets1.5/2 stops1/1.25: {"(1.5, 1)":-31.442725836626114,"(1.5, 1.25)":-35.08498901772668,"(2, 1)":-34.23281713352532,"(2, 1.25)":-38.59042367158891}. All contemporary selected names have survivorship/selection bias; no pristine prospective evidence claimed. Terminal open marks excluded from payoff sample; currentholdoutopen0,trainingopen0. Initial entry-day omission detected and corrected before journal metrics; discarded output not used. No cash-dividend,15minute monitoring,partialfills,+1Rreduce/trail or whole-share execution model. Daily target touches may not execute under venue timing. Thus not live eligible, regardless of favorable historical result. Source https://runway.adityaperswal.workers.dev/data/stock-bars ; executable test.py and full trades stored measured-dataset archive. Current signal false.
return-20.99
drawdown43.72
win rate37.5
sample40
avg_win12.75
avg_loss7.71
training_return-34.23
stress_return-29.93
mean_trade-0.04
CI_low-2.73
CI_high2.7
eligible0
PAXG/USD fixed daily20: chronological net audit with hourly replication
Registered note125 before results. Signal completed daily close > previous20 closes, desired long nextopen while true, exit nextopen whenfalse; no stop/target overlay. Baseline25bpfee+5bpslippageeachside; vectorbt allcash10k longonly, independentcash/shareledger maximumerror<1e-6. TrainingSep2024-Dec2025, diagnostic chronologicalholdoutJan1-Sep4 2026; present-dayuniverse selection means not independentprospective evidence. Training return -35.39128324423077%; lookbacks15/20/30 tested only training, fixed20retained. Daily return 13.0683957825984%, DD 11.86325956746298%; identicaldaily signal onhourly returns match with DD 18.182406721058307%. Separate20observed-hour rule return -83.3970961790418%, DD 83.39709617904185%, win 18.373493975903614%, N332; reject costlyturnover, gaps mean20observedbars notexact20hours. Doublecost daily 4.271874489078182%. UNI open terminalposition contributes to markedreturn;13naturalexits average negative. Sep4false signal would exitSep5open outsidecutoff, not missingexitlogic. No current completedSep4breakout; mandatoryvenueexits/+1Rmanagement and15minfills untested. XRP positive6trades insufficient forsize; others unstable/negative. Source https://runway.adityaperswal.workers.dev/data/crypto-bars ; artifacts/test.py and backtests.json, all metrics observationssaved. Failed initialtruncatedhourly outputs discarded; current figures final.
return13.07
drawdown18.18
win rate38.46
sample13
avg win pct5.01
avg loss pct3.69
open marks1
hourly20 return-83.4
hourly20 sample332
train return-35.39
LINK/USD fixed daily20: chronological net audit with hourly replication
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":"2023-01-03","end":"2026-09-04","formation":12,"variant":"range","oneway_bp":50,"return_pct":-28.12385009882602,"drawdown_pct":31.291728143940478,"sample":133,"win_rate_pct":39.097744360902254,"avg_win_pct":1.9292369622704066,"avg_loss_pct":2.416646380115092,"mean_pct":-0.7175040206861754,"open":0,"median_days":1,"ledger_error":3.637978807091713e-12,"quarter_kelly_notional":0}. 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.
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":"2023-01-03","end":"2026-09-04","formation":12,"variant":"range","oneway_bp":10,"return_pct":2.4722050265377327,"drawdown_pct":15.3989578462287,"sample":133,"win_rate_pct":43.609022556390975,"avg_win_pct":2.4964082045142737,"avg_loss_pct":1.7887891260458353,"mean_pct":0.07994354442398663,"open":0,"median_days":1,"ledger_error":3.637978807091713e-12,"quarter_kelly_notional":0.4475573160452466}. 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.
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":"2023-01-03","end":"2026-09-04","formation":12,"variant":"monthly","oneway_bp":50,"return_pct":50.18095186008438,"drawdown_pct":29.755470118651594,"sample":130,"win_rate_pct":54.61538461538461,"avg_win_pct":5.4409665219490275,"avg_loss_pct":4.279726840213174,"mean_pct":1.029267226813875,"open":3,"median_days":31,"ledger_error":3.637978807091713e-12,"quarter_kelly_notional":1.105035038930168}. 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.
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":"2023-01-03","end":"2026-09-04","formation":12,"variant":"monthly","oneway_bp":10,"return_pct":113.28528641367765,"drawdown_pct":19.26531615767312,"sample":130,"win_rate_pct":63.07692307692307,"avg_win_pct":5.494168131215912,"avg_loss_pct":4.400519395765688,"mean_pct":1.8407450443303972,"open":3,"median_days":31,"ledger_error":7.275957614183426e-12,"quarter_kelly_notional":1.9033899137626868}. 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.
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":9,"variant":"range","oneway_bp":10,"return_pct":-4.170201161148834,"drawdown_pct":14.738684056741047,"sample":190,"win_rate_pct":41.578947368421055,"avg_win_pct":1.9067039713182057,"avg_loss_pct":1.4510767619148521,"mean_pct":-0.054946878096896704,"open":0,"median_days":2,"ledger_error":7.275957614183426e-12,"quarter_kelly_notional":0}. 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.
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":9,"variant":"monthly","oneway_bp":10,"return_pct":-11.645714652375572,"drawdown_pct":53.2324636966186,"sample":188,"win_rate_pct":55.319148936170215,"avg_win_pct":4.10683836149498,"avg_loss_pct":5.0653323831541055,"mean_pct":0.008634411758154855,"open":2,"median_days":30.5,"ledger_error":3.637978807091713e-12,"quarter_kelly_notional":0.010376650883246796}. 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.
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":"range","oneway_bp":10,"return_pct":0.8948868166340329,"drawdown_pct":11.567294334637202,"sample":189,"win_rate_pct":39.15343915343915,"avg_win_pct":2.118600094280087,"avg_loss_pct":1.3176381971291384,"mean_pct":0.027767271464950047,"open":0,"median_days":2,"ledger_error":3.637978807091713e-12,"quarter_kelly_notional":0.24867266656348797}. 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.