feat(explore): 3a ondata - PAIRS a 6 coppie + verdetti su 4 nuove famiglie
Espansione dei meccanismi provati + 2 nuovi sondaggi (agenti paralleli, honest): - PAIRS espansa a 6 coppie robuste: + BTC/LTC (robusta 1h E 4h, Sharpe 2.21, DD 24-34%), ETH/SOL e BNB/ETH (Sharpe 2.4+, solo 1h). Pattern: alt-liquido vs major. - Fade su 6 alt: 0 robuste (mean-reversion vive solo su BTC/ETH; DOGE = artefatto). - Low-vol anomaly: invertita in cripto (vince alta vol), ridondante -> scartata. - Confluenza multi-TF: dimezza il DD di MR01 (ETH same Sharpe a DD 38% vs 63%) -> variante low-DD utile, non edge nuovo. MASTER + 6 pairs (15 sleeve): CAGR 47->71%, OOS DD 4.7->2.3%, Sharpe OOS 4.33->7.71, tutti gli anni positivi. Bilancio robusti: famiglia PAIRS (6) + TSM01 = 7 strategie nuove. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -34,8 +34,16 @@ sys.path.insert(0, str(PROJECT_ROOT))
|
||||
|
||||
from scripts.analysis.pairs_research import pairs_sim, OOS_FRAC # noqa: E402
|
||||
|
||||
PAIRS = [("ETH", "BTC"), ("LTC", "ETH"), ("ADA", "ETH")]
|
||||
PARAMS = dict(n=50, z_in=2.0, z_exit=0.5, max_bars=72)
|
||||
# Coppie robuste (config migliore per ognuna). Sempre alt-liquido vs major (mai alt/alt).
|
||||
# Le prime 3 dal primo lotto; BTC/LTC (anche 4h), ETH/SOL, BNB/ETH dall'espansione.
|
||||
PAIRS = [
|
||||
("ETH", "BTC", dict(n=50, z_in=2.0, z_exit=0.5, max_bars=72)),
|
||||
("LTC", "ETH", dict(n=50, z_in=2.0, z_exit=0.5, max_bars=72)),
|
||||
("ADA", "ETH", dict(n=50, z_in=2.0, z_exit=0.5, max_bars=72)),
|
||||
("BTC", "LTC", dict(n=50, z_in=2.0, z_exit=0.5, max_bars=72)), # NUOVA: robusta 1h E 4h
|
||||
("ETH", "SOL", dict(n=50, z_in=2.0, z_exit=1.0, max_bars=72)), # NUOVA: solo 1h
|
||||
("BNB", "ETH", dict(n=30, z_in=2.0, z_exit=1.0, max_bars=72)), # NUOVA: solo 1h
|
||||
]
|
||||
|
||||
|
||||
def run():
|
||||
@@ -43,13 +51,14 @@ def run():
|
||||
print(" PR01 — PAIRS spread reversion (market-neutral) | netto fee 0.20% RT/coppia, leva 3x")
|
||||
print("=" * 92)
|
||||
print(f" {'coppia':<10s}{'trd':>5s}{'win%':>6s}{'CAGR%':>7s}{'OOS DD%':>8s}{'DD%':>6s}{'Shrp':>6s}{'anni+':>7s}")
|
||||
for a, b in PAIRS:
|
||||
f = pairs_sim(a, b, **PARAMS)
|
||||
o = pairs_sim(a, b, **PARAMS, split_frac=1 - OOS_FRAC)
|
||||
for a, b, p in PAIRS:
|
||||
f = pairs_sim(a, b, **p)
|
||||
o = pairs_sim(a, b, **p, split_frac=1 - OOS_FRAC)
|
||||
yrs = f["yearly"]; pos_y = sum(1 for v in yrs.values() if v > 0)
|
||||
print(f" {a+'/'+b:<10s}{f['trades']:>5d}{f['win']:>6.1f}{f['cagr']:>7.0f}{o['dd']:>8.0f}"
|
||||
f"{f['dd']:>6.0f}{f['sharpe']:>6.2f}{f'{pos_y}/{len(yrs)}':>7s}")
|
||||
print("\n Market-neutral (corr ~0.02 col mercato) -> ottimo diversificatore di portafoglio.")
|
||||
print("\n Market-neutral (corr ~0.02-0.08 col mercato) -> ottimo diversificatore di portafoglio.")
|
||||
print(" Pattern: solo alt-liquido vs major (BTC/ETH); alt-vs-alt e' rumore.")
|
||||
print(" NB: 2 gambe (long A / short B), fee doppie. Worker live da estendere prima del live.")
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user