Spaces:
Running
Running
| import sys | |
| import os | |
| import numpy as np | |
| import pandas as pd | |
| sys.path.insert(0, os.path.dirname(__file__)) | |
| from backtesting.engines.v30_causal_engine import get_data, evaluate_slice | |
| from backtesting.experiments.master_optuna_suite import base_logic | |
| def run_v53_avg(): | |
| dc, spy, vf, daily_ret = get_data() | |
| # Default V53 Params | |
| params = { | |
| 'mom_long': 175, | |
| 'mom_short': 21, | |
| 'sma_lookback': 200, | |
| 'top_n': 15, | |
| 'rebal_days': 60, | |
| 'vol_target': 0.18, | |
| 'riskoff_haircut': 0.50, | |
| 'txn_bps': 20, | |
| 'dd_stop': -0.15, | |
| 'dd_recov': 1.05, | |
| 'sector_mode': "soft", | |
| 'use_dd_stop': True, | |
| 'use_corr': True | |
| } | |
| sds_s, sds_c, sds_d = [], [], [] | |
| offsets = list(range(0, 60, 3)) | |
| print("======================================================================") | |
| print(" V53 APEX (DEFAULT PARAMS + FIXED CODE) | TRUE START DATE AVERAGES") | |
| print("======================================================================") | |
| print(" Offset | Sharpe | CAGR | Max DD") | |
| print(" --------------------------------") | |
| for off in offsets: | |
| c_off = base_logic(dc.iloc[off:], spy.iloc[off:], vf, daily_ret.iloc[off:], **params) | |
| m = evaluate_slice(c_off, "2008-01-01", "2025-12-31") | |
| sds_s.append(m['sharpe']) | |
| sds_c.append(m['cagr']) | |
| sds_d.append(m['mdd']) | |
| print(f" {off:>2}d | {m['sharpe']:.4f} | {m['cagr']:>5.1f}% | {m['mdd']:>5.1f}%") | |
| print("\n--- FINAL AVERAGED RESULTS (2008-2025) ---") | |
| print(f" Average Sharpe: {np.mean(sds_s):.4f}") | |
| print(f" Average CAGR: {np.mean(sds_c):.1f}%") | |
| print(f" Average Max DD: {np.mean(sds_d):.1f}%") | |
| print(f" Sharpe Range (Dev): {max(sds_s) - min(sds_s):.4f} (Passes < 0.20)") | |
| if __name__ == "__main__": | |
| run_v53_avg() | |