{"schema_version":"v1","slug":"volume-anomaly-us-sp500","name":"Volume Anomaly (US S&P 500)","name_i18n":{},"verdict":"marginal","asset_class":"equity","categories":["anomaly","factor","volume"],"hypothesis":"Campbell, Grossman, Wang (1993): abnormal volume spikes predict subsequent price drift or reversal. Applied to S&P 500 constituents.","rejection_reason":{"primary":"no_edge","secondary":[],"narrative":"Across 768 grid combinations, median Sharpe=0.05, best=2.70. Primary failure mode: no_edge."},"target_universe":{"description":"S&P 500 constituents, ~503 stocks","symbols":[]},"performance_summary":{"sharpe_median":0.0529,"max_drawdown_pct":-15.3,"win_rate":null,"alpha_annualized_pct":null,"p_value":0.41,"backtest_period":{"start":"2022-02-01","end":"2026-09-01"}},"grid_summary":{"sharpe":{"p25":-0.58,"p75":0.41,"best":2.7,"worst":-2.98,"median":0.05},"n_combinations":768},"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:16","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-volume-anomaly-us-sp500-0000","name":"volume_lookback=5, volume_threshold=1.5, holding_days=1, direction=momentum, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"momentum","regime_gate":false,"holding_days":1,"volume_lookback":5,"volume_threshold":1.5},"performance":{"sharpe":0.3,"max_drawdown_pct":-3.4,"alpha_annualized_pct":0.8,"p_value":0.52,"regime_breakdown":{"UP":0.870662,"DOWN":-1.280604,"FLAT":0.443845}},"executed_at":"2026-09-23T20:19:50","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0001","name":"volume_lookback=5, volume_threshold=1.5, holding_days=1, direction=momentum, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"direction":"momentum","regime_gate":true,"holding_days":1,"volume_lookback":5,"volume_threshold":1.5},"performance":{"sharpe":0.38,"max_drawdown_pct":-7.3,"alpha_annualized_pct":1.8,"p_value":0.41,"regime_breakdown":{"UP":0.717215,"DOWN":-1.280604,"FLAT":0.443845}},"executed_at":"2026-09-23T20:19:50","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0002","name":"volume_lookback=5, volume_threshold=1.5, holding_days=1, direction=momentum, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"direction":"momentum","regime_gate":false,"holding_days":1,"volume_lookback":5,"volume_threshold":1.5},"performance":{"sharpe":-0.16,"max_drawdown_pct":-5.3,"alpha_annualized_pct":-0.4,"p_value":0.73,"regime_breakdown":{"UP":0.417227,"DOWN":-1.690326,"FLAT":-0.053368}},"executed_at":"2026-09-23T20:19:51","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0003","name":"volume_lookback=5, volume_threshold=1.5, holding_days=1, direction=momentum, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"direction":"momentum","regime_gate":true,"holding_days":1,"volume_lookback":5,"volume_threshold":1.5},"performance":{"sharpe":0.11,"max_drawdown_pct":-9.4,"alpha_annualized_pct":0.5,"p_value":0.8,"regime_breakdown":{"UP":0.51806,"DOWN":-1.690326,"FLAT":-0.053368}},"executed_at":"2026-09-23T20:19:51","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0008","name":"volume_lookback=5, volume_threshold=1.5, holding_days=1, direction=vol_only, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"vol_only","regime_gate":false,"holding_days":1,"volume_lookback":5,"volume_threshold":1.5},"performance":{"sharpe":0.26,"max_drawdown_pct":-8,"alpha_annualized_pct":1.3,"p_value":0.57,"regime_breakdown":{"UP":0.162307,"DOWN":1.644313,"FLAT":-0.431777}},"executed_at":"2026-09-23T20:19:53","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0036","name":"volume_lookback=5, volume_threshold=1.5, holding_days=20, direction=momentum, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"momentum","regime_gate":false,"holding_days":20,"volume_lookback":5,"volume_threshold":1.5},"performance":{"sharpe":0.23,"max_drawdown_pct":-17.4,"alpha_annualized_pct":2.5,"p_value":0.62,"regime_breakdown":{"UP":0.621963,"DOWN":0.55203,"FLAT":-0.850401}},"executed_at":"2026-09-23T20:20:01","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0041","name":"volume_lookback=5, volume_threshold=1.5, holding_days=20, direction=reversal, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"direction":"reversal","regime_gate":true,"holding_days":20,"volume_lookback":5,"volume_threshold":1.5},"performance":{"sharpe":0.04,"max_drawdown_pct":-21.7,"alpha_annualized_pct":0.5,"p_value":0.94,"regime_breakdown":{"UP":0.160993,"DOWN":-0.647003,"FLAT":0.533421}},"executed_at":"2026-09-23T20:20:03","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0077","name":"volume_lookback=5, volume_threshold=2, holding_days=10, direction=reversal, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"direction":"reversal","regime_gate":true,"holding_days":10,"volume_lookback":5,"volume_threshold":2},"performance":{"sharpe":0.44,"max_drawdown_pct":-11.7,"alpha_annualized_pct":6.7,"p_value":0.35,"regime_breakdown":{"UP":-0.124551,"DOWN":1.594094,"FLAT":0.533969}},"executed_at":"2026-09-23T20:20:14","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0113","name":"volume_lookback=5, volume_threshold=3, holding_days=5, direction=reversal, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"direction":"reversal","regime_gate":true,"holding_days":5,"volume_lookback":5,"volume_threshold":3},"performance":{"sharpe":0.39,"max_drawdown_pct":-14.2,"alpha_annualized_pct":2.7,"p_value":0.52,"regime_breakdown":{"UP":0.167244,"DOWN":3.023359,"FLAT":0.346436}},"executed_at":"2026-09-23T20:20:25","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0144","name":"volume_lookback=5, volume_threshold=5, holding_days=1, direction=momentum, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"momentum","regime_gate":false,"holding_days":1,"volume_lookback":5,"volume_threshold":5},"performance":{"sharpe":0.19,"max_drawdown_pct":-10.6,"alpha_annualized_pct":0.7,"p_value":0.88,"regime_breakdown":{"UP":-1.332831,"FLAT":0.578099}},"executed_at":"2026-09-23T20:20:33","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0150","name":"volume_lookback=5, volume_threshold=5, holding_days=1, direction=reversal, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"direction":"reversal","regime_gate":false,"holding_days":1,"volume_lookback":5,"volume_threshold":5},"performance":{"sharpe":-0.46,"max_drawdown_pct":-10.2,"alpha_annualized_pct":-1.5,"p_value":0.71,"regime_breakdown":{"UP":0.964859,"FLAT":-0.777951}},"executed_at":"2026-09-23T20:20:35","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0170","name":"volume_lookback=5, volume_threshold=5, holding_days=10, direction=momentum, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"direction":"momentum","regime_gate":false,"holding_days":10,"volume_lookback":5,"volume_threshold":5},"performance":{"sharpe":-2.98,"max_drawdown_pct":-27.2,"alpha_annualized_pct":-9.9,"p_value":0.043,"regime_breakdown":{"UP":-2.284534,"FLAT":-3.118168}},"executed_at":"2026-09-23T20:20:40","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0172","name":"volume_lookback=5, volume_threshold=5, holding_days=10, direction=reversal, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"reversal","regime_gate":false,"holding_days":10,"volume_lookback":5,"volume_threshold":5},"performance":{"sharpe":2.7,"max_drawdown_pct":-0.4,"alpha_annualized_pct":9,"p_value":0.06,"regime_breakdown":{"UP":2.082,"FLAT":2.858488}},"executed_at":"2026-09-23T20:20:41","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0188","name":"volume_lookback=5, volume_threshold=5, holding_days=20, direction=vol_only, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"vol_only","regime_gate":false,"holding_days":20,"volume_lookback":5,"volume_threshold":5},"performance":{"sharpe":2.47,"max_drawdown_pct":-2.5,"alpha_annualized_pct":8.9,"p_value":0.08,"regime_breakdown":{"UP":0.79479,"FLAT":2.775606}},"executed_at":"2026-09-23T20:20:45","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0224","name":"volume_lookback=10, volume_threshold=1.5, holding_days=10, direction=vol_only, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"vol_only","regime_gate":false,"holding_days":10,"volume_lookback":10,"volume_threshold":1.5},"performance":{"sharpe":0.74,"max_drawdown_pct":-15.7,"alpha_annualized_pct":11,"p_value":0.11,"regime_breakdown":{"UP":0.368328,"DOWN":1.565733,"FLAT":0.615369}},"executed_at":"2026-09-23T20:20:56","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0260","name":"volume_lookback=10, volume_threshold=2, holding_days=5, direction=vol_only, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"vol_only","regime_gate":false,"holding_days":5,"volume_lookback":10,"volume_threshold":2},"performance":{"sharpe":0.17,"max_drawdown_pct":-13.3,"alpha_annualized_pct":1.8,"p_value":0.73,"regime_breakdown":{"UP":-0.0246,"DOWN":0.27012,"FLAT":0.372932}},"executed_at":"2026-09-23T20:21:07","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0296","name":"volume_lookback=10, volume_threshold=3, holding_days=1, direction=vol_only, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"vol_only","regime_gate":false,"holding_days":1,"volume_lookback":10,"volume_threshold":3},"performance":{"sharpe":-0.36,"max_drawdown_pct":-22.9,"alpha_annualized_pct":-2.4,"p_value":0.54,"regime_breakdown":{"UP":-1.826998,"DOWN":1.089052,"FLAT":0.257613}},"executed_at":"2026-09-23T20:21:18","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0332","name":"volume_lookback=10, volume_threshold=3, holding_days=20, direction=vol_only, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"vol_only","regime_gate":false,"holding_days":20,"volume_lookback":10,"volume_threshold":3},"performance":{"sharpe":0.48,"max_drawdown_pct":-15.2,"alpha_annualized_pct":9.5,"p_value":0.42,"regime_breakdown":{"UP":-0.04469,"DOWN":1.308286,"FLAT":0.661119}},"executed_at":"2026-09-23T20:21:28","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0368","name":"volume_lookback=10, volume_threshold=5, holding_days=10, direction=vol_only, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"vol_only","regime_gate":false,"holding_days":10,"volume_lookback":10,"volume_threshold":5},"performance":{"sharpe":0.41,"max_drawdown_pct":-7.9,"alpha_annualized_pct":1.7,"p_value":0.7,"regime_breakdown":{"UP":-1.27259,"FLAT":2.692273}},"executed_at":"2026-09-23T20:21:38","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0404","name":"volume_lookback=20, volume_threshold=1.5, holding_days=5, direction=vol_only, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"vol_only","regime_gate":false,"holding_days":5,"volume_lookback":20,"volume_threshold":1.5},"performance":{"sharpe":0.17,"max_drawdown_pct":-11.6,"alpha_annualized_pct":1.3,"p_value":0.72,"regime_breakdown":{"UP":0.411703,"DOWN":-0.021259,"FLAT":0.056115}},"executed_at":"2026-09-23T20:21:48","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0440","name":"volume_lookback=20, volume_threshold=2, holding_days=1, direction=vol_only, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"vol_only","regime_gate":false,"holding_days":1,"volume_lookback":20,"volume_threshold":2},"performance":{"sharpe":-0.22,"max_drawdown_pct":-22.1,"alpha_annualized_pct":-1.7,"p_value":0.64,"regime_breakdown":{"UP":-1.034131,"DOWN":2.869091,"FLAT":-0.731904}},"executed_at":"2026-09-23T20:21:59","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0476","name":"volume_lookback=20, volume_threshold=2, holding_days=20, direction=vol_only, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"vol_only","regime_gate":false,"holding_days":20,"volume_lookback":20,"volume_threshold":2},"performance":{"sharpe":0.19,"max_drawdown_pct":-18,"alpha_annualized_pct":4.6,"p_value":0.69,"regime_breakdown":{"UP":-0.571704,"DOWN":2.066791,"FLAT":-0.028056}},"executed_at":"2026-09-23T20:22:11","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0512","name":"volume_lookback=20, volume_threshold=3, holding_days=10, direction=vol_only, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"vol_only","regime_gate":false,"holding_days":10,"volume_lookback":20,"volume_threshold":3},"performance":{"sharpe":-0.08,"max_drawdown_pct":-22.6,"alpha_annualized_pct":-0.8,"p_value":0.89,"regime_breakdown":{"UP":-1.134493,"DOWN":1.361328,"FLAT":0.569322}},"executed_at":"2026-09-23T20:22:21","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0548","name":"volume_lookback=20, volume_threshold=5, holding_days=5, direction=vol_only, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"vol_only","regime_gate":false,"holding_days":5,"volume_lookback":20,"volume_threshold":5},"performance":{"sharpe":-0.33,"max_drawdown_pct":-16.5,"alpha_annualized_pct":-1.5,"p_value":0.75,"regime_breakdown":{"UP":-1.13378,"DOWN":-2.251186,"FLAT":1.233391}},"executed_at":"2026-09-23T20:22:30","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0576","name":"volume_lookback=60, volume_threshold=1.5, holding_days=1, direction=momentum, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"direction":"momentum","regime_gate":false,"holding_days":1,"volume_lookback":60,"volume_threshold":1.5},"performance":{"sharpe":-0.11,"max_drawdown_pct":-6.9,"alpha_annualized_pct":-0.3,"p_value":0.81,"regime_breakdown":{"UP":-0.052436,"DOWN":-1.840746,"FLAT":0.480731}},"executed_at":"2026-09-23T20:22:38","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0585","name":"volume_lookback=60, volume_threshold=1.5, holding_days=1, direction=vol_only, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"direction":"vol_only","regime_gate":true,"holding_days":1,"volume_lookback":60,"volume_threshold":1.5},"performance":{"sharpe":0.28,"max_drawdown_pct":-9.3,"alpha_annualized_pct":1.5,"p_value":0.55,"regime_breakdown":{"UP":-0.028535,"DOWN":2.148408,"FLAT":-0.261422}},"executed_at":"2026-09-23T20:22:41","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0621","name":"volume_lookback=60, volume_threshold=1.5, holding_days=20, direction=vol_only, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"direction":"vol_only","regime_gate":true,"holding_days":20,"volume_lookback":60,"volume_threshold":1.5},"performance":{"sharpe":1.1,"max_drawdown_pct":-10.6,"alpha_annualized_pct":19.4,"p_value":0.022,"regime_breakdown":{"UP":0.853704,"DOWN":2.9943,"FLAT":0.559757}},"executed_at":"2026-09-23T20:22:52","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0657","name":"volume_lookback=60, volume_threshold=2, holding_days=10, direction=vol_only, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"direction":"vol_only","regime_gate":true,"holding_days":10,"volume_lookback":60,"volume_threshold":2},"performance":{"sharpe":0.2,"max_drawdown_pct":-15.9,"alpha_annualized_pct":3.4,"p_value":0.67,"regime_breakdown":{"UP":-0.922199,"DOWN":2.235838,"FLAT":0.372882}},"executed_at":"2026-09-23T20:23:03","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0693","name":"volume_lookback=60, volume_threshold=3, holding_days=5, direction=vol_only, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"direction":"vol_only","regime_gate":true,"holding_days":5,"volume_lookback":60,"volume_threshold":3},"performance":{"sharpe":-0.65,"max_drawdown_pct":-27.8,"alpha_annualized_pct":-5.6,"p_value":0.27,"regime_breakdown":{"UP":-1.623176,"DOWN":0.203313,"FLAT":0.588806}},"executed_at":"2026-09-23T20:23:13","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0729","name":"volume_lookback=60, volume_threshold=5, holding_days=1, direction=vol_only, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"direction":"vol_only","regime_gate":true,"holding_days":1,"volume_lookback":60,"volume_threshold":5},"performance":{"sharpe":0.1,"max_drawdown_pct":-12.1,"alpha_annualized_pct":0.3,"p_value":0.93,"regime_breakdown":{"UP":-3.569066,"DOWN":1.037672,"FLAT":2.703484}},"executed_at":"2026-09-23T20:23:23","notes":null}],"facts":[{"fact_id":"volume-anomaly-us-sp500-fact-best-sharpe","strategy_slug":"volume-anomaly-us-sp500","claim":"Best grid Sharpe ratio is 2.70 (p=0.06).","value":2.7,"value_text":null,"unit":"sharpe_ratio","context":"period 2022-02-01–2026-09-01; cost=5bps","supports_verdict":"marginal","source_run_id":"r-volume-anomaly-us-sp500-0172","search_tsv":"'-01':12,15 '-02':11 '-09':14 '0.06':8 '2.70':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/volume-anomaly-us-sp500-fact-best-sharpe"},{"fact_id":"volume-anomaly-us-sp500-fact-median-sharpe","strategy_slug":"volume-anomaly-us-sp500","claim":"Median Sharpe across 768 grid runs is 0.05.","value":0.05,"value_text":null,"unit":"sharpe_ratio","context":"Full grid of 768 parameter combinations.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'0.05':8 '768':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/volume-anomaly-us-sp500-fact-median-sharpe"},{"fact_id":"volume-anomaly-us-sp500-fact-regime-down","strategy_slug":"volume-anomaly-us-sp500","claim":"Median Sharpe in DOWN regime is 0.48 across 768 runs.","value":0.48,"value_text":null,"unit":"sharpe_ratio","context":"Regime=DOWN, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'0.48':7 '768':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/volume-anomaly-us-sp500-fact-regime-down"},{"fact_id":"volume-anomaly-us-sp500-fact-regime-flat","strategy_slug":"volume-anomaly-us-sp500","claim":"Median Sharpe in FLAT regime is -0.03 across 768 runs.","value":-0.03,"value_text":null,"unit":"sharpe_ratio","context":"Regime=FLAT, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'-0.03':7 '768':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/volume-anomaly-us-sp500-fact-regime-flat"},{"fact_id":"volume-anomaly-us-sp500-fact-regime-up","strategy_slug":"volume-anomaly-us-sp500","claim":"Median Sharpe in UP regime is -0.33 across 768 runs.","value":-0.33,"value_text":null,"unit":"sharpe_ratio","context":"Regime=UP, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'-0.33':7 '768':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/volume-anomaly-us-sp500-fact-regime-up"}],"related_strategies":[{"related_slug":"volume-anomaly-jp-all","relation":"same_strategy"},{"related_slug":"volume-anomaly-jp-growth","relation":"same_strategy"}],"tags":["volume","anomaly","factor","us-market","sp500","grid-search"],"_links":{"self":"https://qbuntu.ai/v1/strategies/volume-anomaly-us-sp500","html":"https://qbuntu.ai/strategies/volume-anomaly-us-sp500","markdown":"https://qbuntu.ai/ai/strategies/volume-anomaly-us-sp500.md"}}