{"schema_version":"v1","slug":"momentum-volume-us-sp500","name":"Momentum × Volume Interaction (US S&P 500)","name_i18n":{},"verdict":"rejected","asset_class":"equity","categories":["factor","interaction","momentum","volume"],"hypothesis":"Lee & Swaminathan (2000): volume confirms momentum quality. Applied to S&P 500 constituents.","rejection_reason":{"primary":"regime_dependent","secondary":[],"narrative":"Across 320 grid combinations, median Sharpe=0.01, best=1.32. Primary failure mode: regime_dependent."},"target_universe":{"description":"S&P 500 constituents, ~503 stocks","symbols":[]},"performance_summary":{"sharpe_median":0.0123,"max_drawdown_pct":-14.2,"win_rate":null,"alpha_annualized_pct":null,"p_value":0.56,"backtest_period":{"start":"2022-05-02","end":"2026-09-01"}},"grid_summary":{"sharpe":{"p25":-0.2,"p75":0.31,"best":1.32,"worst":-0.93,"median":0.01},"n_combinations":320},"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:18","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-momentum-volume-us-sp500-0000","name":"formation_days=20, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":1,"formation_days":20},"performance":{"sharpe":0.82,"max_drawdown_pct":-3.7,"alpha_annualized_pct":4.1,"p_value":0.086,"regime_breakdown":{"UP":2.175844,"DOWN":0.443352,"FLAT":-0.027496}},"executed_at":"2026-09-23T20:58:45","notes":null},{"run_id":"r-momentum-volume-us-sp500-0001","name":"formation_days=20, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":5,"regime_gate":true,"holding_days":1,"formation_days":20},"performance":{"sharpe":0.48,"max_drawdown_pct":-5.8,"alpha_annualized_pct":2.3,"p_value":0.31,"regime_breakdown":{"UP":1.159268,"DOWN":0.443352,"FLAT":-0.027496}},"executed_at":"2026-09-23T20:58:46","notes":null},{"run_id":"r-momentum-volume-us-sp500-0002","name":"formation_days=20, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":5,"regime_gate":false,"holding_days":1,"formation_days":20},"performance":{"sharpe":0.57,"max_drawdown_pct":-4.3,"alpha_annualized_pct":2.8,"p_value":0.23,"regime_breakdown":{"UP":1.821992,"DOWN":0.250343,"FLAT":-0.233619}},"executed_at":"2026-09-23T20:58:46","notes":null},{"run_id":"r-momentum-volume-us-sp500-0003","name":"formation_days=20, holding_days=1, n_stocks=5, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":5,"regime_gate":true,"holding_days":1,"formation_days":20},"performance":{"sharpe":0.29,"max_drawdown_pct":-6.3,"alpha_annualized_pct":1.4,"p_value":0.54,"regime_breakdown":{"UP":0.98352,"DOWN":0.250343,"FLAT":-0.233619}},"executed_at":"2026-09-23T20:58:46","notes":null},{"run_id":"r-momentum-volume-us-sp500-0012","name":"formation_days=20, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":50,"regime_gate":false,"holding_days":1,"formation_days":20},"performance":{"sharpe":0.08,"max_drawdown_pct":-2.9,"alpha_annualized_pct":0.2,"p_value":0.87,"regime_breakdown":{"UP":0.471129,"DOWN":0.312262,"FLAT":-0.298137}},"executed_at":"2026-09-23T20:58:49","notes":null},{"run_id":"r-momentum-volume-us-sp500-0018","name":"formation_days=20, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":5,"regime_gate":false,"holding_days":5,"formation_days":20},"performance":{"sharpe":1.12,"max_drawdown_pct":-7.2,"alpha_annualized_pct":9.5,"p_value":0.02,"regime_breakdown":{"UP":2.216442,"DOWN":1.861891,"FLAT":-0.446673}},"executed_at":"2026-09-23T20:58:50","notes":null},{"run_id":"r-momentum-volume-us-sp500-0032","name":"formation_days=20, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":10,"formation_days":20},"performance":{"sharpe":1.32,"max_drawdown_pct":-13.2,"alpha_annualized_pct":16.4,"p_value":0.007,"regime_breakdown":{"UP":3.057905,"DOWN":0.870113,"FLAT":0.053069}},"executed_at":"2026-09-23T20:58:54","notes":null},{"run_id":"r-momentum-volume-us-sp500-0033","name":"formation_days=20, holding_days=10, n_stocks=5, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":5,"regime_gate":true,"holding_days":10,"formation_days":20},"performance":{"sharpe":1.09,"max_drawdown_pct":-16.1,"alpha_annualized_pct":13.5,"p_value":0.024,"regime_breakdown":{"UP":2.327179,"DOWN":0.870113,"FLAT":0.053069}},"executed_at":"2026-09-23T20:58:54","notes":null},{"run_id":"r-momentum-volume-us-sp500-0047","name":"formation_days=20, holding_days=10, n_stocks=50, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":50,"regime_gate":true,"holding_days":10,"formation_days":20},"performance":{"sharpe":-0.01,"max_drawdown_pct":-11.2,"alpha_annualized_pct":-0.1,"p_value":0.98,"regime_breakdown":{"UP":0.991601,"DOWN":-0.180272,"FLAT":-1.125433}},"executed_at":"2026-09-23T20:58:58","notes":null},{"run_id":"r-momentum-volume-us-sp500-0061","name":"formation_days=20, holding_days=20, n_stocks=50, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":50,"regime_gate":true,"holding_days":20,"formation_days":20},"performance":{"sharpe":0.33,"max_drawdown_pct":-19.5,"alpha_annualized_pct":3.6,"p_value":0.48,"regime_breakdown":{"UP":1.364799,"DOWN":0.085262,"FLAT":-0.55405}},"executed_at":"2026-09-23T20:59:02","notes":null},{"run_id":"r-momentum-volume-us-sp500-0064","name":"formation_days=20, holding_days=60, n_stocks=5, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":60,"formation_days":20},"performance":{"sharpe":0.19,"max_drawdown_pct":-50.3,"alpha_annualized_pct":11.6,"p_value":0.52,"regime_breakdown":{"UP":0.556021,"DOWN":-0.036085,"FLAT":-0.112592}},"executed_at":"2026-09-23T20:59:03","notes":null},{"run_id":"r-momentum-volume-us-sp500-0076","name":"formation_days=20, holding_days=60, n_stocks=50, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":50,"regime_gate":false,"holding_days":60,"formation_days":20},"performance":{"sharpe":0.09,"max_drawdown_pct":-26.4,"alpha_annualized_pct":2.2,"p_value":0.76,"regime_breakdown":{"UP":0.629411,"DOWN":-0.236738,"FLAT":-0.387699}},"executed_at":"2026-09-23T20:59:06","notes":null},{"run_id":"r-momentum-volume-us-sp500-0090","name":"formation_days=60, holding_days=1, n_stocks=20, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":20,"regime_gate":false,"holding_days":1,"formation_days":60},"performance":{"sharpe":-0.16,"max_drawdown_pct":-4.6,"alpha_annualized_pct":-0.6,"p_value":0.73,"regime_breakdown":{"UP":0.535015,"DOWN":-0.573626,"FLAT":-0.721642}},"executed_at":"2026-09-23T20:59:10","notes":null},{"run_id":"r-momentum-volume-us-sp500-0104","name":"formation_days=60, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":20,"regime_gate":false,"holding_days":5,"formation_days":60},"performance":{"sharpe":-0.14,"max_drawdown_pct":-11.7,"alpha_annualized_pct":-1,"p_value":0.77,"regime_breakdown":{"UP":0.059535,"DOWN":1.078161,"FLAT":-0.939548}},"executed_at":"2026-09-23T20:59:13","notes":null},{"run_id":"r-momentum-volume-us-sp500-0118","name":"formation_days=60, holding_days=10, n_stocks=10, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":10,"regime_gate":false,"holding_days":10,"formation_days":60},"performance":{"sharpe":-0.44,"max_drawdown_pct":-25.6,"alpha_annualized_pct":-4.6,"p_value":0.36,"regime_breakdown":{"UP":0.860531,"DOWN":-0.025435,"FLAT":-1.609759}},"executed_at":"2026-09-23T20:59:17","notes":null},{"run_id":"r-momentum-volume-us-sp500-0132","name":"formation_days=60, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":10,"regime_gate":false,"holding_days":20,"formation_days":60},"performance":{"sharpe":-0.21,"max_drawdown_pct":-39.6,"alpha_annualized_pct":-4.4,"p_value":0.66,"regime_breakdown":{"UP":0.709016,"DOWN":-0.364123,"FLAT":-0.824665}},"executed_at":"2026-09-23T20:59:21","notes":null},{"run_id":"r-momentum-volume-us-sp500-0146","name":"formation_days=60, holding_days=60, n_stocks=5, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":5,"regime_gate":false,"holding_days":60,"formation_days":60},"performance":{"sharpe":-0.03,"max_drawdown_pct":-68.5,"alpha_annualized_pct":-1.9,"p_value":0.92,"regime_breakdown":{"UP":0.490444,"DOWN":-0.755926,"FLAT":-0.278295}},"executed_at":"2026-09-23T20:59:24","notes":null},{"run_id":"r-momentum-volume-us-sp500-0160","name":"formation_days=120, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":1,"formation_days":120},"performance":{"sharpe":-0.1,"max_drawdown_pct":-8.9,"alpha_annualized_pct":-0.7,"p_value":0.83,"regime_breakdown":{"UP":0.356738,"DOWN":-1.554407,"FLAT":0.050938}},"executed_at":"2026-09-23T20:59:28","notes":null},{"run_id":"r-momentum-volume-us-sp500-0174","name":"formation_days=120, holding_days=1, n_stocks=50, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":50,"regime_gate":false,"holding_days":1,"formation_days":120},"performance":{"sharpe":-0.82,"max_drawdown_pct":-7.3,"alpha_annualized_pct":-2.2,"p_value":0.091,"regime_breakdown":{"UP":-0.02139,"DOWN":-1.137238,"FLAT":-1.854435}},"executed_at":"2026-09-23T20:59:32","notes":null},{"run_id":"r-momentum-volume-us-sp500-0175","name":"formation_days=120, holding_days=1, n_stocks=50, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":50,"regime_gate":true,"holding_days":1,"formation_days":120},"performance":{"sharpe":-0.93,"max_drawdown_pct":-6.8,"alpha_annualized_pct":-2.1,"p_value":0.057,"regime_breakdown":{"UP":0.000424,"DOWN":-1.137238,"FLAT":-1.854435}},"executed_at":"2026-09-23T20:59:32","notes":null},{"run_id":"r-momentum-volume-us-sp500-0189","name":"formation_days=120, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":50,"regime_gate":true,"holding_days":5,"formation_days":120},"performance":{"sharpe":0.24,"max_drawdown_pct":-5.9,"alpha_annualized_pct":1.2,"p_value":0.62,"regime_breakdown":{"UP":1.090062,"DOWN":1.090221,"FLAT":-0.619728}},"executed_at":"2026-09-23T20:59:36","notes":null},{"run_id":"r-momentum-volume-us-sp500-0203","name":"formation_days=120, holding_days=10, n_stocks=20, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":20,"regime_gate":true,"holding_days":10,"formation_days":120},"performance":{"sharpe":-0.48,"max_drawdown_pct":-15.8,"alpha_annualized_pct":-4.2,"p_value":0.32,"regime_breakdown":{"UP":0.427499,"DOWN":-1.262442,"FLAT":-0.965794}},"executed_at":"2026-09-23T20:59:40","notes":null},{"run_id":"r-momentum-volume-us-sp500-0217","name":"formation_days=120, holding_days=20, n_stocks=20, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":20,"regime_gate":true,"holding_days":20,"formation_days":120},"performance":{"sharpe":-0.02,"max_drawdown_pct":-22.6,"alpha_annualized_pct":-0.3,"p_value":0.97,"regime_breakdown":{"UP":0.8293,"DOWN":-0.936176,"FLAT":-0.229863}},"executed_at":"2026-09-23T20:59:44","notes":null},{"run_id":"r-momentum-volume-us-sp500-0231","name":"formation_days=120, holding_days=60, n_stocks=10, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":10,"regime_gate":true,"holding_days":60,"formation_days":120},"performance":{"sharpe":0.67,"max_drawdown_pct":-33.5,"alpha_annualized_pct":29,"p_value":0.027,"regime_breakdown":{"UP":0.97325,"DOWN":0.531907,"FLAT":0.189652}},"executed_at":"2026-09-23T20:59:47","notes":null},{"run_id":"r-momentum-volume-us-sp500-0240","name":"formation_days=250, holding_days=1, n_stocks=5, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":1,"formation_days":250},"performance":{"sharpe":0.11,"max_drawdown_pct":-11,"alpha_annualized_pct":0.7,"p_value":0.82,"regime_breakdown":{"UP":0.550116,"DOWN":-1.491972,"FLAT":-0.119219}},"executed_at":"2026-09-23T20:59:50","notes":null},{"run_id":"r-momentum-volume-us-sp500-0246","name":"formation_days=250, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":10,"regime_gate":false,"holding_days":1,"formation_days":250},"performance":{"sharpe":-0.2,"max_drawdown_pct":-10,"alpha_annualized_pct":-0.9,"p_value":0.7,"regime_breakdown":{"UP":0.09392,"DOWN":-1.123335,"FLAT":-0.333134}},"executed_at":"2026-09-23T20:59:51","notes":null},{"run_id":"r-momentum-volume-us-sp500-0260","name":"formation_days=250, holding_days=5, n_stocks=10, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":10,"regime_gate":false,"holding_days":5,"formation_days":250},"performance":{"sharpe":0.35,"max_drawdown_pct":-13.4,"alpha_annualized_pct":3.5,"p_value":0.49,"regime_breakdown":{"UP":0.218632,"DOWN":1.801358,"FLAT":0.189052}},"executed_at":"2026-09-23T20:59:55","notes":null},{"run_id":"r-momentum-volume-us-sp500-0274","name":"formation_days=250, holding_days=10, n_stocks=5, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":5,"regime_gate":false,"holding_days":10,"formation_days":250},"performance":{"sharpe":-0.52,"max_drawdown_pct":-29.3,"alpha_annualized_pct":-8,"p_value":0.31,"regime_breakdown":{"UP":-0.253716,"DOWN":0.506285,"FLAT":-1.375575}},"executed_at":"2026-09-23T20:59:58","notes":null},{"run_id":"r-momentum-volume-us-sp500-0288","name":"formation_days=250, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":20,"formation_days":250},"performance":{"sharpe":-0.46,"max_drawdown_pct":-32.3,"alpha_annualized_pct":-14.6,"p_value":0.38,"regime_breakdown":{"UP":-0.075052,"DOWN":1.058411,"FLAT":-1.088227}},"executed_at":"2026-09-23T21:00:02","notes":null},{"run_id":"r-momentum-volume-us-sp500-0302","name":"formation_days=250, holding_days=20, n_stocks=50, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":50,"regime_gate":false,"holding_days":20,"formation_days":250},"performance":{"sharpe":-0.05,"max_drawdown_pct":-10.6,"alpha_annualized_pct":-0.6,"p_value":0.92,"regime_breakdown":{"UP":0.319803,"DOWN":0.811421,"FLAT":-0.647738}},"executed_at":"2026-09-23T21:00:06","notes":null}],"facts":[{"fact_id":"momentum-volume-us-sp500-fact-best-sharpe","strategy_slug":"momentum-volume-us-sp500","claim":"Best grid Sharpe ratio is 1.32 (p=0.007).","value":1.32,"value_text":null,"unit":"sharpe_ratio","context":"period 2022-05-02–2026-09-01; cost=5bps","supports_verdict":"rejected","source_run_id":"r-momentum-volume-us-sp500-0032","search_tsv":"'-01':15 '-02':12 '-05':11 '-09':14 '0.007':8 '1.32':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/momentum-volume-us-sp500-fact-best-sharpe"},{"fact_id":"momentum-volume-us-sp500-fact-median-sharpe","strategy_slug":"momentum-volume-us-sp500","claim":"Median Sharpe across 320 grid runs is 0.01.","value":0.01,"value_text":null,"unit":"sharpe_ratio","context":"Full grid of 320 parameter combinations.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'0.01':8 '320':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/momentum-volume-us-sp500-fact-median-sharpe"},{"fact_id":"momentum-volume-us-sp500-fact-regime-down","strategy_slug":"momentum-volume-us-sp500","claim":"Median Sharpe in DOWN regime is 0.06 across 320 runs.","value":0.06,"value_text":null,"unit":"sharpe_ratio","context":"Regime=DOWN, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'0.06':7 '320':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/momentum-volume-us-sp500-fact-regime-down"},{"fact_id":"momentum-volume-us-sp500-fact-regime-flat","strategy_slug":"momentum-volume-us-sp500","claim":"Median Sharpe in FLAT regime is -0.52 across 320 runs.","value":-0.52,"value_text":null,"unit":"sharpe_ratio","context":"Regime=FLAT, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.52':7 '320':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/momentum-volume-us-sp500-fact-regime-flat"},{"fact_id":"momentum-volume-us-sp500-fact-regime-up","strategy_slug":"momentum-volume-us-sp500","claim":"Median Sharpe in UP regime is 0.74 across 320 runs.","value":0.74,"value_text":null,"unit":"sharpe_ratio","context":"Regime=UP, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'0.74':7 '320':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/momentum-volume-us-sp500-fact-regime-up"}],"related_strategies":[{"related_slug":"momentum-volume-jp-all","relation":"same_strategy"},{"related_slug":"momentum-volume-jp-growth","relation":"same_strategy"}],"tags":["momentum","volume","interaction","factor","us-market","sp500","grid-search"],"_links":{"self":"https://qbuntu.ai/v1/strategies/momentum-volume-us-sp500","html":"https://qbuntu.ai/strategies/momentum-volume-us-sp500","markdown":"https://qbuntu.ai/ai/strategies/momentum-volume-us-sp500.md"}}