{"schema_version":"v1","slug":"dispersion-us-sp500","name":"Cross-Sectional Dispersion Trading (US S&P 500)","name_i18n":{},"verdict":"marginal","asset_class":"equity","categories":["dispersion","regime","timing"],"hypothesis":"Stivers (2010), Jiang (2010): cross-sectional return dispersion as a market timing signal. Applied to S&P 500 constituents.","rejection_reason":{"primary":"no_edge","secondary":[],"narrative":"Across 384 grid combinations, median Sharpe=0.14, best=0.64. Primary failure mode: no_edge."},"target_universe":{"description":"S&P 500 constituents, ~503 stocks","symbols":[]},"performance_summary":{"sharpe_median":0.1438,"max_drawdown_pct":-30.1,"win_rate":null,"alpha_annualized_pct":null,"p_value":0.34,"backtest_period":{"start":"2022-02-01","end":"2026-06-01"}},"grid_summary":{"sharpe":{"p25":-0.36,"p75":0.43,"best":0.64,"worst":-1.07,"median":0.14},"n_combinations":384},"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-31T01:31:48","git_sha_z":"18193e9","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-dispersion-us-sp500-0000","name":"dispersion_window=10, holding_days=5, base_signal=momentum_20, n_stocks=5, cost_bps=5","params":{"cost_bps":5,"n_stocks":5,"base_signal":"momentum_20","holding_days":5,"dispersion_window":10},"performance":{"sharpe":0.47,"max_drawdown_pct":-18.5,"alpha_annualized_pct":7.3,"p_value":0.32,"regime_breakdown":{"UP":0.393602,"DOWN":0.561441,"FLAT":0.57273}},"executed_at":"2026-07-31T01:27:26","notes":null},{"run_id":"r-dispersion-us-sp500-0001","name":"dispersion_window=10, holding_days=5, base_signal=momentum_20, n_stocks=5, cost_bps=10","params":{"cost_bps":10,"n_stocks":5,"base_signal":"momentum_20","holding_days":5,"dispersion_window":10},"performance":{"sharpe":0.4,"max_drawdown_pct":-18.9,"alpha_annualized_pct":6.1,"p_value":0.4,"regime_breakdown":{"UP":0.324405,"DOWN":0.467929,"FLAT":0.483929}},"executed_at":"2026-07-31T01:27:26","notes":null},{"run_id":"r-dispersion-us-sp500-0002","name":"dispersion_window=10, holding_days=5, base_signal=momentum_20, n_stocks=10, cost_bps=5","params":{"cost_bps":5,"n_stocks":10,"base_signal":"momentum_20","holding_days":5,"dispersion_window":10},"performance":{"sharpe":0.55,"max_drawdown_pct":-12.6,"alpha_annualized_pct":6.7,"p_value":0.25,"regime_breakdown":{"UP":0.420954,"DOWN":1.175495,"FLAT":0.474239}},"executed_at":"2026-07-31T01:27:26","notes":null},{"run_id":"r-dispersion-us-sp500-0006","name":"dispersion_window=10, holding_days=5, base_signal=momentum_20, n_stocks=50, cost_bps=5","params":{"cost_bps":5,"n_stocks":50,"base_signal":"momentum_20","holding_days":5,"dispersion_window":10},"performance":{"sharpe":0.19,"max_drawdown_pct":-6.8,"alpha_annualized_pct":1.1,"p_value":0.69,"regime_breakdown":{"UP":0.405864,"DOWN":0.700707,"FLAT":-0.393044}},"executed_at":"2026-07-31T01:27:27","notes":null},{"run_id":"r-dispersion-us-sp500-0008","name":"dispersion_window=10, holding_days=5, base_signal=momentum_60, n_stocks=5, cost_bps=5","params":{"cost_bps":5,"n_stocks":5,"base_signal":"momentum_60","holding_days":5,"dispersion_window":10},"performance":{"sharpe":0.59,"max_drawdown_pct":-14.9,"alpha_annualized_pct":10.7,"p_value":0.23,"regime_breakdown":{"UP":0.637977,"DOWN":1.464651,"FLAT":0.219201}},"executed_at":"2026-07-31T01:27:27","notes":null},{"run_id":"r-dispersion-us-sp500-0016","name":"dispersion_window=10, holding_days=5, base_signal=mean_reversion, n_stocks=5, cost_bps=5","params":{"cost_bps":5,"n_stocks":5,"base_signal":"mean_reversion","holding_days":5,"dispersion_window":10},"performance":{"sharpe":-0.79,"max_drawdown_pct":-30.8,"alpha_annualized_pct":-6.4,"p_value":0.098,"regime_breakdown":{"UP":-0.549589,"DOWN":-0.260651,"FLAT":-1.87653}},"executed_at":"2026-07-31T01:27:27","notes":null},{"run_id":"r-dispersion-us-sp500-0022","name":"dispersion_window=10, holding_days=5, base_signal=mean_reversion, n_stocks=50, cost_bps=5","params":{"cost_bps":5,"n_stocks":50,"base_signal":"mean_reversion","holding_days":5,"dispersion_window":10},"performance":{"sharpe":-0.65,"max_drawdown_pct":-17.7,"alpha_annualized_pct":-3.4,"p_value":0.17,"regime_breakdown":{"UP":-0.278051,"DOWN":-1.168532,"FLAT":-1.213288}},"executed_at":"2026-07-31T01:27:28","notes":null},{"run_id":"r-dispersion-us-sp500-0039","name":"dispersion_window=10, holding_days=10, base_signal=momentum_60, n_stocks=50, cost_bps=10","params":{"cost_bps":10,"n_stocks":50,"base_signal":"momentum_60","holding_days":10,"dispersion_window":10},"performance":{"sharpe":-0.32,"max_drawdown_pct":-20.8,"alpha_annualized_pct":-2.6,"p_value":0.51,"regime_breakdown":{"UP":0.399586,"DOWN":-0.666854,"FLAT":-0.850591}},"executed_at":"2026-07-31T01:27:29","notes":null},{"run_id":"r-dispersion-us-sp500-0050","name":"dispersion_window=10, holding_days=20, base_signal=momentum_20, n_stocks=10, cost_bps=5","params":{"cost_bps":5,"n_stocks":10,"base_signal":"momentum_20","holding_days":20,"dispersion_window":10},"performance":{"sharpe":0.64,"max_drawdown_pct":-31.2,"alpha_annualized_pct":15.3,"p_value":0.18,"regime_breakdown":{"UP":1.097403,"DOWN":0.982229,"FLAT":-0.07566}},"executed_at":"2026-07-31T01:27:29","notes":null},{"run_id":"r-dispersion-us-sp500-0057","name":"dispersion_window=10, holding_days=20, base_signal=momentum_60, n_stocks=5, cost_bps=10","params":{"cost_bps":10,"n_stocks":5,"base_signal":"momentum_60","holding_days":20,"dispersion_window":10},"performance":{"sharpe":0.4,"max_drawdown_pct":-53.3,"alpha_annualized_pct":15.2,"p_value":0.42,"regime_breakdown":{"UP":1.344903,"DOWN":0.022351,"FLAT":-0.490233}},"executed_at":"2026-07-31T01:27:30","notes":null},{"run_id":"r-dispersion-us-sp500-0072","name":"dispersion_window=10, holding_days=60, base_signal=momentum_20, n_stocks=5, cost_bps=5","params":{"cost_bps":5,"n_stocks":5,"base_signal":"momentum_20","holding_days":60,"dispersion_window":10},"performance":{"sharpe":0.38,"max_drawdown_pct":-83.1,"alpha_annualized_pct":44.4,"p_value":0.19,"regime_breakdown":{"UP":0.641891,"DOWN":-0.059422,"FLAT":-0.031991}},"executed_at":"2026-07-31T01:27:31","notes":null},{"run_id":"r-dispersion-us-sp500-0075","name":"dispersion_window=10, holding_days=60, base_signal=momentum_20, n_stocks=10, cost_bps=10","params":{"cost_bps":10,"n_stocks":10,"base_signal":"momentum_20","holding_days":60,"dispersion_window":10},"performance":{"sharpe":0.47,"max_drawdown_pct":-47.5,"alpha_annualized_pct":35,"p_value":0.11,"regime_breakdown":{"UP":0.696707,"DOWN":-0.079903,"FLAT":0.319081}},"executed_at":"2026-07-31T01:27:31","notes":null},{"run_id":"r-dispersion-us-sp500-0092","name":"dispersion_window=10, holding_days=60, base_signal=mean_reversion, n_stocks=20, cost_bps=5","params":{"cost_bps":5,"n_stocks":20,"base_signal":"mean_reversion","holding_days":60,"dispersion_window":10},"performance":{"sharpe":-0.25,"max_drawdown_pct":-45.1,"alpha_annualized_pct":-8.1,"p_value":0.38,"regime_breakdown":{"UP":-0.181396,"DOWN":-0.168177,"FLAT":-0.438162}},"executed_at":"2026-07-31T01:27:32","notes":null},{"run_id":"r-dispersion-us-sp500-0109","name":"dispersion_window=20, holding_days=5, base_signal=momentum_60, n_stocks=20, cost_bps=10","params":{"cost_bps":10,"n_stocks":20,"base_signal":"momentum_60","holding_days":5,"dispersion_window":20},"performance":{"sharpe":0.26,"max_drawdown_pct":-13.6,"alpha_annualized_pct":2.9,"p_value":0.58,"regime_breakdown":{"UP":0.167902,"DOWN":1.088011,"FLAT":0.030851}},"executed_at":"2026-07-31T01:27:33","notes":null},{"run_id":"r-dispersion-us-sp500-0126","name":"dispersion_window=20, holding_days=10, base_signal=momentum_20, n_stocks=50, cost_bps=5","params":{"cost_bps":5,"n_stocks":50,"base_signal":"momentum_20","holding_days":10,"dispersion_window":20},"performance":{"sharpe":0.01,"max_drawdown_pct":-12.6,"alpha_annualized_pct":0.1,"p_value":0.99,"regime_breakdown":{"UP":1.036713,"DOWN":-0.413159,"FLAT":-0.771898}},"executed_at":"2026-07-31T01:27:34","notes":null},{"run_id":"r-dispersion-us-sp500-0143","name":"dispersion_window=20, holding_days=10, base_signal=mean_reversion, n_stocks=50, cost_bps=10","params":{"cost_bps":10,"n_stocks":50,"base_signal":"mean_reversion","holding_days":10,"dispersion_window":20},"performance":{"sharpe":-0.52,"max_drawdown_pct":-21,"alpha_annualized_pct":-3.3,"p_value":0.28,"regime_breakdown":{"UP":-1.033323,"DOWN":-0.272275,"FLAT":0.093901}},"executed_at":"2026-07-31T01:27:35","notes":null},{"run_id":"r-dispersion-us-sp500-0160","name":"dispersion_window=20, holding_days=20, base_signal=mean_reversion, n_stocks=5, cost_bps=5","params":{"cost_bps":5,"n_stocks":5,"base_signal":"mean_reversion","holding_days":20,"dispersion_window":20},"performance":{"sharpe":-0.24,"max_drawdown_pct":-35.9,"alpha_annualized_pct":-4.5,"p_value":0.61,"regime_breakdown":{"UP":-0.802099,"DOWN":1.536899,"FLAT":-0.656207}},"executed_at":"2026-07-31T01:27:36","notes":null},{"run_id":"r-dispersion-us-sp500-0177","name":"dispersion_window=20, holding_days=60, base_signal=momentum_60, n_stocks=5, cost_bps=10","params":{"cost_bps":10,"n_stocks":5,"base_signal":"momentum_60","holding_days":60,"dispersion_window":20},"performance":{"sharpe":0.55,"max_drawdown_pct":-61.4,"alpha_annualized_pct":61.6,"p_value":0.064,"regime_breakdown":{"UP":0.979224,"DOWN":-1.628309,"FLAT":0.399151}},"executed_at":"2026-07-31T01:27:37","notes":null},{"run_id":"r-dispersion-us-sp500-0194","name":"dispersion_window=40, holding_days=5, base_signal=momentum_20, n_stocks=10, cost_bps=5","params":{"cost_bps":5,"n_stocks":10,"base_signal":"momentum_20","holding_days":5,"dispersion_window":40},"performance":{"sharpe":0.55,"max_drawdown_pct":-12.6,"alpha_annualized_pct":6.7,"p_value":0.25,"regime_breakdown":{"UP":0.420954,"DOWN":1.175495,"FLAT":0.474239}},"executed_at":"2026-07-31T01:27:38","notes":null},{"run_id":"r-dispersion-us-sp500-0211","name":"dispersion_window=40, holding_days=5, base_signal=mean_reversion, n_stocks=10, cost_bps=10","params":{"cost_bps":10,"n_stocks":10,"base_signal":"mean_reversion","holding_days":5,"dispersion_window":40},"performance":{"sharpe":-1.03,"max_drawdown_pct":-33.6,"alpha_annualized_pct":-7.7,"p_value":0.032,"regime_breakdown":{"UP":-0.639477,"DOWN":-0.961849,"FLAT":-2.164297}},"executed_at":"2026-07-31T01:27:39","notes":null},{"run_id":"r-dispersion-us-sp500-0228","name":"dispersion_window=40, holding_days=10, base_signal=momentum_60, n_stocks=20, cost_bps=5","params":{"cost_bps":5,"n_stocks":20,"base_signal":"momentum_60","holding_days":10,"dispersion_window":40},"performance":{"sharpe":0.12,"max_drawdown_pct":-17.8,"alpha_annualized_pct":1.4,"p_value":0.81,"regime_breakdown":{"UP":1.104824,"DOWN":-0.02035,"FLAT":-0.643712}},"executed_at":"2026-07-31T01:27:40","notes":null},{"run_id":"r-dispersion-us-sp500-0245","name":"dispersion_window=40, holding_days=20, base_signal=momentum_20, n_stocks=20, cost_bps=10","params":{"cost_bps":10,"n_stocks":20,"base_signal":"momentum_20","holding_days":20,"dispersion_window":40},"performance":{"sharpe":0.4,"max_drawdown_pct":-26.3,"alpha_annualized_pct":7,"p_value":0.4,"regime_breakdown":{"UP":1.199927,"DOWN":0.24543,"FLAT":-0.282327}},"executed_at":"2026-07-31T01:27:41","notes":null},{"run_id":"r-dispersion-us-sp500-0262","name":"dispersion_window=40, holding_days=20, base_signal=mean_reversion, n_stocks=50, cost_bps=5","params":{"cost_bps":5,"n_stocks":50,"base_signal":"mean_reversion","holding_days":20,"dispersion_window":40},"performance":{"sharpe":-0.5,"max_drawdown_pct":-27.8,"alpha_annualized_pct":-4.5,"p_value":0.3,"regime_breakdown":{"UP":-0.734201,"DOWN":-0.070415,"FLAT":-0.444751}},"executed_at":"2026-07-31T01:27:42","notes":null},{"run_id":"r-dispersion-us-sp500-0279","name":"dispersion_window=40, holding_days=60, base_signal=momentum_60, n_stocks=50, cost_bps=10","params":{"cost_bps":10,"n_stocks":50,"base_signal":"momentum_60","holding_days":60,"dispersion_window":40},"performance":{"sharpe":0.12,"max_drawdown_pct":-45.8,"alpha_annualized_pct":4.2,"p_value":0.67,"regime_breakdown":{"UP":0.562244,"DOWN":-1.789718,"FLAT":0.239221}},"executed_at":"2026-07-31T01:27:43","notes":null},{"run_id":"r-dispersion-us-sp500-0288","name":"dispersion_window=60, holding_days=5, base_signal=momentum_20, n_stocks=5, cost_bps=5","params":{"cost_bps":5,"n_stocks":5,"base_signal":"momentum_20","holding_days":5,"dispersion_window":60},"performance":{"sharpe":0.48,"max_drawdown_pct":-18.5,"alpha_annualized_pct":7.5,"p_value":0.32,"regime_breakdown":{"UP":0.393602,"DOWN":0.592988,"FLAT":0.57273}},"executed_at":"2026-07-31T01:27:43","notes":null},{"run_id":"r-dispersion-us-sp500-0297","name":"dispersion_window=60, holding_days=5, base_signal=momentum_60, n_stocks=5, cost_bps=10","params":{"cost_bps":10,"n_stocks":5,"base_signal":"momentum_60","holding_days":5,"dispersion_window":60},"performance":{"sharpe":0.52,"max_drawdown_pct":-15.3,"alpha_annualized_pct":9.5,"p_value":0.28,"regime_breakdown":{"UP":0.561815,"DOWN":1.390955,"FLAT":0.164614}},"executed_at":"2026-07-31T01:27:44","notes":null},{"run_id":"r-dispersion-us-sp500-0307","name":"dispersion_window=60, holding_days=5, base_signal=mean_reversion, n_stocks=10, cost_bps=10","params":{"cost_bps":10,"n_stocks":10,"base_signal":"mean_reversion","holding_days":5,"dispersion_window":60},"performance":{"sharpe":-1.07,"max_drawdown_pct":-31.3,"alpha_annualized_pct":-8,"p_value":0.029,"regime_breakdown":{"UP":-0.639477,"DOWN":-1.116968,"FLAT":-2.164297}},"executed_at":"2026-07-31T01:27:44","notes":null},{"run_id":"r-dispersion-us-sp500-0315","name":"dispersion_window=60, holding_days=10, base_signal=momentum_20, n_stocks=10, cost_bps=10","params":{"cost_bps":10,"n_stocks":10,"base_signal":"momentum_20","holding_days":10,"dispersion_window":60},"performance":{"sharpe":0.47,"max_drawdown_pct":-17.4,"alpha_annualized_pct":6.3,"p_value":0.33,"regime_breakdown":{"UP":1.362234,"DOWN":-0.830476,"FLAT":0.132976}},"executed_at":"2026-07-31T01:27:45","notes":null},{"run_id":"r-dispersion-us-sp500-0332","name":"dispersion_window=60, holding_days=10, base_signal=mean_reversion, n_stocks=20, cost_bps=5","params":{"cost_bps":5,"n_stocks":20,"base_signal":"mean_reversion","holding_days":10,"dispersion_window":60},"performance":{"sharpe":-0.49,"max_drawdown_pct":-24.7,"alpha_annualized_pct":-3.9,"p_value":0.31,"regime_breakdown":{"UP":-0.742795,"DOWN":-0.038866,"FLAT":-0.489637}},"executed_at":"2026-07-31T01:27:46","notes":null},{"run_id":"r-dispersion-us-sp500-0349","name":"dispersion_window=60, holding_days=20, base_signal=momentum_60, n_stocks=20, cost_bps=10","params":{"cost_bps":10,"n_stocks":20,"base_signal":"momentum_60","holding_days":20,"dispersion_window":60},"performance":{"sharpe":0.27,"max_drawdown_pct":-33.6,"alpha_annualized_pct":5.4,"p_value":0.58,"regime_breakdown":{"UP":0.975491,"DOWN":-0.002328,"FLAT":-0.361628}},"executed_at":"2026-07-31T01:27:47","notes":null}],"facts":[{"fact_id":"dispersion-us-sp500-fact-best-sharpe","strategy_slug":"dispersion-us-sp500","claim":"Best grid Sharpe ratio is 0.64 (p=0.18).","value":0.64,"value_text":null,"unit":"sharpe_ratio","context":"period 2022-02-01–2026-06-01; cost=5bps","supports_verdict":"marginal","source_run_id":"r-dispersion-us-sp500-0050","search_tsv":"'-01':12,15 '-02':11 '-06':14 '0.18':8 '0.64':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/dispersion-us-sp500-fact-best-sharpe"},{"fact_id":"dispersion-us-sp500-fact-median-sharpe","strategy_slug":"dispersion-us-sp500","claim":"Median Sharpe across 384 grid runs is 0.14.","value":0.14,"value_text":null,"unit":"sharpe_ratio","context":"Full grid of 384 parameter combinations.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'0.14':8 '384':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/dispersion-us-sp500-fact-median-sharpe"},{"fact_id":"dispersion-us-sp500-fact-regime-down","strategy_slug":"dispersion-us-sp500","claim":"Median Sharpe in DOWN regime is -0.06 across 384 runs.","value":-0.06,"value_text":null,"unit":"sharpe_ratio","context":"Regime=DOWN, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'-0.06':7 '384':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/dispersion-us-sp500-fact-regime-down"},{"fact_id":"dispersion-us-sp500-fact-regime-flat","strategy_slug":"dispersion-us-sp500","claim":"Median Sharpe in FLAT regime is -0.34 across 384 runs.","value":-0.34,"value_text":null,"unit":"sharpe_ratio","context":"Regime=FLAT, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'-0.34':7 '384':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/dispersion-us-sp500-fact-regime-flat"},{"fact_id":"dispersion-us-sp500-fact-regime-up","strategy_slug":"dispersion-us-sp500","claim":"Median Sharpe in UP regime is 0.43 across 384 runs.","value":0.43,"value_text":null,"unit":"sharpe_ratio","context":"Regime=UP, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'0.43':7 '384':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/dispersion-us-sp500-fact-regime-up"}],"related_strategies":[{"related_slug":"dispersion-jp-all","relation":"same_strategy"},{"related_slug":"dispersion-jp-growth","relation":"same_strategy"}],"tags":["dispersion","timing","regime","us-market","sp500","grid-search"],"_links":{"self":"https://qbuntu.ai/v1/strategies/dispersion-us-sp500","html":"https://qbuntu.ai/strategies/dispersion-us-sp500","markdown":"https://qbuntu.ai/ai/strategies/dispersion-us-sp500.md"}}