{"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.23, best=0.99. Primary failure mode: no_edge."},"target_universe":{"description":"S&P 500 constituents, ~503 stocks","symbols":[]},"performance_summary":{"sharpe_median":-0.2275,"max_drawdown_pct":-8.7,"win_rate":null,"alpha_annualized_pct":null,"p_value":0.46,"backtest_period":{"start":"2022-02-01","end":"2026-06-01"}},"grid_summary":{"sharpe":{"p25":-0.49,"p75":0.07,"best":0.99,"worst":-1.33,"median":-0.23},"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-07-28T01:10:28","git_sha_z":"bfafe7d","git_sha_genkidama":"711b855","python_version":"3.10.11","numpy_version":"2.2.6","pandas_version":"2.3.3","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.41,"max_drawdown_pct":-1.8,"alpha_annualized_pct":0.7,"p_value":0.39,"regime_breakdown":{"UP":0.448522,"DOWN":0.527982,"FLAT":0.277111}},"executed_at":"2026-07-28T01:06:52","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.33,"max_drawdown_pct":-3.3,"alpha_annualized_pct":-0.5,"p_value":0.49,"regime_breakdown":{"UP":-0.532981,"DOWN":0.018408,"FLAT":-0.391175}},"executed_at":"2026-07-28T01:06:52","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.69,"max_drawdown_pct":-1.9,"alpha_annualized_pct":1.6,"p_value":0.14,"regime_breakdown":{"UP":0.89287,"DOWN":0.70025,"FLAT":0.447217}},"executed_at":"2026-07-28T01:06:52","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.99,"max_drawdown_pct":-2.3,"alpha_annualized_pct":3.2,"p_value":0.039,"regime_breakdown":{"UP":1.383378,"DOWN":1.065912,"FLAT":0.397042}},"executed_at":"2026-07-28T01:06:53","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.3,"max_drawdown_pct":-6.1,"alpha_annualized_pct":-0.8,"p_value":0.53,"regime_breakdown":{"UP":-0.199568,"DOWN":0.241951,"FLAT":-0.729072}},"executed_at":"2026-07-28T01:06:53","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.16,"max_drawdown_pct":-16.5,"alpha_annualized_pct":-1.1,"p_value":0.73,"regime_breakdown":{"UP":-0.175605,"DOWN":0.054587,"FLAT":-0.215077}},"executed_at":"2026-07-28T01:06:53","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.55,"max_drawdown_pct":-13.5,"alpha_annualized_pct":-2.7,"p_value":0.25,"regime_breakdown":{"UP":0.152769,"DOWN":-0.834128,"FLAT":-1.241354}},"executed_at":"2026-07-28T01:06:53","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.18,"max_drawdown_pct":-14.3,"alpha_annualized_pct":-0.9,"p_value":0.71,"regime_breakdown":{"UP":0.137479,"DOWN":-0.039325,"FLAT":-0.770131}},"executed_at":"2026-07-28T01:06:54","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.06,"max_drawdown_pct":-28.5,"alpha_annualized_pct":0.8,"p_value":0.89,"regime_breakdown":{"UP":0.467121,"DOWN":0.15634,"FLAT":-0.489757}},"executed_at":"2026-07-28T01:06:54","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.22,"max_drawdown_pct":-26.7,"alpha_annualized_pct":-2.9,"p_value":0.44,"regime_breakdown":{"UP":0.184658,"DOWN":-0.807503,"FLAT":-0.408691}},"executed_at":"2026-07-28T01:06:54","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.19,"max_drawdown_pct":-58.3,"alpha_annualized_pct":-7.4,"p_value":0.5,"regime_breakdown":{"UP":0.09649,"DOWN":-0.635252,"FLAT":-0.334963}},"executed_at":"2026-07-28T01:06:54","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.07,"max_drawdown_pct":-2.8,"alpha_annualized_pct":0.1,"p_value":0.89,"regime_breakdown":{"UP":1.2213,"DOWN":-0.620026,"FLAT":-0.727674}},"executed_at":"2026-07-28T01:06:54","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.28,"max_drawdown_pct":-7.3,"alpha_annualized_pct":-0.7,"p_value":0.57,"regime_breakdown":{"UP":-0.34632,"DOWN":0.737305,"FLAT":-0.516898}},"executed_at":"2026-07-28T01:06:55","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.04,"max_drawdown_pct":-11,"alpha_annualized_pct":-0.2,"p_value":0.93,"regime_breakdown":{"UP":-0.181272,"DOWN":0.603731,"FLAT":-0.099468}},"executed_at":"2026-07-28T01:06:55","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.43,"max_drawdown_pct":-14.2,"alpha_annualized_pct":-2.1,"p_value":0.38,"regime_breakdown":{"UP":0.435769,"DOWN":-0.784539,"FLAT":-1.03373}},"executed_at":"2026-07-28T01:06:55","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.3,"max_drawdown_pct":-16.4,"alpha_annualized_pct":-1.5,"p_value":0.54,"regime_breakdown":{"UP":0.077585,"DOWN":-0.702661,"FLAT":-0.429104}},"executed_at":"2026-07-28T01:06:55","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.23,"max_drawdown_pct":-28.1,"alpha_annualized_pct":-2.3,"p_value":0.64,"regime_breakdown":{"UP":0.162597,"DOWN":-0.433578,"FLAT":-0.496423}},"executed_at":"2026-07-28T01:06:56","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.09,"max_drawdown_pct":-31.2,"alpha_annualized_pct":-1.6,"p_value":0.75,"regime_breakdown":{"UP":0.307176,"DOWN":-2.092623,"FLAT":-0.004728}},"executed_at":"2026-07-28T01:06:56","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.59,"max_drawdown_pct":-3.6,"alpha_annualized_pct":-1,"p_value":0.24,"regime_breakdown":{"UP":0.111911,"DOWN":-1.116269,"FLAT":-1.206282}},"executed_at":"2026-07-28T01:06:56","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.33,"max_drawdown_pct":-7.4,"alpha_annualized_pct":-2.2,"p_value":0.0097,"regime_breakdown":{"UP":-0.836066,"DOWN":-1.575337,"FLAT":-1.957415}},"executed_at":"2026-07-28T01:06:56","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.73,"max_drawdown_pct":-6.2,"alpha_annualized_pct":-1.7,"p_value":0.15,"regime_breakdown":{"UP":-0.026767,"DOWN":-0.986391,"FLAT":-1.530885}},"executed_at":"2026-07-28T01:06:56","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.73,"max_drawdown_pct":-9.8,"alpha_annualized_pct":-2.3,"p_value":0.15,"regime_breakdown":{"UP":-0.620141,"DOWN":0.462902,"FLAT":-1.340625}},"executed_at":"2026-07-28T01:06:57","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.24,"max_drawdown_pct":-12.4,"alpha_annualized_pct":-4.1,"p_value":0.016,"regime_breakdown":{"UP":-0.506311,"DOWN":-1.294904,"FLAT":-2.229511}},"executed_at":"2026-07-28T01:06:57","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.75,"max_drawdown_pct":-11.1,"alpha_annualized_pct":-3.5,"p_value":0.14,"regime_breakdown":{"UP":0.006576,"DOWN":-0.843248,"FLAT":-1.562413}},"executed_at":"2026-07-28T01:06:57","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.37,"max_drawdown_pct":-15,"alpha_annualized_pct":-2.5,"p_value":0.46,"regime_breakdown":{"UP":-0.279781,"DOWN":-0.737957,"FLAT":-0.325599}},"executed_at":"2026-07-28T01:06:57","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.31,"max_drawdown_pct":-12,"alpha_annualized_pct":3.2,"p_value":0.31,"regime_breakdown":{"UP":0.525033,"DOWN":-0.829484,"FLAT":0.157204}},"executed_at":"2026-07-28T01:06:58","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.25,"max_drawdown_pct":-20.4,"alpha_annualized_pct":4.1,"p_value":0.41,"regime_breakdown":{"UP":0.401678,"DOWN":-1.313671,"FLAT":0.235455}},"executed_at":"2026-07-28T01:06:58","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.39,"max_drawdown_pct":-3.5,"alpha_annualized_pct":-0.6,"p_value":0.46,"regime_breakdown":{"UP":-0.070248,"DOWN":0.030059,"FLAT":-1.379491}},"executed_at":"2026-07-28T01:06:58","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.38,"max_drawdown_pct":-4.4,"alpha_annualized_pct":-0.7,"p_value":0.48,"regime_breakdown":{"UP":-0.114467,"DOWN":-0.343943,"FLAT":-0.871322}},"executed_at":"2026-07-28T01:06:58","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.1,"max_drawdown_pct":-6.6,"alpha_annualized_pct":-0.3,"p_value":0.86,"regime_breakdown":{"UP":-0.258565,"DOWN":1.92999,"FLAT":-0.448451}},"executed_at":"2026-07-28T01:06:58","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.99 (p=0.039).","value":0.99,"value_text":null,"unit":"sharpe_ratio","context":"period 2022-02-01–2026-06-01; cost=5bps","supports_verdict":"rejected","source_run_id":"r-ts-momentum-us-sp500-0004","search_tsv":"'-01':12,15 '-02':11 '-06':14 '0.039':8 '0.99':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.23.","value":-0.23,"value_text":null,"unit":"sharpe_ratio","context":"Full grid of 120 parameter combinations.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.23':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.38 across 120 runs.","value":-0.38,"value_text":null,"unit":"sharpe_ratio","context":"Regime=DOWN, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.38':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.50 across 120 runs.","value":-0.5,"value_text":null,"unit":"sharpe_ratio","context":"Regime=FLAT, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.50':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.09 across 120 runs.","value":0.09,"value_text":null,"unit":"sharpe_ratio","context":"Regime=UP, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'0.09':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"}}