File size: 1,888 Bytes
1cd56b6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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()