{"schema_version":"v1","slug":"vpt-divergence-us-sp500","name":"VPT Divergence (US S&P 500)","name_i18n":{},"verdict":"rejected","asset_class":"equity","categories":["divergence","technical","volume"],"hypothesis":"Volume-Price-Trend (VPT) accumulates volume signed by returns; a divergence between the VPT path and the price path is read as hidden accumulation/distribution. Ranking on VPT-price divergence tests whether price subsequently closes the gap.","rejection_reason":{"primary":"no_edge","secondary":[],"narrative":"Across 144 grid combinations, median Sharpe=-0.21, best=0.83. Primary failure mode: no_edge."},"target_universe":{"description":"S&P 500 constituents, ~503 stocks","symbols":[]},"performance_summary":{"sharpe_median":-0.2103,"max_drawdown_pct":-8.1,"win_rate":null,"alpha_annualized_pct":null,"p_value":0.52,"backtest_period":{"start":"2022-03-01","end":"2026-09-01"}},"grid_summary":{"sharpe":{"p25":-0.47,"p75":0.07,"best":0.83,"worst":-0.91,"median":-0.21},"n_combinations":144},"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","transaction_cost_bps":5},"provenance":{"data_source":"kabu STATION REST API + J-Quants daily bars","source_project":"qbuntu-analysis","computed_asof":"2026-09-24T21:54:30","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-vpt-divergence-us-sp500-0000","name":"vpt_lookback=20, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=1","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":1,"vpt_lookback":20},"performance":{"sharpe":0.77,"max_drawdown_pct":-4.2,"alpha_annualized_pct":3.1,"p_value":0.098,"regime_breakdown":{"UP":0.642266,"DOWN":0.595449,"FLAT":1.05212}},"executed_at":"2026-09-24T02:16:12","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0001","name":"vpt_lookback=20, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=5","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":5,"vpt_lookback":20},"performance":{"sharpe":0.27,"max_drawdown_pct":-10.1,"alpha_annualized_pct":1.7,"p_value":0.56,"regime_breakdown":{"UP":-0.144026,"DOWN":0.331097,"FLAT":0.811373}},"executed_at":"2026-09-24T02:16:13","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0002","name":"vpt_lookback=20, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=20","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":20,"vpt_lookback":20},"performance":{"sharpe":0.2,"max_drawdown_pct":-19.1,"alpha_annualized_pct":2.2,"p_value":0.67,"regime_breakdown":{"UP":-0.262141,"DOWN":-0.672605,"FLAT":1.254327}},"executed_at":"2026-09-24T02:16:13","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0003","name":"vpt_lookback=20, n_stocks=5, cost_bps=5, regime_gate=True, holding_days=1","params":{"cost_bps":5,"n_stocks":5,"regime_gate":true,"holding_days":1,"vpt_lookback":20},"performance":{"sharpe":0.83,"max_drawdown_pct":-6,"alpha_annualized_pct":2.7,"p_value":0.078,"regime_breakdown":{"UP":0.743299,"DOWN":0.595449,"FLAT":1.05212}},"executed_at":"2026-09-24T02:16:13","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0006","name":"vpt_lookback=20, n_stocks=5, cost_bps=10, regime_gate=False, holding_days=1","params":{"cost_bps":10,"n_stocks":5,"regime_gate":false,"holding_days":1,"vpt_lookback":20},"performance":{"sharpe":0.47,"max_drawdown_pct":-5.6,"alpha_annualized_pct":1.9,"p_value":0.31,"regime_breakdown":{"UP":0.35417,"DOWN":0.335577,"FLAT":0.707826}},"executed_at":"2026-09-24T02:16:14","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0009","name":"vpt_lookback=20, n_stocks=5, cost_bps=10, regime_gate=True, holding_days=1","params":{"cost_bps":10,"n_stocks":5,"regime_gate":true,"holding_days":1,"vpt_lookback":20},"performance":{"sharpe":0.55,"max_drawdown_pct":-7,"alpha_annualized_pct":1.8,"p_value":0.24,"regime_breakdown":{"UP":0.513072,"DOWN":0.335577,"FLAT":0.707826}},"executed_at":"2026-09-24T02:16:15","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0014","name":"vpt_lookback=20, n_stocks=10, cost_bps=5, regime_gate=False, holding_days=20","params":{"cost_bps":5,"n_stocks":10,"regime_gate":false,"holding_days":20,"vpt_lookback":20},"performance":{"sharpe":0.25,"max_drawdown_pct":-15.6,"alpha_annualized_pct":2.2,"p_value":0.59,"regime_breakdown":{"UP":-0.235329,"DOWN":-0.339001,"FLAT":1.19539}},"executed_at":"2026-09-24T02:16:17","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0019","name":"vpt_lookback=20, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=5","params":{"cost_bps":10,"n_stocks":10,"regime_gate":false,"holding_days":5,"vpt_lookback":20},"performance":{"sharpe":-0.17,"max_drawdown_pct":-12.5,"alpha_annualized_pct":-0.9,"p_value":0.71,"regime_breakdown":{"UP":-0.38466,"DOWN":0.118748,"FLAT":-0.074571}},"executed_at":"2026-09-24T02:16:19","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0024","name":"vpt_lookback=20, n_stocks=20, cost_bps=5, regime_gate=False, holding_days=1","params":{"cost_bps":5,"n_stocks":20,"regime_gate":false,"holding_days":1,"vpt_lookback":20},"performance":{"sharpe":0.37,"max_drawdown_pct":-2.9,"alpha_annualized_pct":0.9,"p_value":0.42,"regime_breakdown":{"UP":0.305971,"DOWN":1.290285,"FLAT":-0.025285}},"executed_at":"2026-09-24T02:16:20","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0029","name":"vpt_lookback=20, n_stocks=20, cost_bps=5, regime_gate=True, holding_days=20","params":{"cost_bps":5,"n_stocks":20,"regime_gate":true,"holding_days":20,"vpt_lookback":20},"performance":{"sharpe":0.4,"max_drawdown_pct":-5.1,"alpha_annualized_pct":2.5,"p_value":0.39,"regime_breakdown":{"UP":0.693182,"DOWN":-0.191555,"FLAT":0.457029}},"executed_at":"2026-09-24T02:16:22","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0034","name":"vpt_lookback=20, n_stocks=20, cost_bps=10, regime_gate=True, holding_days=5","params":{"cost_bps":10,"n_stocks":20,"regime_gate":true,"holding_days":5,"vpt_lookback":20},"performance":{"sharpe":-0.42,"max_drawdown_pct":-10,"alpha_annualized_pct":-1.6,"p_value":0.37,"regime_breakdown":{"UP":-0.346243,"DOWN":-0.123288,"FLAT":-0.645338}},"executed_at":"2026-09-24T02:16:24","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0036","name":"vpt_lookback=20, n_stocks=50, cost_bps=5, regime_gate=False, holding_days=1","params":{"cost_bps":5,"n_stocks":50,"regime_gate":false,"holding_days":1,"vpt_lookback":20},"performance":{"sharpe":-0.19,"max_drawdown_pct":-3.9,"alpha_annualized_pct":-0.4,"p_value":0.68,"regime_breakdown":{"UP":-0.183884,"DOWN":0.134006,"FLAT":-0.316513}},"executed_at":"2026-09-24T02:16:25","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0040","name":"vpt_lookback=20, n_stocks=50, cost_bps=5, regime_gate=True, holding_days=5","params":{"cost_bps":5,"n_stocks":50,"regime_gate":true,"holding_days":5,"vpt_lookback":20},"performance":{"sharpe":0.03,"max_drawdown_pct":-4.6,"alpha_annualized_pct":0.1,"p_value":0.95,"regime_breakdown":{"UP":0.430636,"DOWN":-0.444166,"FLAT":-0.207948}},"executed_at":"2026-09-24T02:16:26","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0045","name":"vpt_lookback=20, n_stocks=50, cost_bps=10, regime_gate=True, holding_days=1","params":{"cost_bps":10,"n_stocks":50,"regime_gate":true,"holding_days":1,"vpt_lookback":20},"performance":{"sharpe":-0.6,"max_drawdown_pct":-6,"alpha_annualized_pct":-1.2,"p_value":0.2,"regime_breakdown":{"UP":-0.387658,"DOWN":-0.486952,"FLAT":-0.835736}},"executed_at":"2026-09-24T02:16:28","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0050","name":"vpt_lookback=40, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=20","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":20,"vpt_lookback":40},"performance":{"sharpe":-0.42,"max_drawdown_pct":-22.5,"alpha_annualized_pct":-5.1,"p_value":0.38,"regime_breakdown":{"UP":-0.440856,"DOWN":-1.161103,"FLAT":0.023608}},"executed_at":"2026-09-24T02:16:29","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0055","name":"vpt_lookback=40, n_stocks=5, cost_bps=10, regime_gate=False, holding_days=5","params":{"cost_bps":10,"n_stocks":5,"regime_gate":false,"holding_days":5,"vpt_lookback":40},"performance":{"sharpe":-0.64,"max_drawdown_pct":-15.7,"alpha_annualized_pct":-3.5,"p_value":0.18,"regime_breakdown":{"UP":-0.608779,"DOWN":-1.714176,"FLAT":-0.276442}},"executed_at":"2026-09-24T02:16:31","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0060","name":"vpt_lookback=40, n_stocks=10, cost_bps=5, regime_gate=False, holding_days=1","params":{"cost_bps":5,"n_stocks":10,"regime_gate":false,"holding_days":1,"vpt_lookback":40},"performance":{"sharpe":-0.01,"max_drawdown_pct":-4.4,"alpha_annualized_pct":0,"p_value":0.99,"regime_breakdown":{"UP":0.127077,"DOWN":-0.786535,"FLAT":0.163188}},"executed_at":"2026-09-24T02:16:33","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0065","name":"vpt_lookback=40, n_stocks=10, cost_bps=5, regime_gate=True, holding_days=20","params":{"cost_bps":5,"n_stocks":10,"regime_gate":true,"holding_days":20,"vpt_lookback":40},"performance":{"sharpe":-0.01,"max_drawdown_pct":-13.3,"alpha_annualized_pct":-0.1,"p_value":0.98,"regime_breakdown":{"UP":0.208576,"DOWN":-0.728726,"FLAT":-0.01859}},"executed_at":"2026-09-24T02:16:34","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0070","name":"vpt_lookback=40, n_stocks=10, cost_bps=10, regime_gate=True, holding_days=5","params":{"cost_bps":10,"n_stocks":10,"regime_gate":true,"holding_days":5,"vpt_lookback":40},"performance":{"sharpe":-0.38,"max_drawdown_pct":-9.9,"alpha_annualized_pct":-1.6,"p_value":0.42,"regime_breakdown":{"UP":-0.383103,"DOWN":-0.956776,"FLAT":-0.06692}},"executed_at":"2026-09-24T02:16:36","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0075","name":"vpt_lookback=40, n_stocks=20, cost_bps=5, regime_gate=True, holding_days=1","params":{"cost_bps":5,"n_stocks":20,"regime_gate":true,"holding_days":1,"vpt_lookback":40},"performance":{"sharpe":0.06,"max_drawdown_pct":-4,"alpha_annualized_pct":0.1,"p_value":0.89,"regime_breakdown":{"UP":0.248214,"DOWN":-0.24987,"FLAT":0.007408}},"executed_at":"2026-09-24T02:16:38","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0080","name":"vpt_lookback=40, n_stocks=20, cost_bps=10, regime_gate=False, holding_days=20","params":{"cost_bps":10,"n_stocks":20,"regime_gate":false,"holding_days":20,"vpt_lookback":40},"performance":{"sharpe":-0.64,"max_drawdown_pct":-20.1,"alpha_annualized_pct":-4.6,"p_value":0.18,"regime_breakdown":{"UP":-0.577715,"DOWN":-0.48745,"FLAT":-0.747294}},"executed_at":"2026-09-24T02:16:39","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0085","name":"vpt_lookback=40, n_stocks=50, cost_bps=5, regime_gate=False, holding_days=5","params":{"cost_bps":5,"n_stocks":50,"regime_gate":false,"holding_days":5,"vpt_lookback":40},"performance":{"sharpe":-0.22,"max_drawdown_pct":-8.3,"alpha_annualized_pct":-0.6,"p_value":0.64,"regime_breakdown":{"UP":-0.189969,"DOWN":-0.256414,"FLAT":-0.217438}},"executed_at":"2026-09-24T02:16:41","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0090","name":"vpt_lookback=40, n_stocks=50, cost_bps=10, regime_gate=False, holding_days=1","params":{"cost_bps":10,"n_stocks":50,"regime_gate":false,"holding_days":1,"vpt_lookback":40},"performance":{"sharpe":-0.88,"max_drawdown_pct":-7.7,"alpha_annualized_pct":-1.5,"p_value":0.064,"regime_breakdown":{"UP":-0.503251,"DOWN":-0.242222,"FLAT":-1.506595}},"executed_at":"2026-09-24T02:16:43","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0095","name":"vpt_lookback=40, n_stocks=50, cost_bps=10, regime_gate=True, holding_days=20","params":{"cost_bps":10,"n_stocks":50,"regime_gate":true,"holding_days":20,"vpt_lookback":40},"performance":{"sharpe":0,"max_drawdown_pct":-11.5,"alpha_annualized_pct":0,"p_value":0.99,"regime_breakdown":{"UP":0.869242,"DOWN":-0.697803,"FLAT":-0.981882}},"executed_at":"2026-09-24T02:16:45","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0096","name":"vpt_lookback=60, n_stocks=5, cost_bps=5, regime_gate=False, holding_days=1","params":{"cost_bps":5,"n_stocks":5,"regime_gate":false,"holding_days":1,"vpt_lookback":60},"performance":{"sharpe":0.11,"max_drawdown_pct":-6.1,"alpha_annualized_pct":0.4,"p_value":0.82,"regime_breakdown":{"UP":0.444858,"DOWN":0.371871,"FLAT":-0.525709}},"executed_at":"2026-09-24T02:16:45","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0101","name":"vpt_lookback=60, n_stocks=5, cost_bps=5, regime_gate=True, holding_days=20","params":{"cost_bps":5,"n_stocks":5,"regime_gate":true,"holding_days":20,"vpt_lookback":60},"performance":{"sharpe":-0.49,"max_drawdown_pct":-35.9,"alpha_annualized_pct":-8.1,"p_value":0.3,"regime_breakdown":{"UP":0.680241,"DOWN":-0.614581,"FLAT":-1.360655}},"executed_at":"2026-09-24T02:16:47","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0106","name":"vpt_lookback=60, n_stocks=5, cost_bps=10, regime_gate=True, holding_days=5","params":{"cost_bps":10,"n_stocks":5,"regime_gate":true,"holding_days":5,"vpt_lookback":60},"performance":{"sharpe":0,"max_drawdown_pct":-9.7,"alpha_annualized_pct":0,"p_value":1,"regime_breakdown":{"UP":0.694997,"DOWN":0.21328,"FLAT":-0.853557}},"executed_at":"2026-09-24T02:16:48","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0111","name":"vpt_lookback=60, n_stocks=10, cost_bps=5, regime_gate=True, holding_days=1","params":{"cost_bps":5,"n_stocks":10,"regime_gate":true,"holding_days":1,"vpt_lookback":60},"performance":{"sharpe":-0.13,"max_drawdown_pct":-7.1,"alpha_annualized_pct":-0.4,"p_value":0.77,"regime_breakdown":{"UP":0.002622,"DOWN":-0.582505,"FLAT":-0.128119}},"executed_at":"2026-09-24T02:16:50","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0116","name":"vpt_lookback=60, n_stocks=10, cost_bps=10, regime_gate=False, holding_days=20","params":{"cost_bps":10,"n_stocks":10,"regime_gate":false,"holding_days":20,"vpt_lookback":60},"performance":{"sharpe":-0.89,"max_drawdown_pct":-37.9,"alpha_annualized_pct":-10,"p_value":0.063,"regime_breakdown":{"UP":-0.617606,"DOWN":-2.426316,"FLAT":-0.923764}},"executed_at":"2026-09-24T02:16:52","notes":null},{"run_id":"r-vpt-divergence-us-sp500-0128","name":"vpt_lookback=60, n_stocks=20, cost_bps=10, regime_gate=False, holding_days=20","params":{"cost_bps":10,"n_stocks":20,"regime_gate":false,"holding_days":20,"vpt_lookback":60},"performance":{"sharpe":-0.91,"max_drawdown_pct":-33.8,"alpha_annualized_pct":-9,"p_value":0.058,"regime_breakdown":{"UP":-0.330333,"DOWN":-1.549794,"FLAT":-1.22877}},"executed_at":"2026-09-24T02:16:56","notes":null}],"facts":[{"fact_id":"vpt-divergence-us-sp500-fact-best-sharpe","strategy_slug":"vpt-divergence-us-sp500","claim":"Best grid Sharpe ratio is 0.83 (p=0.078).","value":0.83,"value_text":null,"unit":"sharpe_ratio","context":"period 2022-03-01–2026-09-01; cost=5bps","supports_verdict":"rejected","source_run_id":"r-vpt-divergence-us-sp500-0003","search_tsv":"'-01':12,15 '-03':11 '-09':14 '0.078':8 '0.83':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/vpt-divergence-us-sp500-fact-best-sharpe"},{"fact_id":"vpt-divergence-us-sp500-fact-median-sharpe","strategy_slug":"vpt-divergence-us-sp500","claim":"Median Sharpe across 144 grid runs is -0.21.","value":-0.21,"value_text":null,"unit":"sharpe_ratio","context":"Full grid of 144 parameter combinations.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.21':8 '144':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/vpt-divergence-us-sp500-fact-median-sharpe"},{"fact_id":"vpt-divergence-us-sp500-fact-regime-down","strategy_slug":"vpt-divergence-us-sp500","claim":"Median Sharpe in DOWN regime is -0.50 across 144 runs.","value":-0.5,"value_text":null,"unit":"sharpe_ratio","context":"Regime=DOWN, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.50':7 '144':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/vpt-divergence-us-sp500-fact-regime-down"},{"fact_id":"vpt-divergence-us-sp500-fact-regime-flat","strategy_slug":"vpt-divergence-us-sp500","claim":"Median Sharpe in FLAT regime is -0.36 across 144 runs.","value":-0.36,"value_text":null,"unit":"sharpe_ratio","context":"Regime=FLAT, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.36':7 '144':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/vpt-divergence-us-sp500-fact-regime-flat"},{"fact_id":"vpt-divergence-us-sp500-fact-regime-up","strategy_slug":"vpt-divergence-us-sp500","claim":"Median Sharpe in UP regime is -0.07 across 144 runs.","value":-0.07,"value_text":null,"unit":"sharpe_ratio","context":"Regime=UP, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.07':7 '144':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/vpt-divergence-us-sp500-fact-regime-up"}],"related_strategies":[{"related_slug":"vpt-divergence-jp-all","relation":"same_strategy"},{"related_slug":"vpt-divergence-jp-growth","relation":"same_strategy"}],"tags":["volume","vpt","divergence","technical","sp500","grid-search"],"_links":{"self":"https://qbuntu.ai/v1/strategies/vpt-divergence-us-sp500","html":"https://qbuntu.ai/strategies/vpt-divergence-us-sp500","markdown":"https://qbuntu.ai/ai/strategies/vpt-divergence-us-sp500.md"}}