{"schema_version":"v1","slug":"pair-trading-us-sp500","name":"Pairs Trading / Statistical Arbitrage (US S&P 500)","name_i18n":{},"verdict":"promising","asset_class":"equity","categories":["mean-reversion","pairs-trading","statistical-arbitrage"],"hypothesis":"Engle-Granger cointegration: identify stock pairs with mean-reverting spreads. Applied to S&P 500 constituents.","rejection_reason":null,"target_universe":{"description":"S&P 500 constituents, ~503 stocks","symbols":[]},"performance_summary":{"sharpe_median":1.6707,"max_drawdown_pct":-1.5,"win_rate":null,"alpha_annualized_pct":null,"p_value":0.0000035,"backtest_period":{"start":"2022-03-09","end":"2026-09-17"}},"grid_summary":{"sharpe":{"p25":0.97,"p75":2.15,"best":3.11,"worst":0.41,"median":1.67},"n_combinations":288},"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 (4x per round-trip: 2 legs)","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-pair-trading-us-sp500-0000","name":"entry_zscore=1.5, exit_zscore=0, lookback=60, max_pairs=5, cost_bps=5","params":{"cost_bps":5,"lookback":60,"max_pairs":5,"exit_zscore":0,"entry_zscore":1.5},"performance":{"sharpe":1.21,"max_drawdown_pct":-9.4,"alpha_annualized_pct":23.7,"p_value":0.00084,"regime_breakdown":{"UP":0.81383,"DOWN":2.092857,"FLAT":1.863756}},"executed_at":"2026-09-23T20:56:38","notes":null},{"run_id":"r-pair-trading-us-sp500-0001","name":"entry_zscore=1.5, exit_zscore=0, lookback=60, max_pairs=5, cost_bps=10","params":{"cost_bps":10,"lookback":60,"max_pairs":5,"exit_zscore":0,"entry_zscore":1.5},"performance":{"sharpe":1.15,"max_drawdown_pct":-9.7,"alpha_annualized_pct":22.6,"p_value":0.0014,"regime_breakdown":{"UP":0.772386,"DOWN":2.011047,"FLAT":1.776772}},"executed_at":"2026-09-23T20:56:39","notes":null},{"run_id":"r-pair-trading-us-sp500-0002","name":"entry_zscore=1.5, exit_zscore=0, lookback=60, max_pairs=10, cost_bps=5","params":{"cost_bps":5,"lookback":60,"max_pairs":10,"exit_zscore":0,"entry_zscore":1.5},"performance":{"sharpe":0.68,"max_drawdown_pct":-3.9,"alpha_annualized_pct":35.4,"p_value":0.026,"regime_breakdown":{"UP":1.112251,"DOWN":2.382174,"FLAT":0.685652}},"executed_at":"2026-09-23T20:56:39","notes":null},{"run_id":"r-pair-trading-us-sp500-0004","name":"entry_zscore=1.5, exit_zscore=0, lookback=60, max_pairs=20, cost_bps=5","params":{"cost_bps":5,"lookback":60,"max_pairs":20,"exit_zscore":0,"entry_zscore":1.5},"performance":{"sharpe":0.58,"max_drawdown_pct":-1.8,"alpha_annualized_pct":45.4,"p_value":0.022,"regime_breakdown":{"UP":1.402394,"DOWN":2.258515,"FLAT":0.674655}},"executed_at":"2026-09-23T20:56:39","notes":null},{"run_id":"r-pair-trading-us-sp500-0012","name":"entry_zscore=1.5, exit_zscore=0, lookback=250, max_pairs=5, cost_bps=5","params":{"cost_bps":5,"lookback":250,"max_pairs":5,"exit_zscore":0,"entry_zscore":1.5},"performance":{"sharpe":3.11,"max_drawdown_pct":-0.1,"alpha_annualized_pct":36.3,"p_value":9e-8,"regime_breakdown":{"UP":3.937381,"DOWN":4.997088,"FLAT":2.553711}},"executed_at":"2026-09-23T20:56:40","notes":null},{"run_id":"r-pair-trading-us-sp500-0016","name":"entry_zscore=1.5, exit_zscore=0, lookback=250, max_pairs=20, cost_bps=5","params":{"cost_bps":5,"lookback":250,"max_pairs":20,"exit_zscore":0,"entry_zscore":1.5},"performance":{"sharpe":2.5,"max_drawdown_pct":-0.4,"alpha_annualized_pct":35.3,"p_value":8.2e-13,"regime_breakdown":{"UP":2.256887,"DOWN":3.806924,"FLAT":2.92943}},"executed_at":"2026-09-23T20:56:40","notes":null},{"run_id":"r-pair-trading-us-sp500-0028","name":"entry_zscore=1.5, exit_zscore=0.25, lookback=120, max_pairs=20, cost_bps=5","params":{"cost_bps":5,"lookback":120,"max_pairs":20,"exit_zscore":0.25,"entry_zscore":1.5},"performance":{"sharpe":2.16,"max_drawdown_pct":-2.2,"alpha_annualized_pct":28.2,"p_value":5.2e-13,"regime_breakdown":{"UP":2.257529,"DOWN":3.005817,"FLAT":2.027268}},"executed_at":"2026-09-23T20:56:42","notes":null},{"run_id":"r-pair-trading-us-sp500-0040","name":"entry_zscore=1.5, exit_zscore=0.5, lookback=60, max_pairs=20, cost_bps=5","params":{"cost_bps":5,"lookback":60,"max_pairs":20,"exit_zscore":0.5,"entry_zscore":1.5},"performance":{"sharpe":0.57,"max_drawdown_pct":-2.3,"alpha_annualized_pct":34,"p_value":0.022,"regime_breakdown":{"UP":1.767662,"DOWN":1.646589,"FLAT":0.657219}},"executed_at":"2026-09-23T20:56:43","notes":null},{"run_id":"r-pair-trading-us-sp500-0052","name":"entry_zscore=1.5, exit_zscore=0.5, lookback=250, max_pairs=20, cost_bps=5","params":{"cost_bps":5,"lookback":250,"max_pairs":20,"exit_zscore":0.5,"entry_zscore":1.5},"performance":{"sharpe":2.61,"max_drawdown_pct":-0.4,"alpha_annualized_pct":35.4,"p_value":1e-15,"regime_breakdown":{"UP":3.248633,"DOWN":5.213157,"FLAT":2.317319}},"executed_at":"2026-09-23T20:56:45","notes":null},{"run_id":"r-pair-trading-us-sp500-0054","name":"entry_zscore=1.5, exit_zscore=1, lookback=60, max_pairs=5, cost_bps=5","params":{"cost_bps":5,"lookback":60,"max_pairs":5,"exit_zscore":1,"entry_zscore":1.5},"performance":{"sharpe":1.22,"max_drawdown_pct":-5.6,"alpha_annualized_pct":19.1,"p_value":0.000043,"regime_breakdown":{"UP":1.274999,"DOWN":2.227735,"FLAT":1.045351}},"executed_at":"2026-09-23T20:56:45","notes":null},{"run_id":"r-pair-trading-us-sp500-0065","name":"entry_zscore=1.5, exit_zscore=1, lookback=120, max_pairs=20, cost_bps=10","params":{"cost_bps":10,"lookback":120,"max_pairs":20,"exit_zscore":1,"entry_zscore":1.5},"performance":{"sharpe":0.94,"max_drawdown_pct":-0.6,"alpha_annualized_pct":48.8,"p_value":0.00014,"regime_breakdown":{"UP":0.936396,"DOWN":3.654246,"FLAT":2.448209}},"executed_at":"2026-09-23T20:56:47","notes":null},{"run_id":"r-pair-trading-us-sp500-0077","name":"entry_zscore=2, exit_zscore=0, lookback=60, max_pairs=20, cost_bps=10","params":{"cost_bps":10,"lookback":60,"max_pairs":20,"exit_zscore":0,"entry_zscore":2},"performance":{"sharpe":0.57,"max_drawdown_pct":-1.8,"alpha_annualized_pct":44.3,"p_value":0.026,"regime_breakdown":{"UP":1.338537,"DOWN":2.18134,"FLAT":0.665605}},"executed_at":"2026-09-23T20:56:49","notes":null},{"run_id":"r-pair-trading-us-sp500-0089","name":"entry_zscore=2, exit_zscore=0, lookback=250, max_pairs=20, cost_bps=10","params":{"cost_bps":10,"lookback":250,"max_pairs":20,"exit_zscore":0,"entry_zscore":2},"performance":{"sharpe":2.47,"max_drawdown_pct":-0.4,"alpha_annualized_pct":34.8,"p_value":1.3e-12,"regime_breakdown":{"UP":2.23309,"DOWN":3.757999,"FLAT":2.903289}},"executed_at":"2026-09-23T20:56:50","notes":null},{"run_id":"r-pair-trading-us-sp500-0101","name":"entry_zscore=2, exit_zscore=0.25, lookback=120, max_pairs=20, cost_bps=10","params":{"cost_bps":10,"lookback":120,"max_pairs":20,"exit_zscore":0.25,"entry_zscore":2},"performance":{"sharpe":2.11,"max_drawdown_pct":-2.3,"alpha_annualized_pct":27.4,"p_value":1.5e-12,"regime_breakdown":{"UP":2.19894,"DOWN":2.959785,"FLAT":1.983711}},"executed_at":"2026-09-23T20:56:52","notes":null},{"run_id":"r-pair-trading-us-sp500-0113","name":"entry_zscore=2, exit_zscore=0.5, lookback=60, max_pairs=20, cost_bps=10","params":{"cost_bps":10,"lookback":60,"max_pairs":20,"exit_zscore":0.5,"entry_zscore":2},"performance":{"sharpe":0.54,"max_drawdown_pct":-2.4,"alpha_annualized_pct":32.6,"p_value":0.028,"regime_breakdown":{"UP":1.641472,"DOWN":1.49511,"FLAT":0.641999}},"executed_at":"2026-09-23T20:56:53","notes":null},{"run_id":"r-pair-trading-us-sp500-0125","name":"entry_zscore=2, exit_zscore=0.5, lookback=250, max_pairs=20, cost_bps=10","params":{"cost_bps":10,"lookback":250,"max_pairs":20,"exit_zscore":0.5,"entry_zscore":2},"performance":{"sharpe":2.58,"max_drawdown_pct":-0.4,"alpha_annualized_pct":34.7,"p_value":2e-15,"regime_breakdown":{"UP":3.209882,"DOWN":5.176398,"FLAT":2.288865}},"executed_at":"2026-09-23T20:56:54","notes":null},{"run_id":"r-pair-trading-us-sp500-0137","name":"entry_zscore=2, exit_zscore=1, lookback=120, max_pairs=20, cost_bps=10","params":{"cost_bps":10,"lookback":120,"max_pairs":20,"exit_zscore":1,"entry_zscore":2},"performance":{"sharpe":0.94,"max_drawdown_pct":-0.6,"alpha_annualized_pct":48.8,"p_value":0.00014,"regime_breakdown":{"UP":0.936396,"DOWN":3.654246,"FLAT":2.448209}},"executed_at":"2026-09-23T20:56:57","notes":null},{"run_id":"r-pair-trading-us-sp500-0149","name":"entry_zscore=2.5, exit_zscore=0, lookback=60, max_pairs=20, cost_bps=10","params":{"cost_bps":10,"lookback":60,"max_pairs":20,"exit_zscore":0,"entry_zscore":2.5},"performance":{"sharpe":0.57,"max_drawdown_pct":-1.8,"alpha_annualized_pct":44.3,"p_value":0.026,"regime_breakdown":{"UP":1.338537,"DOWN":2.18134,"FLAT":0.665605}},"executed_at":"2026-09-23T20:56:58","notes":null},{"run_id":"r-pair-trading-us-sp500-0161","name":"entry_zscore=2.5, exit_zscore=0, lookback=250, max_pairs=20, cost_bps=10","params":{"cost_bps":10,"lookback":250,"max_pairs":20,"exit_zscore":0,"entry_zscore":2.5},"performance":{"sharpe":2.47,"max_drawdown_pct":-0.4,"alpha_annualized_pct":34.8,"p_value":1.3e-12,"regime_breakdown":{"UP":2.23309,"DOWN":3.757999,"FLAT":2.903289}},"executed_at":"2026-09-23T20:56:59","notes":null},{"run_id":"r-pair-trading-us-sp500-0173","name":"entry_zscore=2.5, exit_zscore=0.25, lookback=120, max_pairs=20, cost_bps=10","params":{"cost_bps":10,"lookback":120,"max_pairs":20,"exit_zscore":0.25,"entry_zscore":2.5},"performance":{"sharpe":2.11,"max_drawdown_pct":-2.3,"alpha_annualized_pct":27.4,"p_value":1.5e-12,"regime_breakdown":{"UP":2.19894,"DOWN":2.959785,"FLAT":1.983711}},"executed_at":"2026-09-23T20:57:01","notes":null},{"run_id":"r-pair-trading-us-sp500-0185","name":"entry_zscore=2.5, exit_zscore=0.5, lookback=60, max_pairs=20, cost_bps=10","params":{"cost_bps":10,"lookback":60,"max_pairs":20,"exit_zscore":0.5,"entry_zscore":2.5},"performance":{"sharpe":0.54,"max_drawdown_pct":-2.4,"alpha_annualized_pct":32.6,"p_value":0.028,"regime_breakdown":{"UP":1.641472,"DOWN":1.49511,"FLAT":0.641999}},"executed_at":"2026-09-23T20:57:02","notes":null},{"run_id":"r-pair-trading-us-sp500-0197","name":"entry_zscore=2.5, exit_zscore=0.5, lookback=250, max_pairs=20, cost_bps=10","params":{"cost_bps":10,"lookback":250,"max_pairs":20,"exit_zscore":0.5,"entry_zscore":2.5},"performance":{"sharpe":2.58,"max_drawdown_pct":-0.4,"alpha_annualized_pct":34.7,"p_value":2e-15,"regime_breakdown":{"UP":3.209882,"DOWN":5.176398,"FLAT":2.288865}},"executed_at":"2026-09-23T20:57:04","notes":null},{"run_id":"r-pair-trading-us-sp500-0209","name":"entry_zscore=2.5, exit_zscore=1, lookback=120, max_pairs=20, cost_bps=10","params":{"cost_bps":10,"lookback":120,"max_pairs":20,"exit_zscore":1,"entry_zscore":2.5},"performance":{"sharpe":0.94,"max_drawdown_pct":-0.6,"alpha_annualized_pct":48.8,"p_value":0.00014,"regime_breakdown":{"UP":0.936396,"DOWN":3.654246,"FLAT":2.448209}},"executed_at":"2026-09-23T20:57:06","notes":null},{"run_id":"r-pair-trading-us-sp500-0216","name":"entry_zscore=3, exit_zscore=0, lookback=60, max_pairs=5, cost_bps=5","params":{"cost_bps":5,"lookback":60,"max_pairs":5,"exit_zscore":0,"entry_zscore":3},"performance":{"sharpe":1.26,"max_drawdown_pct":-9.2,"alpha_annualized_pct":24.6,"p_value":0.00059,"regime_breakdown":{"UP":0.885797,"DOWN":2.18643,"FLAT":1.862303}},"executed_at":"2026-09-23T20:57:06","notes":null},{"run_id":"r-pair-trading-us-sp500-0222","name":"entry_zscore=3, exit_zscore=0, lookback=120, max_pairs=5, cost_bps=5","params":{"cost_bps":5,"lookback":120,"max_pairs":5,"exit_zscore":0,"entry_zscore":3},"performance":{"sharpe":2.01,"max_drawdown_pct":-5.7,"alpha_annualized_pct":32.2,"p_value":0.0000097,"regime_breakdown":{"UP":2.170328,"DOWN":1.859838,"FLAT":1.807728}},"executed_at":"2026-09-23T20:57:07","notes":null},{"run_id":"r-pair-trading-us-sp500-0234","name":"entry_zscore=3, exit_zscore=0.25, lookback=60, max_pairs=5, cost_bps=5","params":{"cost_bps":5,"lookback":60,"max_pairs":5,"exit_zscore":0.25,"entry_zscore":3},"performance":{"sharpe":2.09,"max_drawdown_pct":-2,"alpha_annualized_pct":22.3,"p_value":2.1e-8,"regime_breakdown":{"UP":2.235293,"DOWN":1.277657,"FLAT":2.299524}},"executed_at":"2026-09-23T20:57:08","notes":null},{"run_id":"r-pair-trading-us-sp500-0246","name":"entry_zscore=3, exit_zscore=0.25, lookback=250, max_pairs=5, cost_bps=5","params":{"cost_bps":5,"lookback":250,"max_pairs":5,"exit_zscore":0.25,"entry_zscore":3},"performance":{"sharpe":2.14,"max_drawdown_pct":-0.2,"alpha_annualized_pct":45.3,"p_value":0.000023,"regime_breakdown":{"UP":1.758447,"DOWN":8.881251,"FLAT":5.295047}},"executed_at":"2026-09-23T20:57:10","notes":null},{"run_id":"r-pair-trading-us-sp500-0255","name":"entry_zscore=3, exit_zscore=0.5, lookback=60, max_pairs=10, cost_bps=10","params":{"cost_bps":10,"lookback":60,"max_pairs":10,"exit_zscore":0.5,"entry_zscore":3},"performance":{"sharpe":0.41,"max_drawdown_pct":-4.5,"alpha_annualized_pct":42.3,"p_value":0.13,"regime_breakdown":{"UP":1.589577,"DOWN":1.161924,"FLAT":0.547436}},"executed_at":"2026-09-23T20:57:11","notes":null},{"run_id":"r-pair-trading-us-sp500-0259","name":"entry_zscore=3, exit_zscore=0.5, lookback=120, max_pairs=5, cost_bps=10","params":{"cost_bps":10,"lookback":120,"max_pairs":5,"exit_zscore":0.5,"entry_zscore":3},"performance":{"sharpe":1.59,"max_drawdown_pct":-2.3,"alpha_annualized_pct":31.8,"p_value":0.000066,"regime_breakdown":{"UP":1.298574,"DOWN":1.945345,"FLAT":1.85283}},"executed_at":"2026-09-23T20:57:11","notes":null},{"run_id":"r-pair-trading-us-sp500-0271","name":"entry_zscore=3, exit_zscore=1, lookback=60, max_pairs=5, cost_bps=10","params":{"cost_bps":10,"lookback":60,"max_pairs":5,"exit_zscore":1,"entry_zscore":3},"performance":{"sharpe":1.18,"max_drawdown_pct":-5.4,"alpha_annualized_pct":19.5,"p_value":0.00005,"regime_breakdown":{"UP":1.168933,"DOWN":2.182068,"FLAT":0.970564}},"executed_at":"2026-09-23T20:57:13","notes":null}],"facts":[{"fact_id":"pair-trading-us-sp500-fact-best-sharpe","strategy_slug":"pair-trading-us-sp500","claim":"Best grid Sharpe ratio is 3.11 (p=9e-08).","value":3.11,"value_text":null,"unit":"sharpe_ratio","context":"period 2022-03-09–2026-09-17; cost=5bps","supports_verdict":"promising","source_run_id":"r-pair-trading-us-sp500-0012","search_tsv":"'-03':11 '-09':12,14 '-17':15 '2022':10 '2026':13 '3.11':6 '5bps':17 '9e-08':8 'best':1 'cost':16 'grid':2 'p':7 'period':9 'ratio':4 'sharp':3","cite_url":"https://qbuntu.ai/cite/pair-trading-us-sp500-fact-best-sharpe"},{"fact_id":"pair-trading-us-sp500-fact-median-sharpe","strategy_slug":"pair-trading-us-sp500","claim":"Median Sharpe across 288 grid runs is 1.67.","value":1.67,"value_text":null,"unit":"sharpe_ratio","context":"Full grid of 288 parameter combinations.","supports_verdict":"promising","source_run_id":null,"search_tsv":"'1.67':8 '288':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/pair-trading-us-sp500-fact-median-sharpe"},{"fact_id":"pair-trading-us-sp500-fact-regime-down","strategy_slug":"pair-trading-us-sp500","claim":"Median Sharpe in DOWN regime is 2.96 across 288 runs.","value":2.96,"value_text":null,"unit":"sharpe_ratio","context":"Regime=DOWN, N225 SMA20/SMA60 classification.","supports_verdict":"promising","source_run_id":null,"search_tsv":"'2.96':7 '288':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/pair-trading-us-sp500-fact-regime-down"},{"fact_id":"pair-trading-us-sp500-fact-regime-flat","strategy_slug":"pair-trading-us-sp500","claim":"Median Sharpe in FLAT regime is 2.18 across 288 runs.","value":2.18,"value_text":null,"unit":"sharpe_ratio","context":"Regime=FLAT, N225 SMA20/SMA60 classification.","supports_verdict":"promising","source_run_id":null,"search_tsv":"'2.18':7 '288':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/pair-trading-us-sp500-fact-regime-flat"},{"fact_id":"pair-trading-us-sp500-fact-regime-up","strategy_slug":"pair-trading-us-sp500","claim":"Median Sharpe in UP regime is 1.66 across 288 runs.","value":1.66,"value_text":null,"unit":"sharpe_ratio","context":"Regime=UP, N225 SMA20/SMA60 classification.","supports_verdict":"promising","source_run_id":null,"search_tsv":"'1.66':7 '288':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/pair-trading-us-sp500-fact-regime-up"}],"related_strategies":[{"related_slug":"pair-trading-jp-growth","relation":"same_strategy"}],"tags":["pairs-trading","statistical-arbitrage","cointegration","mean-reversion","us-market","sp500","grid-search"],"_links":{"self":"https://qbuntu.ai/v1/strategies/pair-trading-us-sp500","html":"https://qbuntu.ai/strategies/pair-trading-us-sp500","markdown":"https://qbuntu.ai/ai/strategies/pair-trading-us-sp500.md"}}