{"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.08, best=3.07. Primary failure mode: no_edge."},"target_universe":{"description":"S&P 500 constituents, ~503 stocks","symbols":[]},"performance_summary":{"sharpe_median":0.0806,"max_drawdown_pct":-14.7,"win_rate":null,"alpha_annualized_pct":null,"p_value":0.4,"backtest_period":{"start":"2022-02-01","end":"2026-06-01"}},"grid_summary":{"sharpe":{"p25":-0.54,"p75":0.49,"best":3.07,"worst":-2.98,"median":0.08},"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-07-28T01:10:02","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-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.15,"max_drawdown_pct":-3.4,"alpha_annualized_pct":0.4,"p_value":0.75,"regime_breakdown":{"UP":0.870662,"DOWN":-1.280604,"FLAT":-0.020016}},"executed_at":"2026-07-28T01:08:39","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.3,"max_drawdown_pct":-7.3,"alpha_annualized_pct":1.4,"p_value":0.52,"regime_breakdown":{"UP":0.717215,"DOWN":-1.280604,"FLAT":-0.020016}},"executed_at":"2026-07-28T01:08:40","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.3,"max_drawdown_pct":-5.3,"alpha_annualized_pct":-0.8,"p_value":0.53,"regime_breakdown":{"UP":0.417227,"DOWN":-1.690326,"FLAT":-0.521107}},"executed_at":"2026-07-28T01:08:40","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.04,"max_drawdown_pct":-9.4,"alpha_annualized_pct":0.2,"p_value":0.93,"regime_breakdown":{"UP":0.51806,"DOWN":-1.690326,"FLAT":-0.521107}},"executed_at":"2026-07-28T01:08:40","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.23,"max_drawdown_pct":-8,"alpha_annualized_pct":1.2,"p_value":0.62,"regime_breakdown":{"UP":0.162307,"DOWN":1.644313,"FLAT":-0.564343}},"executed_at":"2026-07-28T01:08:40","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.33,"max_drawdown_pct":-17.4,"alpha_annualized_pct":3.6,"p_value":0.49,"regime_breakdown":{"UP":0.950445,"DOWN":0.55203,"FLAT":-0.970716}},"executed_at":"2026-07-28T01:08:42","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.01,"max_drawdown_pct":-21.7,"alpha_annualized_pct":0.2,"p_value":0.98,"regime_breakdown":{"UP":0.090466,"DOWN":-0.647003,"FLAT":0.671538}},"executed_at":"2026-07-28T01:08:43","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.42,"max_drawdown_pct":-11.7,"alpha_annualized_pct":6.7,"p_value":0.38,"regime_breakdown":{"UP":-0.176669,"DOWN":1.594094,"FLAT":0.575792}},"executed_at":"2026-07-28T01:08:46","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.25,"max_drawdown_pct":-14.2,"alpha_annualized_pct":1.8,"p_value":0.68,"regime_breakdown":{"UP":0.167244,"DOWN":3.023359,"FLAT":-0.090033}},"executed_at":"2026-07-28T01:08:49","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-07-28T01:08:51","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-07-28T01:08:51","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-07-28T01:08:52","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0187","name":"volume_lookback=5, volume_threshold=5, holding_days=20, direction=reversal, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"direction":"reversal","regime_gate":true,"holding_days":20,"volume_lookback":5,"volume_threshold":5},"performance":{"sharpe":2.1,"max_drawdown_pct":-1.3,"alpha_annualized_pct":5.9,"p_value":0.16,"regime_breakdown":{"UP":3.23942,"FLAT":1.010202}},"executed_at":"2026-07-28T01:08:53","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0223","name":"volume_lookback=10, volume_threshold=1.5, holding_days=10, direction=reversal, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"direction":"reversal","regime_gate":true,"holding_days":10,"volume_lookback":10,"volume_threshold":1.5},"performance":{"sharpe":-0.34,"max_drawdown_pct":-16.8,"alpha_annualized_pct":-3.1,"p_value":0.48,"regime_breakdown":{"UP":-0.641591,"DOWN":2.013723,"FLAT":-0.685829}},"executed_at":"2026-07-28T01:08:56","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0259","name":"volume_lookback=10, volume_threshold=2, holding_days=5, direction=reversal, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"direction":"reversal","regime_gate":true,"holding_days":5,"volume_lookback":10,"volume_threshold":2},"performance":{"sharpe":0.46,"max_drawdown_pct":-10.9,"alpha_annualized_pct":5.2,"p_value":0.35,"regime_breakdown":{"UP":0.078836,"DOWN":1.548966,"FLAT":0.315937}},"executed_at":"2026-07-28T01:08:59","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0295","name":"volume_lookback=10, volume_threshold=3, holding_days=1, direction=reversal, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"direction":"reversal","regime_gate":true,"holding_days":1,"volume_lookback":10,"volume_threshold":3},"performance":{"sharpe":-0.02,"max_drawdown_pct":-14.4,"alpha_annualized_pct":-0.1,"p_value":0.98,"regime_breakdown":{"UP":-0.690373,"DOWN":1.710222,"FLAT":0.012616}},"executed_at":"2026-07-28T01:09:02","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0331","name":"volume_lookback=10, volume_threshold=3, holding_days=20, direction=reversal, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"direction":"reversal","regime_gate":true,"holding_days":20,"volume_lookback":10,"volume_threshold":3},"performance":{"sharpe":1.03,"max_drawdown_pct":-14.5,"alpha_annualized_pct":16.6,"p_value":0.1,"regime_breakdown":{"UP":0.734128,"DOWN":1.867848,"FLAT":1.093322}},"executed_at":"2026-07-28T01:09:04","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0367","name":"volume_lookback=10, volume_threshold=5, holding_days=10, direction=reversal, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"direction":"reversal","regime_gate":true,"holding_days":10,"volume_lookback":10,"volume_threshold":5},"performance":{"sharpe":1.82,"max_drawdown_pct":-1.3,"alpha_annualized_pct":3.9,"p_value":0.15,"regime_breakdown":{"UP":92.609846,"FLAT":1.918351}},"executed_at":"2026-07-28T01:09:06","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0403","name":"volume_lookback=20, volume_threshold=1.5, holding_days=5, direction=reversal, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"direction":"reversal","regime_gate":true,"holding_days":5,"volume_lookback":20,"volume_threshold":1.5},"performance":{"sharpe":-0.43,"max_drawdown_pct":-14,"alpha_annualized_pct":-2.6,"p_value":0.37,"regime_breakdown":{"UP":-0.200596,"DOWN":-0.149365,"FLAT":-1.294631}},"executed_at":"2026-07-28T01:09:09","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0439","name":"volume_lookback=20, volume_threshold=2, holding_days=1, direction=reversal, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"direction":"reversal","regime_gate":true,"holding_days":1,"volume_lookback":20,"volume_threshold":2},"performance":{"sharpe":-0.09,"max_drawdown_pct":-20.2,"alpha_annualized_pct":-0.8,"p_value":0.85,"regime_breakdown":{"UP":-0.646726,"DOWN":2.016836,"FLAT":0.038314}},"executed_at":"2026-07-28T01:09:12","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0475","name":"volume_lookback=20, volume_threshold=2, holding_days=20, direction=reversal, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"direction":"reversal","regime_gate":true,"holding_days":20,"volume_lookback":20,"volume_threshold":2},"performance":{"sharpe":0.21,"max_drawdown_pct":-28.7,"alpha_annualized_pct":5.5,"p_value":0.67,"regime_breakdown":{"UP":-0.233476,"DOWN":0.934621,"FLAT":0.807694}},"executed_at":"2026-07-28T01:09:15","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0511","name":"volume_lookback=20, volume_threshold=3, holding_days=10, direction=reversal, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"direction":"reversal","regime_gate":true,"holding_days":10,"volume_lookback":20,"volume_threshold":3},"performance":{"sharpe":0.23,"max_drawdown_pct":-13.5,"alpha_annualized_pct":2.2,"p_value":0.72,"regime_breakdown":{"UP":-0.011376,"DOWN":0.412901,"FLAT":0.551307}},"executed_at":"2026-07-28T01:09:17","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0547","name":"volume_lookback=20, volume_threshold=5, holding_days=5, direction=reversal, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"direction":"reversal","regime_gate":true,"holding_days":5,"volume_lookback":20,"volume_threshold":5},"performance":{"sharpe":1.26,"max_drawdown_pct":-4.6,"alpha_annualized_pct":3.9,"p_value":0.27,"regime_breakdown":{"UP":5.241746,"DOWN":2.452011,"FLAT":0.518059}},"executed_at":"2026-07-28T01:09:19","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.29,"max_drawdown_pct":-6.9,"alpha_annualized_pct":-0.7,"p_value":0.55,"regime_breakdown":{"UP":-0.052436,"DOWN":-1.840746,"FLAT":0.186532}},"executed_at":"2026-07-28T01:09:21","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0584","name":"volume_lookback=60, 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":60,"volume_threshold":1.5},"performance":{"sharpe":0.2,"max_drawdown_pct":-9.3,"alpha_annualized_pct":1.1,"p_value":0.68,"regime_breakdown":{"UP":-0.028535,"DOWN":2.148408,"FLAT":-0.547728}},"executed_at":"2026-07-28T01:09:22","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0620","name":"volume_lookback=60, volume_threshold=1.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":60,"volume_threshold":1.5},"performance":{"sharpe":1.21,"max_drawdown_pct":-10.6,"alpha_annualized_pct":21.6,"p_value":0.015,"regime_breakdown":{"UP":1.000042,"DOWN":2.9943,"FLAT":0.629625}},"executed_at":"2026-07-28T01:09:25","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0656","name":"volume_lookback=60, volume_threshold=2, 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":60,"volume_threshold":2},"performance":{"sharpe":0.29,"max_drawdown_pct":-15.7,"alpha_annualized_pct":4.9,"p_value":0.56,"regime_breakdown":{"UP":-0.694486,"DOWN":2.235838,"FLAT":0.182362}},"executed_at":"2026-07-28T01:09:27","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0692","name":"volume_lookback=60, volume_threshold=3, 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":60,"volume_threshold":3},"performance":{"sharpe":-0.7,"max_drawdown_pct":-26.6,"alpha_annualized_pct":-6.1,"p_value":0.26,"regime_breakdown":{"UP":-1.623176,"DOWN":0.203313,"FLAT":0.609335}},"executed_at":"2026-07-28T01:09:30","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0728","name":"volume_lookback=60, volume_threshold=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":60,"volume_threshold":5},"performance":{"sharpe":0.03,"max_drawdown_pct":-12.1,"alpha_annualized_pct":0.1,"p_value":0.98,"regime_breakdown":{"UP":-3.569066,"DOWN":1.037672,"FLAT":2.833028}},"executed_at":"2026-07-28T01:09:32","notes":null},{"run_id":"r-volume-anomaly-us-sp500-0764","name":"volume_lookback=60, 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":60,"volume_threshold":5},"performance":{"sharpe":3.07,"max_drawdown_pct":-3.4,"alpha_annualized_pct":17.8,"p_value":0.039,"regime_breakdown":{"UP":2.641181,"DOWN":6.640865,"FLAT":1.803175}},"executed_at":"2026-07-28T01:09:34","notes":null}],"facts":[{"fact_id":"volume-anomaly-us-sp500-fact-best-sharpe","strategy_slug":"volume-anomaly-us-sp500","claim":"Best grid Sharpe ratio is 3.07 (p=0.039).","value":3.07,"value_text":null,"unit":"sharpe_ratio","context":"period 2022-02-01–2026-06-01; cost=5bps","supports_verdict":"marginal","source_run_id":"r-volume-anomaly-us-sp500-0764","search_tsv":"'-01':12,15 '-02':11 '-06':14 '0.039':8 '2022':10 '2026':13 '3.07':6 '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.08.","value":0.08,"value_text":null,"unit":"sharpe_ratio","context":"Full grid of 768 parameter combinations.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'0.08':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.02 across 768 runs.","value":-0.02,"value_text":null,"unit":"sharpe_ratio","context":"Regime=FLAT, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'-0.02':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.21 across 768 runs.","value":-0.21,"value_text":null,"unit":"sharpe_ratio","context":"Regime=UP, N225 SMA20/SMA60 classification.","supports_verdict":"marginal","source_run_id":null,"search_tsv":"'-0.21':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"}}