{"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.09, best=0.58. Primary failure mode: no_edge."},"target_universe":{"description":"S&P 500 constituents, ~503 stocks","symbols":[]},"performance_summary":{"sharpe_median":0.0869,"max_drawdown_pct":-30.1,"win_rate":null,"alpha_annualized_pct":null,"p_value":0.5,"backtest_period":{"start":"2022-02-01","end":"2026-09-01"}},"grid_summary":{"sharpe":{"p25":-0.24,"p75":0.35,"best":0.58,"worst":-1.1,"median":0.09},"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-09-24T02:22:20","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-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.48,"max_drawdown_pct":-18.5,"alpha_annualized_pct":7.3,"p_value":0.3,"regime_breakdown":{"UP":0.393602,"DOWN":0.561441,"FLAT":0.579999}},"executed_at":"2026-09-23T22:02:40","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,"p_value":0.39,"regime_breakdown":{"UP":0.324405,"DOWN":0.467929,"FLAT":0.486721}},"executed_at":"2026-09-23T22:02:40","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.51,"max_drawdown_pct":-12.6,"alpha_annualized_pct":6.1,"p_value":0.26,"regime_breakdown":{"UP":0.420954,"DOWN":1.175495,"FLAT":0.384978}},"executed_at":"2026-09-23T22:02:40","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.09,"max_drawdown_pct":-6.8,"alpha_annualized_pct":0.5,"p_value":0.85,"regime_breakdown":{"UP":0.405864,"DOWN":0.700707,"FLAT":-0.555512}},"executed_at":"2026-09-23T22:02:41","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.53,"max_drawdown_pct":-14.9,"alpha_annualized_pct":9.5,"p_value":0.26,"regime_breakdown":{"UP":0.637977,"DOWN":1.464651,"FLAT":0.121529}},"executed_at":"2026-09-23T22:02:42","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.83,"max_drawdown_pct":-30.8,"alpha_annualized_pct":-6.7,"p_value":0.074,"regime_breakdown":{"UP":-0.549589,"DOWN":-0.260651,"FLAT":-1.907036}},"executed_at":"2026-09-23T22:02:44","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.16,"regime_breakdown":{"UP":-0.278051,"DOWN":-1.168532,"FLAT":-1.123267}},"executed_at":"2026-09-23T22:02:46","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.55,"max_drawdown_pct":-23,"alpha_annualized_pct":-4.6,"p_value":0.24,"regime_breakdown":{"UP":0.075045,"DOWN":-0.666854,"FLAT":-1.058566}},"executed_at":"2026-09-23T22:02:50","notes":null},{"run_id":"r-dispersion-us-sp500-0056","name":"dispersion_window=10, holding_days=20, base_signal=momentum_60, n_stocks=5, cost_bps=5","params":{"cost_bps":5,"n_stocks":5,"base_signal":"momentum_60","holding_days":20,"dispersion_window":10},"performance":{"sharpe":0.35,"max_drawdown_pct":-52.4,"alpha_annualized_pct":13.2,"p_value":0.46,"regime_breakdown":{"UP":1.378094,"DOWN":0.055506,"FLAT":-0.608888}},"executed_at":"2026-09-23T22:02:55","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.31,"max_drawdown_pct":-83.1,"alpha_annualized_pct":36.3,"p_value":0.26,"regime_breakdown":{"UP":0.598113,"DOWN":-0.338268,"FLAT":-0.031991}},"executed_at":"2026-09-23T22:02:59","notes":null},{"run_id":"r-dispersion-us-sp500-0074","name":"dispersion_window=10, holding_days=60, base_signal=momentum_20, n_stocks=10, cost_bps=5","params":{"cost_bps":5,"n_stocks":10,"base_signal":"momentum_20","holding_days":60,"dispersion_window":10},"performance":{"sharpe":0.54,"max_drawdown_pct":-46.2,"alpha_annualized_pct":39.4,"p_value":0.059,"regime_breakdown":{"UP":0.707456,"DOWN":0.295826,"FLAT":0.338092}},"executed_at":"2026-09-23T22:03:00","notes":null},{"run_id":"r-dispersion-us-sp500-0082","name":"dispersion_window=10, holding_days=60, base_signal=momentum_60, n_stocks=10, cost_bps=5","params":{"cost_bps":5,"n_stocks":10,"base_signal":"momentum_60","holding_days":60,"dispersion_window":10},"performance":{"sharpe":0.58,"max_drawdown_pct":-48,"alpha_annualized_pct":46.7,"p_value":0.046,"regime_breakdown":{"UP":0.912514,"DOWN":-0.430161,"FLAT":0.441145}},"executed_at":"2026-09-23T22:03:02","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":-46.6,"alpha_annualized_pct":-8,"p_value":0.38,"regime_breakdown":{"UP":-0.083889,"DOWN":-0.554565,"FLAT":-0.438162}},"executed_at":"2026-09-23T22:03:04","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.2,"max_drawdown_pct":-13.6,"alpha_annualized_pct":2.1,"p_value":0.67,"regime_breakdown":{"UP":0.167902,"DOWN":1.088011,"FLAT":-0.115128}},"executed_at":"2026-09-23T22:03:09","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.16,"max_drawdown_pct":-12.6,"alpha_annualized_pct":-1.2,"p_value":0.73,"regime_breakdown":{"UP":0.602933,"DOWN":-0.413159,"FLAT":-0.791195}},"executed_at":"2026-09-23T22:03:14","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.22,"max_drawdown_pct":-21,"alpha_annualized_pct":-1.5,"p_value":0.64,"regime_breakdown":{"UP":-0.411376,"DOWN":-0.272275,"FLAT":0.211279}},"executed_at":"2026-09-23T22:03:18","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.06,"max_drawdown_pct":-35.9,"alpha_annualized_pct":-1.1,"p_value":0.9,"regime_breakdown":{"UP":-0.481153,"DOWN":1.536899,"FLAT":-0.44284}},"executed_at":"2026-09-23T22:03:23","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.57,"max_drawdown_pct":-61.4,"alpha_annualized_pct":61.8,"p_value":0.051,"regime_breakdown":{"UP":0.912678,"DOWN":-0.587086,"FLAT":0.399151}},"executed_at":"2026-09-23T22:03:27","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.51,"max_drawdown_pct":-12.6,"alpha_annualized_pct":6.1,"p_value":0.26,"regime_breakdown":{"UP":0.420954,"DOWN":1.175495,"FLAT":0.384978}},"executed_at":"2026-09-23T22:03:32","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.07,"max_drawdown_pct":-33.6,"alpha_annualized_pct":-7.7,"p_value":0.023,"regime_breakdown":{"UP":-0.639477,"DOWN":-0.961849,"FLAT":-2.222431}},"executed_at":"2026-09-23T22:03:36","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.07,"max_drawdown_pct":-17.8,"alpha_annualized_pct":-0.9,"p_value":0.87,"regime_breakdown":{"UP":0.762599,"DOWN":-0.02035,"FLAT":-0.787577}},"executed_at":"2026-09-23T22:03:41","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.23,"max_drawdown_pct":-26.3,"alpha_annualized_pct":4,"p_value":0.62,"regime_breakdown":{"UP":0.903788,"DOWN":0.24543,"FLAT":-0.447112}},"executed_at":"2026-09-23T22:03:46","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.26,"max_drawdown_pct":-27.8,"alpha_annualized_pct":-2.5,"p_value":0.57,"regime_breakdown":{"UP":-0.379282,"DOWN":-0.070415,"FLAT":-0.199015}},"executed_at":"2026-09-23T22:03:50","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.09,"max_drawdown_pct":-45.8,"alpha_annualized_pct":3.2,"p_value":0.75,"regime_breakdown":{"UP":0.257544,"DOWN":-0.625995,"FLAT":0.239221}},"executed_at":"2026-09-23T22:03:55","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.4,"p_value":0.3,"regime_breakdown":{"UP":0.393602,"DOWN":0.592988,"FLAT":0.579999}},"executed_at":"2026-09-23T22:03:57","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.46,"max_drawdown_pct":-15.3,"alpha_annualized_pct":8.2,"p_value":0.32,"regime_breakdown":{"UP":0.561815,"DOWN":1.390955,"FLAT":0.062408}},"executed_at":"2026-09-23T22:04:00","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.1,"max_drawdown_pct":-31.3,"alpha_annualized_pct":-8,"p_value":0.021,"regime_breakdown":{"UP":-0.639477,"DOWN":-1.116968,"FLAT":-2.222431}},"executed_at":"2026-09-23T22:04:02","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.24,"max_drawdown_pct":-17.4,"alpha_annualized_pct":3.4,"p_value":0.6,"regime_breakdown":{"UP":0.740118,"DOWN":-0.830476,"FLAT":0.072874}},"executed_at":"2026-09-23T22:04:04","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.14,"max_drawdown_pct":-24.7,"alpha_annualized_pct":-1.3,"p_value":0.76,"regime_breakdown":{"UP":-0.117017,"DOWN":-0.038866,"FLAT":-0.275337}},"executed_at":"2026-09-23T22:04:09","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.1,"max_drawdown_pct":-33.6,"alpha_annualized_pct":2,"p_value":0.83,"regime_breakdown":{"UP":0.775577,"DOWN":-0.002328,"FLAT":-0.557151}},"executed_at":"2026-09-23T22:04:13","notes":null}],"facts":[{"fact_id":"dispersion-us-sp500-fact-best-sharpe","strategy_slug":"dispersion-us-sp500","claim":"Best grid Sharpe ratio is 0.58 (p=0.046).","value":0.58,"value_text":null,"unit":"sharpe_ratio","context":"period 2022-02-01–2026-09-01; cost=5bps","supports_verdict":"marginal","source_run_id":"r-dispersion-us-sp500-0082","search_tsv":"'-01':12,15 '-02':11 '-09':14 '0.046':8 '0.58':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.09.","value":0.09,"value_text":null,"unit":"sharpe_ratio","context":"Full grid of 384 parameter combinations.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'0.09':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.07 across 384 runs.","value":-0.07,"value_text":null,"unit":"sharpe_ratio","context":"Regime=DOWN, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'-0.07':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.38 across 384 runs.","value":-0.38,"value_text":null,"unit":"sharpe_ratio","context":"Regime=FLAT, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'-0.38':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.40 across 384 runs.","value":0.4,"value_text":null,"unit":"sharpe_ratio","context":"Regime=UP, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'0.40':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"}}