diff --git a/docs/report/strategie_attive.html b/docs/report/strategie_attive.html index cb03c5e..26c749a 100644 --- a/docs/report/strategie_attive.html +++ b/docs/report/strategie_attive.html @@ -23,7 +23,7 @@ font-size:13px;margin-top:10px}

Portafoglio live PORT06 — definizione 19 sleeve; pool live real-only 15 sleeve (i 4 book multi-asset TR01/ROT02/TSM01/XS01 girano in statistica, fuori dal capitale-pool). Capitale pool €2.000, leva 2x, real-truth ledger · -v1.1.20 · generato 2026-06-11 09:57 UTC · backtest canonico: FULL Sharpe 7.34 / DD 3.46% — OOS Sharpe 10.07 / DD 1.48%

+v1.1.26 · generato 2026-06-12 06:15 UTC · backtest canonico: FULL Sharpe 7.34 / DD 3.46% — OOS Sharpe 10.07 / DD 1.48%

Famiglie quasi scorrelate fra loro (fade↔honest ~0.05, pairs ~0.02-0.09, shape ~0.08, xsec ~0): la diversificazione è la leva anti-drawdown. Pesi equal con tetti @@ -41,15 +41,15 @@ non si fada un crollo/parabolica), EXIT-16 (stop solo sul close confermat

MR01 — Bollinger Fade (BTC, ETH)

FADEESECUZIONE REALE (testnet)

Quando il close chiude fuori dalla banda ±2.5σ attorno alla SMA50, entra CONTRO il movimento (short sopra, long sotto). TP alla media (il prezzo "torna a casa"), SL a 2·ATR, -time-limit 24 barre. Edge OOS validato: BTC +201% / ETH +1238% (fee incluse).

annoBTCETH
trdPnL%DD%trdPnL%DD%
201848-781042-8514
201957-841246+217
202068-291455-359
202182+326860+23812
2022108+567576+7496
2023122+318473+2482
2024113+41311126+8887
202590+368286+3618
202629+69424-97
TOT717+187032588+237623

PnL = Σ rendimenti netti per trade (%, leva 3x, fee 0.10% RT, convenzione test; il live gira a leva 2x); DD = max drawdown nell'anno (equity compounding pos 0.15); riga TOT: DD dell'intero periodo. NB: la finestra canonica di valutazione del portafoglio parte dal 2021 — gli anni 2018-2020 (regime microstrutturale diverso, spesso negativi) sono mostrati per onestà storica.

+time-limit 24 barre. Edge OOS validato: BTC +201% / ETH +1238% (fee incluse).

annoBTCETH
trdPnL%DD%trdPnL%DD%
201848-781042-8514
201957-841246+217
202068-291455-359
202182+326860+23812
2022108+567576+7496
2023122+318473+2482
2024113+41311126+8887
202590+368286+3618
202630+78425-57
TOT718+187932589+238023

PnL = Σ rendimenti netti per trade (%, leva 3x, fee 0.10% RT, convenzione test; il live gira a leva 2x); DD = max drawdown nell'anno (equity compounding pos 0.15); riga TOT: DD dell'intero periodo. NB: la finestra canonica di valutazione del portafoglio parte dal 2021 — gli anni 2018-2020 (regime microstrutturale diverso, spesso negativi) sono mostrati per onestà storica.

MR02 — Donchian Fade (BTC, ETH)

FADEESECUZIONE REALE (testnet)

Fada la rottura degli estremi del canale Donchian a 20 barre (max/min recenti): short sulla rottura del massimo, long sulla rottura del minimo. TP al centro del canale. -Stessa tesi di MR01 con trigger diverso → si combinano bene.

annoBTCETH
trdPnL%DD%trdPnL%DD%
2018127+698127+1013
2019118+1816114+1208
2020112+10014135-9423
2021136+33218127+16023
2022106+728591+65012
202396+2353146+5246
2024149+8685180+19524
2025136+3864151+9316
202637+88441+258
TOT1017+2823191112+427831

PnL = Σ rendimenti netti per trade (%, leva 3x, fee 0.10% RT, convenzione test; il live gira a leva 2x); DD = max drawdown nell'anno (equity compounding pos 0.15); riga TOT: DD dell'intero periodo. NB: la finestra canonica di valutazione del portafoglio parte dal 2021 — gli anni 2018-2020 (regime microstrutturale diverso, spesso negativi) sono mostrati per onestà storica.

+Stessa tesi di MR01 con trigger diverso → si combinano bene.

annoBTCETH
trdPnL%DD%trdPnL%DD%
2018127+698127+1013
2019118+1816114+1208
2020112+10014135-9423
2021136+33218127+16023
2022106+728591+65012
202396+2353146+5246
2024149+8685180+19524
2025136+3864151+9316
202638+87441+258
TOT1018+2822191112+427831

PnL = Σ rendimenti netti per trade (%, leva 3x, fee 0.10% RT, convenzione test; il live gira a leva 2x); DD = max drawdown nell'anno (equity compounding pos 0.15); riga TOT: DD dell'intero periodo. NB: la finestra canonica di valutazione del portafoglio parte dal 2021 — gli anni 2018-2020 (regime microstrutturale diverso, spesso negativi) sono mostrati per onestà storica.

MR07 — Return Reversal (BTC, ETH)

FADEESECUZIONE REALE (testnet)

Guarda il rendimento della singola barra: se lo z-score supera ±3.5 (movimento estremo in un'ora), fada il movimento. Exit in multipli di ATR. È la fade più selettiva -(esposizione ~8% del tempo).

annoBTCETH
trdPnL%DD%trdPnL%DD%
201838-12725+1514
201952+55735-4015
202053-111243+395
202145+245724+725
202282+446558+4727
202367+168458+3371
202475+377587+6456
202560+190255+22617
202617+58217+404
TOT489+151712402+180623

PnL = Σ rendimenti netti per trade (%, leva 3x, fee 0.10% RT, convenzione test; il live gira a leva 2x); DD = max drawdown nell'anno (equity compounding pos 0.15); riga TOT: DD dell'intero periodo. NB: la finestra canonica di valutazione del portafoglio parte dal 2021 — gli anni 2018-2020 (regime microstrutturale diverso, spesso negativi) sono mostrati per onestà storica.

+(esposizione ~8% del tempo).

annoBTCETH
trdPnL%DD%trdPnL%DD%
201838-12725+1514
201952+55735-4015
202053-111243+395
202145+245724+725
202282+446558+4727
202367+168458+3371
202475+377587+6456
202560+190255+22617
202617+58218+464
TOT489+151712403+181323

PnL = Σ rendimenti netti per trade (%, leva 3x, fee 0.10% RT, convenzione test; il live gira a leva 2x); DD = max drawdown nell'anno (equity compounding pos 0.15); riga TOT: DD dell'intero periodo. NB: la finestra canonica di valutazione del portafoglio parte dal 2021 — gli anni 2018-2020 (regime microstrutturale diverso, spesso negativi) sono mostrati per onestà storica.

EXIT-16 — perché lo stop scatta solo sul CLOSE

MECCANISMO COMUNE

Scoperta chiave della ricerca exit (34 agenti, 23 famiglie): gli stop intrabar da wick sono falsi negativi — l'overshoot che buca lo stop e rientra è esattamente il movimento che @@ -60,15 +60,15 @@ portafoglio: OOS Sharpe 8.82→10.06. Esteso anche a DIP01 (2026-06-07, grid 36/

DIP01 — Dip Buy (BTC)

HONESTESECUZIONE REALE (testnet)

Compra il dip: quando lo z-score del prezzo incrocia sotto −2.5 (sell-off rapido), entra long. TP alla SMA50, EXIT-16 sul SL, max 24 barre. È l'unico sleeve BTC con round-trip -reali su Deribit testnet (TP limit resting + disaster-stop a −30% sul book).

annoBTC
trdPnL%DD%
201879-7828
201962-10417
202056+6714
202169+31511
202283+40711
202383+2285
202481+3325
202585+3033
202629+76
TOT627+147637

PnL = Σ rendimenti netti per trade (%, leva 3x, fee 0.10% RT, convenzione test; il live gira a leva 2x); DD = max drawdown nell'anno (equity compounding pos 0.15); riga TOT: DD dell'intero periodo. NB: la finestra canonica di valutazione del portafoglio parte dal 2021 — gli anni 2018-2020 (regime microstrutturale diverso, spesso negativi) sono mostrati per onestà storica.

+reali su Deribit testnet (TP limit resting + disaster-stop a −30% sul book).

annoBTC
trdPnL%DD%
201879-7828
201962-10417
202056+6714
202169+31511
202283+40711
202383+2285
202481+3325
202585+3033
202634+106
TOT632+147937

PnL = Σ rendimenti netti per trade (%, leva 3x, fee 0.10% RT, convenzione test; il live gira a leva 2x); DD = max drawdown nell'anno (equity compounding pos 0.15); riga TOT: DD dell'intero periodo. NB: la finestra canonica di valutazione del portafoglio parte dal 2021 — gli anni 2018-2020 (regime microstrutturale diverso, spesso negativi) sono mostrati per onestà storica.

TR01 — Basket Trend (4h)

HONESTSIMULATO

Trend-following difensivo: long quando EMA20>EMA100 sulle 4 ore, flat altrimenti, su un paniere equal-weight di 5 asset (BNB, BTC, DOGE, SOL, XRP). Cattura i trend lunghi che -le fade per costruzione non prendono. Valuta solo barre 4h COMPLETE.

annoTR01 (paniere 5)
trdPnL%DD%
2021+36
2022-912
2023+455
2024+3819
2025-1519
2026-1011
TOT+5130

PnL = ritorno % dell'anno dall'equity giornaliera canonica (2021-2026, leva 3x convenzione test); DD = max drawdown nell'anno; trd non applicabile (ribilancio giornaliero del book).

+le fade per costruzione non prendono. Valuta solo barre 4h COMPLETE.

annoTR01 (paniere 5)
trdPnL%DD%
2021+36
2022-912
2023+455
2024+3819
2025-1519
2026-1011
TOT+5130

PnL = ritorno % dell'anno dall'equity giornaliera canonica (2021-2026, leva 3x convenzione test); DD = max drawdown nell'anno; trd non applicabile (ribilancio giornaliero del book).

ROT02 — Dual Momentum (1d)

HONESTSIMULATO

Rotazione: ogni giorno ordina 8 crypto per momentum a 60 giorni e tiene le top-3 (solo se positive), gross 0.45. Gate di regime: tutto cash se BTC<SMA100. Diversificare su 3 -asset invece di 2 ha quasi dimezzato il DD (40%→26%) alzando il ritorno.

annoROT02 (universo 8)
trdPnL%DD%
2021+00
2022+00
2023+8110
2024+437
2025+1312
2026-89
TOT+13019

PnL = ritorno % dell'anno dall'equity giornaliera canonica (2021-2026, leva 3x convenzione test); DD = max drawdown nell'anno; trd non applicabile (ribilancio giornaliero del book).

+asset invece di 2 ha quasi dimezzato il DD (40%→26%) alzando il ritorno.

annoROT02 (universo 8)
trdPnL%DD%
2021+00
2022+00
2023+8110
2024+437
2025+1312
2026-89
TOT+13019

PnL = ritorno % dell'anno dall'equity giornaliera canonica (2021-2026, leva 3x convenzione test); DD = max drawdown nell'anno; trd non applicabile (ribilancio giornaliero del book).

PAIRS — spread reversion market-neutral (6 sleeve × 5.26%: 5 coppie 1h + ETH/BTC 15m a mezza size, famiglia ≤33%)

PR01 — Pairs Reversion (ETH/BTC, LTC/ETH, ADA/ETH, BTC/LTC, ETH/SOL + ETH/BTC 15m)

PAIRSESECUZIONE REALE (testnet)

Market-neutral: quando il rapporto fra due asset si allontana troppo dalla sua media @@ -83,13 +83,13 @@ e l'edge regge anche filtrando le candele flat ETH 15m (flat-skip: niente barre stale O=H=L=C). Worker validato (replay == backtest). A mezza size (blend-tilt prudente sul caveat slippage): porta il PORT06 a FULL Sharpe ~7.2 / OOS ~9.7.

Esecuzione reale a 2 gambe su Deribit testnet (PairsExecutionClient): -open/close long A / short B, leg-risk unwind, mai close_position.

annoETH/BTCLTC/ETHADA/ETHBTC/LTCETH/SOLETH/BTC·15m
2018-343 (177, dd 45)-492 (913, dd 31)
2019+233 (198, dd 8)+792 (963, dd 4)
2020+323 (211, dd 25)+452 (867, dd 15)
2021+549 (202, dd 12)+1122 (949, dd 5)
2022+1344 (206, dd 3)+292 (45, dd 14)+899 (157, dd 5)+328 (58, dd 8)+1243 (147, dd 9)+2136 (898, dd 5)
2023+464 (213, dd 4)+56 (94, dd 5)+341 (173, dd 10)+61 (106, dd 14)+125 (168, dd 24)+689 (976, dd 11)
2024+1661 (253, dd 6)+1024 (195, dd 9)+1078 (225, dd 16)+638 (186, dd 10)+1302 (199, dd 12)+6313 (1353, dd 4)
2025+1173 (225, dd 16)+962 (196, dd 10)+1046 (187, dd 19)+686 (178, dd 7)+1264 (202, dd 11)+3664 (1123, dd 7)
2026+61 (71, dd 2)+279 (76, dd 3)+140 (71, dd 3)+265 (71, dd 3)+270 (88, dd 4)+155 (411, dd 4)
TOT+5464 (1756, dd 48)+2614 (606, dd 14)+3504 (813, dd 19)+1978 (599, dd 21)+4204 (804, dd 24)+14832 (8453, dd 34)

cella: PnL% anno (n trade, max DD% anno) — Σ rendimenti netti per trade, fee 0.20% RT/coppia (2 gambe), leva 3x convenzione test. NB: la finestra canonica del portafoglio parte dal 2021; gli anni precedenti (spesso negativi) sono mostrati per onestà storica.

+open/close long A / short B, leg-risk unwind, mai close_position.

annoETH/BTCLTC/ETHADA/ETHBTC/LTCETH/SOLETH/BTC·15m
2018-343 (177, dd 45)-492 (913, dd 31)
2019+233 (198, dd 8)+792 (963, dd 4)
2020+323 (211, dd 25)+452 (867, dd 15)
2021+549 (202, dd 12)+1122 (949, dd 5)
2022+1344 (206, dd 3)+292 (45, dd 14)+899 (157, dd 5)+328 (58, dd 8)+1243 (147, dd 9)+2136 (898, dd 5)
2023+464 (213, dd 4)+56 (94, dd 5)+341 (173, dd 10)+61 (106, dd 14)+125 (168, dd 24)+689 (976, dd 11)
2024+1661 (253, dd 6)+1024 (195, dd 9)+1078 (225, dd 16)+638 (186, dd 10)+1302 (199, dd 12)+6313 (1353, dd 4)
2025+1173 (225, dd 16)+962 (196, dd 10)+1046 (187, dd 19)+686 (178, dd 7)+1264 (202, dd 11)+3664 (1123, dd 7)
2026+42 (77, dd 3)+323 (85, dd 3)+198 (76, dd 3)+260 (76, dd 3)+281 (96, dd 4)+136 (449, dd 4)
TOT+5445 (1762, dd 48)+2658 (615, dd 14)+3562 (818, dd 19)+1973 (604, dd 21)+4216 (812, dd 24)+14813 (8491, dd 34)

cella: PnL% anno (n trade, max DD% anno) — Σ rendimenti netti per trade, fee 0.20% RT/coppia (2 gambe), leva 3x convenzione test. NB: la finestra canonica del portafoglio parte dal 2021; gli anni precedenti (spesso negativi) sono mostrati per onestà storica.

TSM — trend-following multi-orizzonte (1 sleeve × 5.69%)

TSM01 — TSMOM (1d)

TSMSIMULATO

Long sugli asset con consenso pieno di momentum su 3 orizzonti (3/6/12 mesi), gross 0.30, cash totale se BTC<SMA100. Mai un anno negativo nel backtest. Non è un motore di ritorno: è il diversificatore che lavora nei regimi in cui le fade soffrono. -Attualmente flat by-design (risk-off).

annoTSM01 (universo 8)
trdPnL%DD%
2021+00
2022+00
2023+00
2024-22
2025+76
2026+00
TOT+56

PnL = ritorno % dell'anno dall'equity giornaliera canonica (2021-2026, leva 3x convenzione test); DD = max drawdown nell'anno; trd non applicabile (ribilancio giornaliero del book).

+Attualmente flat by-design (risk-off).

annoTSM01 (universo 8)
trdPnL%DD%
2021+00
2022+00
2023+00
2024-22
2025+76
2026+00
TOT+56

PnL = ritorno % dell'anno dall'equity giornaliera canonica (2021-2026, leva 3x convenzione test); DD = max drawdown nell'anno; trd non applicabile (ribilancio giornaliero del book).

XSEC — reversione cross-sectional (1 sleeve × 5.69%)

XS01 — Cross-Sectional Reversion (8 asset)

XSECSIMULATO

Famiglia nuova (2026-06-09): ogni 12 ore classifica 8 crypto (BTC, ETH, LTC, ADA, @@ -103,8 +103,14 @@ cross-section del momentum ≥ 0.0313 (mediana TRAIN) — la reversione paga qua dispersione da far rientrare. Diagnostica monotona TRAIN e OOS, plateau p30-p70, standalone Sharpe 2.50→3.46 (regge fee 2x), PORT06 OOS 10.07→10.37 a DD pari. Solo path live (backtest canonico non filtrato → il live farà meglio del backtest).

+

Phase-tranching (2026-06-11, v1.1.21): la fase del roll non-sovrapposto +è arbitraria e da sola muove lo Sharpe daily 1.52-2.33 e il DD 14-33% (timing-luck) → live +gira con 3 sub-book sfasati di 4 barre su capitale comune (PnL/3 ciascuno): ensemble +di fase SENZA parametri fittati. Gate con plateau (K=2 e K=3 entrambi promossi): PORT06 +OOS Sharpe 10.07→10.15, DD 1.48→1.38 a FULL pari. Worker validato esatto (K=1 == backtest; +K=3 == unione fasi).

8 gambe → niente esecuzione reale: gira PAPER come i book multi-asset -(il rumore di arrotondamento a €2k dominerebbe). Worker validato (replay == backtest esatto).

annoXS01 (universo 8)
trdPnL%DD%
2022180+3416
2023106+68
2024195+218
2025674+2258
2026272+854
TOT1427+37016

PnL = Σ rendimenti netti per trade del book (%, gross 1, fee 0.20% RT/book = turnover 2×0.10%); DD dall'equity compounding (pos 0.15, leva 3x convenzione test). Engine canonico SENZA dispersion-gate (il gate agisce solo sul path live, come trend/hurst sulle fade → il live farà meglio del backtest).

+(il rumore di arrotondamento a €2k dominerebbe). Worker validato (replay == backtest esatto).

annoXS01 (universo 8)
trdPnL%DD%
2022180+3416
2023106+68
2024195+218
2025674+2258
2026299+944
TOT1454+37916

PnL = Σ rendimenti netti per trade del book (%, gross 1, fee 0.20% RT/book = turnover 2×0.10%); DD dall'equity compounding (pos 0.15, leva 3x convenzione test). Engine canonico SENZA dispersion-gate (il gate agisce solo sul path live, come trend/hurst sulle fade → il live farà meglio del backtest).

SHAPE — ML morfologico (2 sleeve × 2.94%, famiglia ≤5.88%)

SH01 — Shape-ML (BTC, ETH)

SHAPEESECUZIONE REALE (testnet)

Una LogisticRegression legge 17 feature della forma delle ultime 24 barre e @@ -116,7 +122,7 @@ l'edge): la coda si gestisce dimezzando il peso della famiglia (cap 5.88%).

H=12 (market reduce-only), disaster-bracket on-book come unica protezione di coda — è il diversificatore più decorrelato del portafoglio.

Fix punto-10 (2026-06-07): il training live usa la storia COMPLETA dal parquet -locale (il regime corto a 365g non era robusto: trade-rate 22% vs 10% validato).

annoBTCETH
trdPnL%DD%trdPnL%DD%
2018237-6623239+7415
2019318+8815365-1921
2020240+19410219-29353
2021224+30113146+6718
2022142+641191+7922
2023118+17517+215
2024144+110847+1086
202585+775108+5407
202623+59225-307
TOT1531+845231257+54761

PnL = Σ rendimenti netti per trade (%, leva 3x, fee 0.10% RT, convenzione test; il live gira a leva 2x); DD = max drawdown nell'anno (equity compounding pos 0.15); riga TOT: DD dell'intero periodo. NB: la finestra canonica di valutazione del portafoglio parte dal 2021 — gli anni 2018-2020 (regime microstrutturale diverso, spesso negativi) sono mostrati per onestà storica.

+locale (il regime corto a 365g non era robusto: trade-rate 22% vs 10% validato).

annoBTCETH
trdPnL%DD%trdPnL%DD%
2018237-6623239+7415
2019318+8815365-1921
2020240+19410219-29353
2021224+30113146+6718
2022142+641191+7922
2023118+17517+215
2024144+110847+1086
202585+775108+5407
202625+63225-307
TOT1533+849231257+54761

PnL = Σ rendimenti netti per trade (%, leva 3x, fee 0.10% RT, convenzione test; il live gira a leva 2x); DD = max drawdown nell'anno (equity compounding pos 0.15); riga TOT: DD dell'intero periodo. NB: la finestra canonica di valutazione del portafoglio parte dal 2021 — gli anni 2018-2020 (regime microstrutturale diverso, spesso negativi) sono mostrati per onestà storica.

Metodologia

Generato da scripts/analysis/make_strategy_doc.py — grafici da episodi reali sui dati parquet locali.

\ No newline at end of file diff --git a/scripts/analysis/make_strategy_doc.py b/scripts/analysis/make_strategy_doc.py index 6ab16b1..1981aa3 100644 --- a/scripts/analysis/make_strategy_doc.py +++ b/scripts/analysis/make_strategy_doc.py @@ -440,7 +440,10 @@ def yearly_stats(trades, ts): cap, peak, tot_peak, tot_dd = 1000.0, 1000.0, 1000.0, 0.0 cur = None for i, j, ret in sorted(trades, key=lambda t: t[1]): - ey, xy = ts.iloc[i].year, ts.iloc[j].year + # clamp: l'engine live-path lascia j >= n per il trade aperto al bordo + # della serie (con dati freschi a fine-serie c'e' quasi sempre) + ey = ts.iloc[i].year + xy = ts.iloc[min(j, len(ts) - 1)].year d = years.setdefault(ey, {"n": 0, "pnl": 0.0, "dd": 0.0}) d["n"] += 1 d["pnl"] += ret * 100