{"schema_version":"v1","slug":"garman-klass-vol-us-sp500","name":"Garman-Klass Volatility Factor (US S&P 500)","name_i18n":{},"verdict":"rejected","asset_class":"equity","categories":["anomaly","factor","volatility"],"hypothesis":"Garman & Klass (1980): OHLC-based volatility estimator. Testing low-volatility anomaly using GK vol on S&P 500 constituents.","rejection_reason":{"primary":"no_edge","secondary":[],"narrative":"Across 212 grid combinations, median Sharpe=-0.78, best=-0.39. Primary failure mode: no_edge."},"target_universe":{"description":"S&P 500 constituents, ~503 stocks","symbols":[]},"performance_summary":{"sharpe_median":-0.7846,"max_drawdown_pct":-50.1,"win_rate":null,"alpha_annualized_pct":null,"p_value":0.089,"backtest_period":{"start":"2022-02-01","end":"2026-09-01"}},"grid_summary":{"sharpe":{"p25":-0.99,"p75":-0.59,"best":-0.39,"worst":-1.53,"median":-0.78},"n_combinations":212},"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-garman-klass-vol-us-sp500-0000","name":"formation_days=10, 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":10},"performance":{"sharpe":-0.91,"max_drawdown_pct":-46.1,"alpha_annualized_pct":-8.4,"p_value":0.052,"regime_breakdown":{"UP":-1.275487,"DOWN":-0.111172,"FLAT":-1.080042}},"executed_at":"2026-09-23T21:04:48","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0001","name":"formation_days=10, 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":10},"performance":{"sharpe":-0.54,"max_drawdown_pct":-29,"alpha_annualized_pct":-4.3,"p_value":0.24,"regime_breakdown":{"UP":-0.477128,"DOWN":-0.111172,"FLAT":-1.080042}},"executed_at":"2026-09-23T21:04:48","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0002","name":"formation_days=10, 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":10},"performance":{"sharpe":-1.04,"max_drawdown_pct":-50.7,"alpha_annualized_pct":-9.6,"p_value":0.027,"regime_breakdown":{"UP":-1.439964,"DOWN":-0.205998,"FLAT":-1.206671}},"executed_at":"2026-09-23T21:04:48","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0003","name":"formation_days=10, 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":10},"performance":{"sharpe":-0.66,"max_drawdown_pct":-32.4,"alpha_annualized_pct":-5.2,"p_value":0.15,"regime_breakdown":{"UP":-0.956287,"DOWN":-0.205998,"FLAT":-1.206671}},"executed_at":"2026-09-23T21:04:49","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0012","name":"formation_days=10, 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":10},"performance":{"sharpe":-0.82,"max_drawdown_pct":-21.5,"alpha_annualized_pct":-3.7,"p_value":0.078,"regime_breakdown":{"UP":-0.815059,"DOWN":-0.005888,"FLAT":-1.484662}},"executed_at":"2026-09-23T21:04:51","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0013","name":"formation_days=10, holding_days=1, n_stocks=50, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":50,"regime_gate":true,"holding_days":1,"formation_days":10},"performance":{"sharpe":-0.67,"max_drawdown_pct":-16.9,"alpha_annualized_pct":-2.7,"p_value":0.15,"regime_breakdown":{"UP":-0.476976,"DOWN":-0.005888,"FLAT":-1.484662}},"executed_at":"2026-09-23T21:04:51","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0023","name":"formation_days=10, holding_days=5, n_stocks=10, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":10,"regime_gate":true,"holding_days":5,"formation_days":10},"performance":{"sharpe":-0.58,"max_drawdown_pct":-41.6,"alpha_annualized_pct":-6.5,"p_value":0.21,"regime_breakdown":{"UP":-0.725907,"DOWN":-0.289695,"FLAT":-1.017798}},"executed_at":"2026-09-23T21:04:54","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0025","name":"formation_days=10, holding_days=5, n_stocks=20, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":20,"regime_gate":true,"holding_days":5,"formation_days":10},"performance":{"sharpe":-0.39,"max_drawdown_pct":-28.9,"alpha_annualized_pct":-3.4,"p_value":0.39,"regime_breakdown":{"UP":0.137877,"DOWN":-0.338772,"FLAT":-0.754608}},"executed_at":"2026-09-23T21:04:55","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0035","name":"formation_days=10, holding_days=10, n_stocks=5, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":5,"regime_gate":true,"holding_days":10,"formation_days":10},"performance":{"sharpe":-0.76,"max_drawdown_pct":-80.3,"alpha_annualized_pct":-15.1,"p_value":0.1,"regime_breakdown":{"UP":0.303615,"DOWN":-0.984185,"FLAT":-1.148766}},"executed_at":"2026-09-23T21:04:58","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0046","name":"formation_days=10, holding_days=10, n_stocks=50, cost_bps=10, regime_gate=False","params":{"cost_bps":10,"n_stocks":50,"regime_gate":false,"holding_days":10,"formation_days":10},"performance":{"sharpe":-1.53,"max_drawdown_pct":-71.5,"alpha_annualized_pct":-14.2,"p_value":0.0015,"regime_breakdown":{"UP":-1.282631,"DOWN":-1.314573,"FLAT":-1.893018}},"executed_at":"2026-09-23T21:05:01","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0049","name":"formation_days=10, holding_days=20, n_stocks=5, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":5,"regime_gate":true,"holding_days":20,"formation_days":10},"performance":{"sharpe":-0.47,"max_drawdown_pct":-86.2,"alpha_annualized_pct":-14.8,"p_value":0.31,"regime_breakdown":{"UP":0.57429,"DOWN":-1.188537,"FLAT":-0.491346}},"executed_at":"2026-09-23T21:05:01","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0063","name":"formation_days=10, holding_days=20, n_stocks=50, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":50,"regime_gate":true,"holding_days":20,"formation_days":10},"performance":{"sharpe":-0.65,"max_drawdown_pct":-47.3,"alpha_annualized_pct":-8.4,"p_value":0.16,"regime_breakdown":{"UP":0.708699,"DOWN":-1.599778,"FLAT":-0.919891}},"executed_at":"2026-09-23T21:05:05","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0077","name":"formation_days=10, holding_days=60, n_stocks=50, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":50,"regime_gate":true,"holding_days":60,"formation_days":10},"performance":{"sharpe":-0.44,"max_drawdown_pct":-83.1,"alpha_annualized_pct":-17.5,"p_value":0.12,"regime_breakdown":{"UP":1.134211,"DOWN":-0.626038,"FLAT":-1.315467}},"executed_at":"2026-09-23T21:05:09","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0087","name":"formation_days=20, holding_days=1, n_stocks=10, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":10,"regime_gate":true,"holding_days":1,"formation_days":20},"performance":{"sharpe":-0.64,"max_drawdown_pct":-30.5,"alpha_annualized_pct":-4.5,"p_value":0.16,"regime_breakdown":{"UP":-1.113287,"DOWN":-0.081674,"FLAT":-1.199271}},"executed_at":"2026-09-23T21:05:12","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0097","name":"formation_days=20, holding_days=5, n_stocks=5, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":5,"regime_gate":true,"holding_days":5,"formation_days":20},"performance":{"sharpe":-0.67,"max_drawdown_pct":-58.3,"alpha_annualized_pct":-10,"p_value":0.15,"regime_breakdown":{"UP":-0.138454,"DOWN":-0.356469,"FLAT":-1.235763}},"executed_at":"2026-09-23T21:05:15","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0107","name":"formation_days=20, holding_days=5, n_stocks=20, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":20,"regime_gate":true,"holding_days":5,"formation_days":20},"performance":{"sharpe":-0.59,"max_drawdown_pct":-34.7,"alpha_annualized_pct":-5,"p_value":0.2,"regime_breakdown":{"UP":-0.162063,"DOWN":-0.284102,"FLAT":-1.145917}},"executed_at":"2026-09-23T21:05:17","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0120","name":"formation_days=20, holding_days=10, n_stocks=20, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":20,"regime_gate":false,"holding_days":10,"formation_days":20},"performance":{"sharpe":-1.36,"max_drawdown_pct":-93.8,"alpha_annualized_pct":-18.7,"p_value":0.0044,"regime_breakdown":{"UP":-1.495991,"DOWN":-0.959591,"FLAT":-1.397379}},"executed_at":"2026-09-23T21:05:21","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0133","name":"formation_days=20, holding_days=20, n_stocks=10, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":10,"regime_gate":true,"holding_days":20,"formation_days":20},"performance":{"sharpe":-0.47,"max_drawdown_pct":-72,"alpha_annualized_pct":-11.5,"p_value":0.31,"regime_breakdown":{"UP":0.743906,"DOWN":-1.225162,"FLAT":-0.530042}},"executed_at":"2026-09-23T21:05:25","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0159","name":"formation_days=20, holding_days=60, n_stocks=50, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":50,"regime_gate":true,"holding_days":60,"formation_days":20},"performance":{"sharpe":-0.46,"max_drawdown_pct":-86.8,"alpha_annualized_pct":-18.7,"p_value":0.1,"regime_breakdown":{"UP":1.048432,"DOWN":-0.545215,"FLAT":-1.307727}},"executed_at":"2026-09-23T21:05:32","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0168","name":"formation_days=40, holding_days=1, n_stocks=20, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":20,"regime_gate":false,"holding_days":1,"formation_days":40},"performance":{"sharpe":-0.77,"max_drawdown_pct":-28.7,"alpha_annualized_pct":-5,"p_value":0.098,"regime_breakdown":{"UP":-0.761264,"DOWN":-0.264027,"FLAT":-1.180966}},"executed_at":"2026-09-23T21:05:34","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0179","name":"formation_days=40, holding_days=5, n_stocks=5, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":5,"regime_gate":true,"holding_days":5,"formation_days":40},"performance":{"sharpe":-0.73,"max_drawdown_pct":-58.3,"alpha_annualized_pct":-10.8,"p_value":0.11,"regime_breakdown":{"UP":-0.609938,"DOWN":-0.822628,"FLAT":-0.985776}},"executed_at":"2026-09-23T21:05:37","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0188","name":"formation_days=40, holding_days=5, n_stocks=50, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":50,"regime_gate":false,"holding_days":5,"formation_days":40},"performance":{"sharpe":-1.03,"max_drawdown_pct":-45.5,"alpha_annualized_pct":-7.7,"p_value":0.028,"regime_breakdown":{"UP":-1.502761,"DOWN":-0.15281,"FLAT":-1.00455}},"executed_at":"2026-09-23T21:05:40","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0201","name":"formation_days=40, holding_days=10, n_stocks=20, cost_bps=5, regime_gate=True","params":{"cost_bps":5,"n_stocks":20,"regime_gate":true,"holding_days":10,"formation_days":40},"performance":{"sharpe":-0.82,"max_drawdown_pct":-56.9,"alpha_annualized_pct":-10.4,"p_value":0.078,"regime_breakdown":{"UP":0.520505,"DOWN":-1.057459,"FLAT":-1.412823}},"executed_at":"2026-09-23T21:05:44","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0215","name":"formation_days=40, holding_days=20, n_stocks=10, cost_bps=10, regime_gate=True","params":{"cost_bps":10,"n_stocks":10,"regime_gate":true,"holding_days":20,"formation_days":40},"performance":{"sharpe":-0.58,"max_drawdown_pct":-77.9,"alpha_annualized_pct":-13.6,"p_value":0.21,"regime_breakdown":{"UP":0.1281,"DOWN":-1.339703,"FLAT":-0.56063}},"executed_at":"2026-09-23T21:05:48","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0240","name":"formation_days=60, 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":60},"performance":{"sharpe":-0.85,"max_drawdown_pct":-40.6,"alpha_annualized_pct":-7.8,"p_value":0.072,"regime_breakdown":{"UP":-1.02327,"DOWN":-0.886858,"FLAT":-0.688932}},"executed_at":"2026-09-23T21:05:54","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0241","name":"formation_days=60, 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":60},"performance":{"sharpe":-0.6,"max_drawdown_pct":-28.1,"alpha_annualized_pct":-4.9,"p_value":0.19,"regime_breakdown":{"UP":-0.599242,"DOWN":-0.886858,"FLAT":-0.688932}},"executed_at":"2026-09-23T21:05:55","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0250","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":-1.17,"max_drawdown_pct":-36.3,"alpha_annualized_pct":-7.5,"p_value":0.014,"regime_breakdown":{"UP":-1.01891,"DOWN":-1.113954,"FLAT":-1.379383}},"executed_at":"2026-09-23T21:05:57","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0260","name":"formation_days=60, 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":60},"performance":{"sharpe":-1.03,"max_drawdown_pct":-74.2,"alpha_annualized_pct":-14.4,"p_value":0.03,"regime_breakdown":{"UP":-1.44544,"DOWN":-0.378867,"FLAT":-0.967527}},"executed_at":"2026-09-23T21:06:00","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0269","name":"formation_days=60, 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":60},"performance":{"sharpe":-0.52,"max_drawdown_pct":-24.4,"alpha_annualized_pct":-3.3,"p_value":0.26,"regime_breakdown":{"UP":-0.08829,"DOWN":-0.221153,"FLAT":-1.008939}},"executed_at":"2026-09-23T21:06:02","notes":null},{"run_id":"r-garman-klass-vol-us-sp500-0284","name":"formation_days=60, holding_days=10, n_stocks=50, cost_bps=5, regime_gate=False","params":{"cost_bps":5,"n_stocks":50,"regime_gate":false,"holding_days":10,"formation_days":60},"performance":{"sharpe":-1.36,"max_drawdown_pct":-69.5,"alpha_annualized_pct":-13.8,"p_value":0.0048,"regime_breakdown":{"UP":-1.279086,"DOWN":-1.156943,"FLAT":-1.520221}},"executed_at":"2026-09-23T21:06:07","notes":null}],"facts":[{"fact_id":"garman-klass-vol-us-sp500-fact-best-sharpe","strategy_slug":"garman-klass-vol-us-sp500","claim":"Best grid Sharpe ratio is -0.39 (p=0.39).","value":-0.39,"value_text":null,"unit":"sharpe_ratio","context":"period 2022-02-01–2026-09-01; cost=5bps","supports_verdict":"rejected","source_run_id":"r-garman-klass-vol-us-sp500-0025","search_tsv":"'-0.39':6 '-01':12,15 '-02':11 '-09':14 '0.39':8 '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/garman-klass-vol-us-sp500-fact-best-sharpe"},{"fact_id":"garman-klass-vol-us-sp500-fact-median-sharpe","strategy_slug":"garman-klass-vol-us-sp500","claim":"Median Sharpe across 212 grid runs is -0.78.","value":-0.78,"value_text":null,"unit":"sharpe_ratio","context":"Full grid of 212 parameter combinations.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.78':8 '212':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/garman-klass-vol-us-sp500-fact-median-sharpe"},{"fact_id":"garman-klass-vol-us-sp500-fact-regime-down","strategy_slug":"garman-klass-vol-us-sp500","claim":"Median Sharpe in DOWN regime is -0.58 across 212 runs.","value":-0.58,"value_text":null,"unit":"sharpe_ratio","context":"Regime=DOWN, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.58':7 '212':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/garman-klass-vol-us-sp500-fact-regime-down"},{"fact_id":"garman-klass-vol-us-sp500-fact-regime-flat","strategy_slug":"garman-klass-vol-us-sp500","claim":"Median Sharpe in FLAT regime is -1.11 across 212 runs.","value":-1.11,"value_text":null,"unit":"sharpe_ratio","context":"Regime=FLAT, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-1.11':7 '212':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/garman-klass-vol-us-sp500-fact-regime-flat"},{"fact_id":"garman-klass-vol-us-sp500-fact-regime-up","strategy_slug":"garman-klass-vol-us-sp500","claim":"Median Sharpe in UP regime is -0.55 across 212 runs.","value":-0.55,"value_text":null,"unit":"sharpe_ratio","context":"Regime=UP, N225 SMA20/SMA60 classification.","supports_verdict":"rejected","source_run_id":null,"search_tsv":"'-0.55':7 '212':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/garman-klass-vol-us-sp500-fact-regime-up"}],"related_strategies":[{"related_slug":"garman-klass-vol-jp-all","relation":"same_strategy"},{"related_slug":"garman-klass-vol-jp-growth","relation":"same_strategy"}],"tags":["volatility","garman-klass","factor","anomaly","us-market","sp500","grid-search"],"_links":{"self":"https://qbuntu.ai/v1/strategies/garman-klass-vol-us-sp500","html":"https://qbuntu.ai/strategies/garman-klass-vol-us-sp500","markdown":"https://qbuntu.ai/ai/strategies/garman-klass-vol-us-sp500.md"}}