{"schema_version":"v1","slug":"ts-momentum-us-sp500","name":"Time-Series Momentum (US S&P 500)","name_i18n":{},"verdict":"rejected","asset_class":"equity","categories":["factor","momentum","time-series"],"hypothesis":"Moskowitz, Ooi, Pedersen (2012): each stock's own past return predicts its future return. Applied to S&P 500 constituents.","rejection_reason":{"primary":"no_edge","secondary":[],"narrative":"Across 120 grid combinations, median Sharpe=-0.31, best=0.94. Primary failure mode: no_edge."},"target_universe":{"description":"S&P 500 constituents, ~503 stocks","symbols":[]},"performance_summary":{"sharpe_median":-0.3133,"max_drawdown_pct":-9.3,"win_rate":null,"alpha_annualized_pct":null,"p_value":0.39,"backtest_period":{"start":"2022-02-01","end":"2026-09-01"}},"grid_summary":{"sharpe":{"p25":-0.55,"p75":-0.03,"best":0.94,"worst":-1.44,"median":-0.31},"n_combinations":120},"methodology":{"notes":"{\"walk_forward_definition\": {\"type\": \"single_pass\", \"description\": \"Full period backtest without walk-forward split\", \"verdict_basis\": \"full_period\"}}","signal":null,"benchmark":null,"rebalance":null,"slippage_model":"open-on-open + variable bps fixed","position_sizing":"equal_weight","regime_definition":"GSPC SMA20/SMA60 three-class: UP (close>SMA20 AND SMA20>SMA60), DOWN (close<SMA20 AND SMA20<SMA60), FLAT (else)","transaction_cost_bps":5},"provenance":{"data_source":"kabu STATION REST API + J-Quants daily bars","source_project":"qbuntu-analysis","computed_asof":"2026-09-24T21:54:27","git_sha_z":"1455e77","git_sha_genkidama":"17a7674","python_version":"3.12.10","numpy_version":"2.4.2","pandas_version":"3.0.0","tier":"shallow"},"runs":[{"run_id":"r-ts-momentum-us-sp500-0000","name":"formation_days=20, holding_days=1, threshold_pct=0, cost_bps=5","params":{"cost_bps":5,"holding_days":1,"threshold_pct":0,"formation_days":20},"performance":{"sharpe":0.36,"max_drawdown_pct":-1.8,"alpha_annualized_pct":0.6,"p_value":0.44,"regime_breakdown":{"UP":0.448522,"DOWN":0.527982,"FLAT":0.159695}},"executed_at":"2026-09-23T20:15:23","notes":null},{"run_id":"r-ts-momentum-us-sp500-0001","name":"formation_days=20, holding_days=1, threshold_pct=0, cost_bps=10","params":{"cost_bps":10,"holding_days":1,"threshold_pct":0,"formation_days":20},"performance":{"sharpe":-0.39,"max_drawdown_pct":-3.9,"alpha_annualized_pct":-0.6,"p_value":0.39,"regime_breakdown":{"UP":-0.532981,"DOWN":0.018408,"FLAT":-0.563266}},"executed_at":"2026-09-23T20:15:24","notes":null},{"run_id":"r-ts-momentum-us-sp500-0002","name":"formation_days=20, holding_days=1, threshold_pct=0.05, cost_bps=5","params":{"cost_bps":5,"holding_days":1,"threshold_pct":0.05,"formation_days":20},"performance":{"sharpe":0.63,"max_drawdown_pct":-2.3,"alpha_annualized_pct":1.4,"p_value":0.18,"regime_breakdown":{"UP":0.89287,"DOWN":0.70025,"FLAT":0.293491}},"executed_at":"2026-09-23T20:15:24","notes":null},{"run_id":"r-ts-momentum-us-sp500-0004","name":"formation_days=20, holding_days=1, threshold_pct=0.1, cost_bps=5","params":{"cost_bps":5,"holding_days":1,"threshold_pct":0.1,"formation_days":20},"performance":{"sharpe":0.94,"max_drawdown_pct":-2.3,"alpha_annualized_pct":3,"p_value":0.045,"regime_breakdown":{"UP":1.383378,"DOWN":1.065912,"FLAT":0.308589}},"executed_at":"2026-09-23T20:15:24","notes":null},{"run_id":"r-ts-momentum-us-sp500-0007","name":"formation_days=20, holding_days=5, threshold_pct=0, cost_bps=10","params":{"cost_bps":10,"holding_days":5,"threshold_pct":0,"formation_days":20},"performance":{"sharpe":-0.42,"max_drawdown_pct":-7.5,"alpha_annualized_pct":-1.1,"p_value":0.37,"regime_breakdown":{"UP":-0.199568,"DOWN":0.241951,"FLAT":-0.974568}},"executed_at":"2026-09-23T20:15:25","notes":null},{"run_id":"r-ts-momentum-us-sp500-0011","name":"formation_days=20, holding_days=5, threshold_pct=0.1, cost_bps=10","params":{"cost_bps":10,"holding_days":5,"threshold_pct":0.1,"formation_days":20},"performance":{"sharpe":-0.25,"max_drawdown_pct":-17.8,"alpha_annualized_pct":-1.7,"p_value":0.58,"regime_breakdown":{"UP":-0.175605,"DOWN":0.054587,"FLAT":-0.460706}},"executed_at":"2026-09-23T20:15:26","notes":null},{"run_id":"r-ts-momentum-us-sp500-0015","name":"formation_days=20, holding_days=10, threshold_pct=0.05, cost_bps=10","params":{"cost_bps":10,"holding_days":10,"threshold_pct":0.05,"formation_days":20},"performance":{"sharpe":-0.68,"max_drawdown_pct":-17.1,"alpha_annualized_pct":-3.4,"p_value":0.14,"regime_breakdown":{"UP":-0.187059,"DOWN":-0.834128,"FLAT":-1.181754}},"executed_at":"2026-09-23T20:15:28","notes":null},{"run_id":"r-ts-momentum-us-sp500-0019","name":"formation_days=20, holding_days=20, threshold_pct=0, cost_bps=10","params":{"cost_bps":10,"holding_days":20,"threshold_pct":0,"formation_days":20},"performance":{"sharpe":-0.28,"max_drawdown_pct":-14.3,"alpha_annualized_pct":-1.4,"p_value":0.55,"regime_breakdown":{"UP":-0.037734,"DOWN":-0.039325,"FLAT":-0.799442}},"executed_at":"2026-09-23T20:15:29","notes":null},{"run_id":"r-ts-momentum-us-sp500-0023","name":"formation_days=20, holding_days=20, threshold_pct=0.1, cost_bps=10","params":{"cost_bps":10,"holding_days":20,"threshold_pct":0.1,"formation_days":20},"performance":{"sharpe":-0.03,"max_drawdown_pct":-28.5,"alpha_annualized_pct":-0.3,"p_value":0.95,"regime_breakdown":{"UP":0.368713,"DOWN":0.15634,"FLAT":-0.595117}},"executed_at":"2026-09-23T20:15:30","notes":null},{"run_id":"r-ts-momentum-us-sp500-0024","name":"formation_days=20, holding_days=60, threshold_pct=0, cost_bps=5","params":{"cost_bps":5,"holding_days":60,"threshold_pct":0,"formation_days":20},"performance":{"sharpe":-0.13,"max_drawdown_pct":-26.7,"alpha_annualized_pct":-1.8,"p_value":0.64,"regime_breakdown":{"UP":0.149239,"DOWN":-0.267083,"FLAT":-0.408691}},"executed_at":"2026-09-23T20:15:30","notes":null},{"run_id":"r-ts-momentum-us-sp500-0028","name":"formation_days=20, holding_days=60, threshold_pct=0.1, cost_bps=5","params":{"cost_bps":5,"holding_days":60,"threshold_pct":0.1,"formation_days":20},"performance":{"sharpe":-0.12,"max_drawdown_pct":-58.3,"alpha_annualized_pct":-4.5,"p_value":0.68,"regime_breakdown":{"UP":0.031704,"DOWN":-0.091789,"FLAT":-0.334963}},"executed_at":"2026-09-23T20:15:31","notes":null},{"run_id":"r-ts-momentum-us-sp500-0032","name":"formation_days=60, holding_days=1, threshold_pct=0.05, cost_bps=5","params":{"cost_bps":5,"holding_days":1,"threshold_pct":0.05,"formation_days":60},"performance":{"sharpe":0.01,"max_drawdown_pct":-2.8,"alpha_annualized_pct":0,"p_value":0.98,"regime_breakdown":{"UP":1.2213,"DOWN":-0.620026,"FLAT":-0.809071}},"executed_at":"2026-09-23T20:15:33","notes":null},{"run_id":"r-ts-momentum-us-sp500-0036","name":"formation_days=60, holding_days=5, threshold_pct=0, cost_bps=5","params":{"cost_bps":5,"holding_days":5,"threshold_pct":0,"formation_days":60},"performance":{"sharpe":-0.45,"max_drawdown_pct":-7.8,"alpha_annualized_pct":-1.2,"p_value":0.34,"regime_breakdown":{"UP":-0.34632,"DOWN":0.737305,"FLAT":-0.891479}},"executed_at":"2026-09-23T20:15:34","notes":null},{"run_id":"r-ts-momentum-us-sp500-0040","name":"formation_days=60, holding_days=5, threshold_pct=0.1, cost_bps=5","params":{"cost_bps":5,"holding_days":5,"threshold_pct":0.1,"formation_days":60},"performance":{"sharpe":-0.18,"max_drawdown_pct":-11,"alpha_annualized_pct":-0.8,"p_value":0.69,"regime_breakdown":{"UP":-0.181272,"DOWN":0.603731,"FLAT":-0.432519}},"executed_at":"2026-09-23T20:15:35","notes":null},{"run_id":"r-ts-momentum-us-sp500-0044","name":"formation_days=60, holding_days=10, threshold_pct=0.05, cost_bps=5","params":{"cost_bps":5,"holding_days":10,"threshold_pct":0.05,"formation_days":60},"performance":{"sharpe":-0.66,"max_drawdown_pct":-16.4,"alpha_annualized_pct":-3.3,"p_value":0.16,"regime_breakdown":{"UP":0.059071,"DOWN":-0.784539,"FLAT":-1.263087}},"executed_at":"2026-09-23T20:15:36","notes":null},{"run_id":"r-ts-momentum-us-sp500-0048","name":"formation_days=60, holding_days=20, threshold_pct=0, cost_bps=5","params":{"cost_bps":5,"holding_days":20,"threshold_pct":0,"formation_days":60},"performance":{"sharpe":-0.49,"max_drawdown_pct":-16.4,"alpha_annualized_pct":-2.6,"p_value":0.3,"regime_breakdown":{"UP":-0.208986,"DOWN":-0.702661,"FLAT":-0.647609}},"executed_at":"2026-09-23T20:15:37","notes":null},{"run_id":"r-ts-momentum-us-sp500-0052","name":"formation_days=60, holding_days=20, threshold_pct=0.1, cost_bps=5","params":{"cost_bps":5,"holding_days":20,"threshold_pct":0.1,"formation_days":60},"performance":{"sharpe":-0.38,"max_drawdown_pct":-28.1,"alpha_annualized_pct":-3.8,"p_value":0.42,"regime_breakdown":{"UP":-0.045817,"DOWN":-0.433578,"FLAT":-0.655207}},"executed_at":"2026-09-23T20:15:38","notes":null},{"run_id":"r-ts-momentum-us-sp500-0056","name":"formation_days=60, holding_days=60, threshold_pct=0.05, cost_bps=5","params":{"cost_bps":5,"holding_days":60,"threshold_pct":0.05,"formation_days":60},"performance":{"sharpe":-0.17,"max_drawdown_pct":-31.2,"alpha_annualized_pct":-2.9,"p_value":0.56,"regime_breakdown":{"UP":-0.026233,"DOWN":-1.200572,"FLAT":-0.004728}},"executed_at":"2026-09-23T20:15:39","notes":null},{"run_id":"r-ts-momentum-us-sp500-0060","name":"formation_days=120, holding_days=1, threshold_pct=0, cost_bps=5","params":{"cost_bps":5,"holding_days":1,"threshold_pct":0,"formation_days":120},"performance":{"sharpe":-0.69,"max_drawdown_pct":-3.6,"alpha_annualized_pct":-1.1,"p_value":0.16,"regime_breakdown":{"UP":0.111911,"DOWN":-1.116269,"FLAT":-1.429745}},"executed_at":"2026-09-23T20:15:41","notes":null},{"run_id":"r-ts-momentum-us-sp500-0061","name":"formation_days=120, holding_days=1, threshold_pct=0, cost_bps=10","params":{"cost_bps":10,"holding_days":1,"threshold_pct":0,"formation_days":120},"performance":{"sharpe":-1.44,"max_drawdown_pct":-7.8,"alpha_annualized_pct":-2.3,"p_value":0.0041,"regime_breakdown":{"UP":-0.836066,"DOWN":-1.575337,"FLAT":-2.214218}},"executed_at":"2026-09-23T20:15:41","notes":null},{"run_id":"r-ts-momentum-us-sp500-0065","name":"formation_days=120, holding_days=1, threshold_pct=0.1, cost_bps=10","params":{"cost_bps":10,"holding_days":1,"threshold_pct":0.1,"formation_days":120},"performance":{"sharpe":-0.84,"max_drawdown_pct":-6.2,"alpha_annualized_pct":-2,"p_value":0.084,"regime_breakdown":{"UP":-0.026767,"DOWN":-0.986391,"FLAT":-1.79142}},"executed_at":"2026-09-23T20:15:42","notes":null},{"run_id":"r-ts-momentum-us-sp500-0069","name":"formation_days=120, holding_days=5, threshold_pct=0.05, cost_bps=10","params":{"cost_bps":10,"holding_days":5,"threshold_pct":0.05,"formation_days":120},"performance":{"sharpe":-0.76,"max_drawdown_pct":-9.8,"alpha_annualized_pct":-2.4,"p_value":0.12,"regime_breakdown":{"UP":-0.620141,"DOWN":0.462902,"FLAT":-1.346034}},"executed_at":"2026-09-23T20:15:43","notes":null},{"run_id":"r-ts-momentum-us-sp500-0073","name":"formation_days=120, holding_days=10, threshold_pct=0, cost_bps=10","params":{"cost_bps":10,"holding_days":10,"threshold_pct":0,"formation_days":120},"performance":{"sharpe":-1.19,"max_drawdown_pct":-12.9,"alpha_annualized_pct":-3.8,"p_value":0.016,"regime_breakdown":{"UP":-0.49158,"DOWN":-1.294904,"FLAT":-1.966659}},"executed_at":"2026-09-23T20:15:44","notes":null},{"run_id":"r-ts-momentum-us-sp500-0077","name":"formation_days=120, holding_days=10, threshold_pct=0.1, cost_bps=10","params":{"cost_bps":10,"holding_days":10,"threshold_pct":0.1,"formation_days":120},"performance":{"sharpe":-0.69,"max_drawdown_pct":-11.2,"alpha_annualized_pct":-3.1,"p_value":0.16,"regime_breakdown":{"UP":0.063629,"DOWN":-0.843248,"FLAT":-1.388686}},"executed_at":"2026-09-23T20:15:45","notes":null},{"run_id":"r-ts-momentum-us-sp500-0081","name":"formation_days=120, holding_days=20, threshold_pct=0.05, cost_bps=10","params":{"cost_bps":10,"holding_days":20,"threshold_pct":0.05,"formation_days":120},"performance":{"sharpe":-0.49,"max_drawdown_pct":-15,"alpha_annualized_pct":-3.3,"p_value":0.32,"regime_breakdown":{"UP":-0.331667,"DOWN":-0.737957,"FLAT":-0.560104}},"executed_at":"2026-09-23T20:15:47","notes":null},{"run_id":"r-ts-momentum-us-sp500-0085","name":"formation_days=120, holding_days=60, threshold_pct=0, cost_bps=10","params":{"cost_bps":10,"holding_days":60,"threshold_pct":0,"formation_days":120},"performance":{"sharpe":0.18,"max_drawdown_pct":-12,"alpha_annualized_pct":2,"p_value":0.54,"regime_breakdown":{"UP":0.209703,"DOWN":0.067431,"FLAT":0.157204}},"executed_at":"2026-09-23T20:15:48","notes":null},{"run_id":"r-ts-momentum-us-sp500-0089","name":"formation_days=120, holding_days=60, threshold_pct=0.1, cost_bps=10","params":{"cost_bps":10,"holding_days":60,"threshold_pct":0.1,"formation_days":120},"performance":{"sharpe":0.21,"max_drawdown_pct":-20.4,"alpha_annualized_pct":3.5,"p_value":0.47,"regime_breakdown":{"UP":0.217451,"DOWN":0.063006,"FLAT":0.235455}},"executed_at":"2026-09-23T20:15:49","notes":null},{"run_id":"r-ts-momentum-us-sp500-0090","name":"formation_days=250, holding_days=1, threshold_pct=0, cost_bps=5","params":{"cost_bps":5,"holding_days":1,"threshold_pct":0,"formation_days":250},"performance":{"sharpe":-0.53,"max_drawdown_pct":-3.5,"alpha_annualized_pct":-0.8,"p_value":0.31,"regime_breakdown":{"UP":-0.070248,"DOWN":0.030059,"FLAT":-1.734982}},"executed_at":"2026-09-23T20:15:49","notes":null},{"run_id":"r-ts-momentum-us-sp500-0094","name":"formation_days=250, holding_days=1, threshold_pct=0.1, cost_bps=5","params":{"cost_bps":5,"holding_days":1,"threshold_pct":0.1,"formation_days":250},"performance":{"sharpe":-0.51,"max_drawdown_pct":-4.4,"alpha_annualized_pct":-1,"p_value":0.33,"regime_breakdown":{"UP":-0.114467,"DOWN":-0.343943,"FLAT":-1.240803}},"executed_at":"2026-09-23T20:15:50","notes":null},{"run_id":"r-ts-momentum-us-sp500-0098","name":"formation_days=250, holding_days=5, threshold_pct=0.05, cost_bps=5","params":{"cost_bps":5,"holding_days":5,"threshold_pct":0.05,"formation_days":250},"performance":{"sharpe":-0.07,"max_drawdown_pct":-6.6,"alpha_annualized_pct":-0.2,"p_value":0.89,"regime_breakdown":{"UP":-0.258565,"DOWN":1.92999,"FLAT":-0.309695}},"executed_at":"2026-09-23T20:15:51","notes":null}],"facts":[{"fact_id":"ts-momentum-us-sp500-fact-best-sharpe","strategy_slug":"ts-momentum-us-sp500","claim":"Best grid Sharpe ratio is 0.94 (p=0.045).","value":0.94,"value_text":null,"unit":"sharpe_ratio","context":"period 2022-02-01–2026-09-01; cost=5bps","supports_verdict":"rejected","source_run_id":"r-ts-momentum-us-sp500-0004","search_tsv":"'-01':12,15 '-02':11 '-09':14 '0.045':8 '0.94':6 '2022':10 '2026':13 '5bps':17 'best':1 'cost':16 'grid':2 'p':7 'period':9 'ratio':4 'sharp':3","cite_url":"https://qbuntu.ai/cite/ts-momentum-us-sp500-fact-best-sharpe"},{"fact_id":"ts-momentum-us-sp500-fact-median-sharpe","strategy_slug":"ts-momentum-us-sp500","claim":"Median Sharpe across 120 grid runs is -0.31.","value":-0.31,"value_text":null,"unit":"sharpe_ratio","context":"Full grid of 120 parameter combinations.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.31':8 '120':4,12 'across':3 'combin':14 'full':9 'grid':5,10 'median':1 'paramet':13 'run':6 'sharp':2","cite_url":"https://qbuntu.ai/cite/ts-momentum-us-sp500-fact-median-sharpe"},{"fact_id":"ts-momentum-us-sp500-fact-regime-down","strategy_slug":"ts-momentum-us-sp500","claim":"Median Sharpe in DOWN regime is -0.07 across 120 runs.","value":-0.07,"value_text":null,"unit":"sharpe_ratio","context":"Regime=DOWN, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.07':7 '120':9 'across':8 'classif':15 'median':1 'n225':13 'regim':5,11 'run':10 'sharp':2 'sma20/sma60':14","cite_url":"https://qbuntu.ai/cite/ts-momentum-us-sp500-fact-regime-down"},{"fact_id":"ts-momentum-us-sp500-fact-regime-flat","strategy_slug":"ts-momentum-us-sp500","claim":"Median Sharpe in FLAT regime is -0.66 across 120 runs.","value":-0.66,"value_text":null,"unit":"sharpe_ratio","context":"Regime=FLAT, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.66':7 '120':9 'across':8 'classif':15 'flat':4,12 'median':1 'n225':13 'regim':5,11 'run':10 'sharp':2 'sma20/sma60':14","cite_url":"https://qbuntu.ai/cite/ts-momentum-us-sp500-fact-regime-flat"},{"fact_id":"ts-momentum-us-sp500-fact-regime-up","strategy_slug":"ts-momentum-us-sp500","claim":"Median Sharpe in UP regime is -0.02 across 120 runs.","value":-0.02,"value_text":null,"unit":"sharpe_ratio","context":"Regime=UP, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.02':7 '120':9 'across':8 'classif':15 'median':1 'n225':13 'regim':5,11 'run':10 'sharp':2 'sma20/sma60':14","cite_url":"https://qbuntu.ai/cite/ts-momentum-us-sp500-fact-regime-up"}],"related_strategies":[{"related_slug":"ts-momentum-jp-all","relation":"same_strategy"},{"related_slug":"ts-momentum-jp-growth","relation":"same_strategy"}],"tags":["momentum","time-series","factor","us-market","sp500","grid-search"],"_links":{"self":"https://qbuntu.ai/v1/strategies/ts-momentum-us-sp500","html":"https://qbuntu.ai/strategies/ts-momentum-us-sp500","markdown":"https://qbuntu.ai/ai/strategies/ts-momentum-us-sp500.md"}}