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()