Vai al contenuto
Tutte le strategie

Strategie

Rotazione cross-sectional settimanale long-only corretta per il rischio (Sharpe-momentum), top-3 su 8 major USD-M a grande capitalizzazione, uscita in liquidità al regime BTC (classifica per rendimento/volatilità, non per rendimento grezzo: seleziona trend rialzisti regolari, posizioni a pesi uguali, puro OHLCV, 3 parametri)

Esito: Abbandonato

RiskAdjustedMomentumLongRotation8Majors

Non limitata dalle commissioni (avg_trade_return_pct 1.72%), contabilizzazione spot pulita a pesi uguali, nessun rischio di leva o artefatti

Ipotesi

Una rotazione momentum cross-sectional LONG-ONLY, ribilanciata ogni settimana, sulle stesse 8 major mega-cap USD-M verificate sui dati della vincitrice promossa «Cross-Sectional Momentum 8-Major LONG» (BTCUSDT, ETHUSDT, SOLUSDT, BNBUSDT, AVAXUSDT, LINKUSDT, ADAUSDT, XRPUSDT), con ONE modifica intenzionale e ben documentata: ordina in base al momentum RISK-ADJUSTED (rendimento passato ÷ volatilità passata, un punteggio simile allo Sharpe) invece che al rendimento grezzo. Il ranking sul rendimento grezzo tende a……Mostra altroMostra meno

Una rotazione momentum cross-sectional LONG-ONLY, ribilanciata ogni settimana, sulle stesse 8 major mega-cap USD-M verificate sui dati della vincitrice promossa «Cross-Sectional Momentum 8-Major LONG» (BTCUSDT, ETHUSDT, SOLUSDT, BNBUSDT, AVAXUSDT, LINKUSDT, ADAUSDT, XRPUSDT), con ONE modifica intenzionale e ben documentata: ordina in base al momentum RISK-ADJUSTED (rendimento passato ÷ volatilità passata, un punteggio simile allo Sharpe) invece che al rendimento grezzo. Il ranking sul rendimento grezzo tende a mantenere i nomi più VOLATILE (quelli con i maggiori movimenti), che sono anche più esposti ai crolli — il meccanismo alla base dei grandi drawdown del momentum (la mia variante dual-momentum perpetual è implosa a 76.9% DD). Ordinare per rendimento/volatilità seleziona invece SMOOTH, trend rialzisti di qualità, che secondo gli studi e i dati empirici migliorano lo Sharpe del momentum e riducono il drawdown. La volatilità viene usata soltanto ONLY nel punteggio scalare di RANK: le posizioni restano EQUAL-WEIGHT, quindi non vengono dimensionate in base alla volatilità NOT (è ciò che ha causato l'artefatto 445%-vol non diagnostico del motore nel mio paniere con gestione della volatilità). La strategia rientra nella fascia ideale confermata per backtest puliti: frequenza settimanale (decine di trade all'anno, sufficienti per metriche affidabili; niente turnover bassissimo che attiva il bug compute_daily_returns, né frenesia intraday che rende le commissioni insostenibili). Evita tutte le famiglie inefficaci: NOT MR intraday, NOT opzioni multi-leg, NOT funding/liquidazione/OI/HL/CM, NOT perpetual a due gambe. I parametri 3 (lookback, top-K, regime SMA) per ridurre l'overfit.

L’iterazione 3 affronta il blocco Layer-4 QA, che NOT era un difetto della strategia, ma un artefatto dovuto a metriche non diagnostiche: metrics.compute_daily_returns costruisce la serie dei rendimenti giornalieri raggruppando il PnL delle operazioni CLOSED per data di chiusura; la versione precedente, con posizioni mantenute aperte per più settimane (riequalizzazione incrementale), realizzava PnL solo in circa 69 date di chiusura distinte nell’arco di più anni. Ogni rendimento su un periodo di detenzione di……Mostra altroMostra meno

L’iterazione 3 affronta il blocco Layer-4 QA, che NOT era un difetto della strategia, ma un artefatto dovuto a metriche non diagnostiche: metrics.compute_daily_returns costruisce la serie dei rendimenti giornalieri raggruppando il PnL delle operazioni CLOSED per data di chiusura; la versione precedente, con posizioni mantenute aperte per più settimane (riequalizzazione incrementale), realizzava PnL solo in circa 69 date di chiusura distinte nell’arco di più anni. Ogni rendimento su un periodo di detenzione di circa 30 giorni veniva poi annualizzato ×√252 come se corrispondesse a un solo giorno di trading, gonfiando la volatilità a 282% e lo Sharpe a 4.64. La causa principale è confermata in metrics.py:187-222 (data_days = len(daily) = date di chiusura distinte) ed è indipendente dalla venue, in linea con la nota del revisore secondo cui il passaggio allo spot non poteva risolvere il problema. La correzione SMALLEST che preserva il vantaggio consiste nel rendere la serie delle operazioni chiuse densa e uniforme: passare dalla riequalizzazione incrementale al ribilanciamento periodico FULL — chiudere l’intero portafoglio e riacquistare da zero i vincitori attuali a peso uguale ogni rebalance_days (intervallo ridotto da 7 a 3). Così il rendimento di ogni posizione viene realizzato a cadenza regolare di circa 3 giorni, la serie dei rendimenti giornalieri risulta equidistante e l’annualizzazione diventa diagnostica. È una normale gestione di portafoglio a peso uguale, non un dimensionamento in base alla volatilità né un turnover volto a manipolare le metriche: universo, ranking corretto per il rischio, pesi strettamente uguali, top-3 con punteggio positivo, filtro BTC di negoziazione e regime, venue spot (leva 1.0, senza funding) e natura long-only riconosciuta dal revisore restano invariati. La cadenza di 3 giorni mantiene il vantaggio per operazione (il momentum delle mega-cap si muove tipicamente di circa 1%+ in 3 giorni), ben al di sopra dei costi di andata e ritorno sullo spot (circa 0.20%); inoltre, resta il vantaggio sul drawdown indipendente dall’annualizzazione (43.62% rispetto a 76.9% della variante dual-momentum), il meccanismo su cui interviene questa modifica.

Tesi smentita e diversi limiti invalicabili. La premessa della strategia è che il ranking corretto per il rischio (rendimento/volatilità) superi il paniere a rendimento grezzo per Sharpe e drawdown, ma information_ratio è -0.314 rispetto al proprio benchmark equal_weight_basket (benchmark_meaningful=vero) — UNDERPERFORMS il paniere su base corretta per il rischio — e max_drawdown è 50.07% (fino a ~100% CI), oltre la soglia di abbandono invalicabile di L19 e in contraddizione con l'affermazione di un «drawdown……Mostra altroMostra meno

Tesi smentita e diversi limiti invalicabili. La premessa della strategia è che il ranking corretto per il rischio (rendimento/volatilità) superi il paniere a rendimento grezzo per Sharpe e drawdown, ma information_ratio è -0.314 rispetto al proprio benchmark equal_weight_basket (benchmark_meaningful=vero) — UNDERPERFORMS il paniere su base corretta per il rischio — e max_drawdown è 50.07% (fino a ~100% CI), oltre la soglia di abbandono invalicabile di L19 e in contraddizione con l'affermazione di un «drawdown inferiore». Sharpe è 0.250, con un intervallo bootstrap CI [-0.398, 0.865] che attraversa lo zero (profit_factor 1.19, Sortino 0.263): non c'è quindi alcun vantaggio significativo; inoltre, il dato principale +3709% dipende interamente dalla beta rialzista crypto di 2021 +1678% — il tipico schema del paniere momentum cross-sectional solo long L45 (multi_instrument 0/84). A peggiorare il quadro, impact_cost_pct 17.8% con capacity_usd $3.15M significa che l'impatto assorbe ~18% del lordo e il vantaggio è su scala irrisoria. Il limite non sono le commissioni: ottimizzare lookback/top-K/regime-SMA non può invertire un information ratio negativo, un drawdown superiore a 50%+ o una capacità di $3M; l'ottimizzatore farebbe overfit sulla finestra 2021 e fallirebbe i test deflated-Sharpe/holdout. Schema di fallimento: paniere momentum cross-sectional solo long no_edge/risk_reject che sottoperforma il benchmark con 50% DD.

Implementazione

Rotazione long-only spot a momentum cross-sectional corretto per il rischio (rendimento/volatilità) su 8 major a grande capitalizzazione (BTC, ETH, SOL, BNB, AVAX, LINK, ADA, XRP). A ogni ribilanciamento ordina l'universo con un punteggio simile allo Sharpe (rendimento passato / volatilità passata dei rendimenti giornalieri), mantiene i nomi con punteggio positivo nel top-3 EQUAL-WEIGHT e ruota interamente in liquidità quando BTC è sotto la sua SMA a 100 giorni (filtro di regime). La volatilità entra solo nella classifica scalare: le posizioni hanno rigorosamente lo stesso peso (nessun sizing in base alla volatilità). A ogni ribilanciamento chiude l'intero portafoglio e riacquista da zero i vincitori correnti, così il rendimento di ogni posizione viene realizzato a intervalli regolari e uniformi.

Risultati di verifica

CLEAN RESTART 2026-09-04 — la cronologia dei verdetti e i record di apprendimento di questa esecuzione sono stati rimossi e la verifica è ripartita da zero. L'abbandono precedente dipendeva dalla pipeline, non dal mercato: l'harness Layer-2 associava in modo errato gli helper @staticmethod (corretto), QA emetteva verdetti definitivi sulla performance basati su uno smoke test non ottimizzato (rimosso — ora QA valuta solo la correttezza) e i timeout della sandbox erano dovuti alla carenza di slot per il backtest (risolta). L'ipotesi e il codice della strategia non sono cambiati. Valuta il codice in base ai suoi meriti; la performance sarà decisa in seguito dal backtest completo e dall'ottimizzatore.

Riporta rebalance_days più vicino a 7 (settimanale) e lascia che lo cerchi l'ottimizzatore.

L'ipotesi specifica un ribilanciamento WEEKLY, ma rebalance_days usa per impostazione predefinita 3; insieme alla chiusura e al riacquisto dell'intero portafoglio, questo genera un turnover molto superiore alle «decine/anno» previste dall'ipotesi. L'intervallo delle barre (1-DAY) e il meccanismo sono corretti: è una deviazione di cadenza, non una sostituzione del meccanismo.

Negozia solo le differenze: esci dagli asset esclusi, compra i nuovi entranti, aumenta o riduci le posizioni mantenute verso pesi uguali; lascia intatti i vincitori persistenti.

A ogni ribilanciamento chiude incondizionatamente ALL posizioni long e riacquista da zero i vincitori; così, un vincitore invariato completa un ciclo di andata e ritorno senza alcun motivo legato al segnale, pagando due commissioni spot a ogni ciclo: churn motivato dalle metriche, non dalla manutenzione del portafoglio.

Revisione Backtest

Sharpe
0,25
Rendimento totale
3709,50%
Drawdown massimo
50,07%
Operazioni totali
1029
Tasso di successo
50,0%
Profit Factor
1,19

Non limitata dalle commissioni (avg_trade_return_pct 1.72%), contabilizzazione spot pulita a pesi uguali, nessun rischio di leva o artefatti

Serie di trade densa e a intervalli regolari (1029 trade): la correzione di rotazione completa iter-3 ha prodotto metriche diagnostiche

Il filtro di regime limita in parte le perdite negli anni ribassisti (2022 -20%, non -60%)

information_ratio -0.314 rispetto al benchmark del paniere a pesi uguali — sottoperforma proprio il paniere che dichiara di migliorare, confutando la tesi centrale (Sharpe più alto / DD inferiore rispetto al paniere)

Sharpe 0.250 con CI [-0.398, 0.865] a cavallo dello zero; profit_factor 1.19 (<1.2); Sortino 0.263 — nessun vantaggio significativo corretto per il rischio

max_drawdown 50.07% (da CI a circa 100%) — supera la soglia di abbandono definitivo 50% (L19), contraddicendo direttamente la promessa di «drawdown inferiore»

+3709% total_return dipende interamente da 2021 (+1678%); beta del paniere long-only a momentum cross-sectional L45 (multi_instrument 0/84), non un vantaggio distinto

impact_cost_pct 17.8% con solo capacity_usd $3.15M — l'impatto assorbe ~18% del lordo e il vantaggio è su scala irrisoria

Cronologia iterazioni

Verifica non superata (revisione Layer 4 — QA): - VENUE MISROUTE + backtest ottimistico senza funding (stesso difetto dei FAIL dual-momentum + mid-cap). Solo long, leva 1.0, nessuno short, puro vantaggio del momentum (non del funding) → secondo la regola deve essere BINANCE_SPOT, ma la configurazione usa perpetual USD-M. funding_events_available=0 significa che non viene applicato alcun funding, ma i long reali sui perpetual lo pagano → risultato ottimistico/non distribuibile. L'argomento «commissioni USD-M più……Mostra altroMostra meno

Verifica non superata (revisione Layer 4 — QA): - VENUE MISROUTE + backtest ottimistico senza funding (stesso difetto dei FAIL dual-momentum + mid-cap). Solo long, leva 1.0, nessuno short, puro vantaggio del momentum (non del funding) → secondo la regola deve essere BINANCE_SPOT, ma la configurazione usa perpetual USD-M. funding_events_available=0 significa che non viene applicato alcun funding, ma i long reali sui perpetual lo pagano → risultato ottimistico/non distribuibile. L'argomento «commissioni USD-M più basse / allunga una vincitrice di USD-M» vale solo perché il backtest ignora il funding. - Flag NON-DIAGNOSTIC METRICS + |Sharpe|>5 per L17. Sharpe 5.09 e volatilità 259.8% sono implausibili per un paniere di major 0.90x. data_days 81 ≈ numero di trade sulla durata pluriennale (742 giorni DD) → il motore annualizza come giornaliere posizioni di ~26 giorni, con inflazione della volatilità di ~5.1x (valore reale ~51%). Sharpe incoerente con cagr 98% (valore coerente ~0.38). compute_daily_returns artefatto della data di chiusura; il reindirizzamento spot non lo NOT corregge (dipende dal turnover). In confronto, il paniere carry supera la verifica (data_days 1080, coerente). - CREDIT: codice corretto e fedele. _sharpe_score calcola correttamente il momentum corretto per il rischio come rendimento/volatilità, top-3 con punteggio positivo e, soprattutto, le posizioni restano EQUAL-WEIGHT (la volatilità entra solo nel ranking scalare — nessun dimensionamento in base alla volatilità NOT, evitando correttamente quell'artefatto). Uscita in liquidità nel regime BTC, strategia davvero solo long (short_trades=0), nessun look-ahead, barriera di allineamento. BTC è legittimamente sia una major negoziata sia il riferimento di regime per questo universo. I parametri 3 corrispondono. I blocchi riguardano venue/metriche, non un difetto del meccanismo.

Verifica non superata (Layer 4 — revisione QA): - NON-DIAGNOSTIC METRICS (artefatto compute_daily_returns) + Sharpe gonfiato. Sharpe 4.64 e volatilità 282.68% implausibili per un paniere di major 0.90x. data_days 69 ≈ numero di trade su più anni (durata di 742d DD) → mantenimenti di circa 30 giorni annualizzati come giornalieri, con volatilità gonfiata di circa 5x (valore reale circa 55%); Sharpe incoerente con cagr 96% (valore coerente circa 0.34). Il reindirizzamento spot non l'ha NOT risolto (come previsto).……Mostra altroMostra meno

Verifica non superata (Layer 4 — revisione QA): - NON-DIAGNOSTIC METRICS (artefatto compute_daily_returns) + Sharpe gonfiato. Sharpe 4.64 e volatilità 282.68% implausibili per un paniere di major 0.90x. data_days 69 ≈ numero di trade su più anni (durata di 742d DD) → mantenimenti di circa 30 giorni annualizzati come giornalieri, con volatilità gonfiata di circa 5x (valore reale circa 55%); Sharpe incoerente con cagr 96% (valore coerente circa 0.34). Il reindirizzamento spot non l'ha NOT risolto (come previsto). Non è possibile certificarla per l'ottimizzatore orientato allo Sharpe e i controlli DSR/PBO. - PROMISING (in contrasto con la strategia sorella mid-cap): l'INDEPENDENT max_drawdown 43.62% — non distorto dall'artefatto — è FAVORABLE, nettamente migliore del 76.9% della variante dual-momentum (che questa modifica mira a migliorare) e del catastrofico 80.85% del top-2 mid-cap. La tesi corretta per il rischio (classificare per rendimento/volatilità per ridurre il drawdown) IS funziona sulla metrica affidabile, con l'aiuto delle mega-cap e di un top-3 meno concentrato. È davvero un candidato «promettente una volta corretto il motore», non da abbandonare. - CREDIT: correzione della venue corretta e completa (tutti .BINANCE_SPOT, funding_events=0 realistico, sizing spot-PV, nessun churn). Meccanismo corretto: classificazione per rendimento/volatilità, posizioni rigorosamente EQUAL-WEIGHT (volatilità solo nella classifica — niente sizing in base alla volatilità, NOT), top-3 con punteggio positivo, BTC sia asset negoziato sia riferimento di regime, solo long (short_trades=0), senza look-ahead. Il blocco è dovuto esclusivamente all'artefatto residuo del motore, non a un difetto.

Verifica non superata (Layer 4 — revisione QA): - TIMEFRAME/CADENCE MISMATCH rispetto all'ipotesi. L'ipotesi è intitolata e descritta come una rotazione WEEKLY e considera la frequenza settimanale un vincolo progettuale fondamentale: «frequenza settimanale (decine di trade/anno... non il churn intraday che viene eroso dalle commissioni)». Il codice imposta rebalance_days=3 e ha prodotto 1014 trade (turnover 11,742%), non «decine/anno». La modifica iter-3 ha spostato la strategia OUT dal punto ideale per cui era……Mostra altroMostra meno

Verifica non superata (Layer 4 — revisione QA): - TIMEFRAME/CADENCE MISMATCH rispetto all'ipotesi. L'ipotesi è intitolata e descritta come una rotazione WEEKLY e considera la frequenza settimanale un vincolo progettuale fondamentale: «frequenza settimanale (decine di trade/anno... non il churn intraday che viene eroso dalle commissioni)». Il codice imposta rebalance_days=3 e ha prodotto 1014 trade (turnover 11,742%), non «decine/anno». La modifica iter-3 ha spostato la strategia OUT dal punto ideale per cui era stata progettata, portandola nella zona ad alto churn che l'ipotesi indica come fatale per le commissioni. - FEE-VIABILITY FAILURE dovuti al churn dell'intero portafoglio. Le rotazioni sorelle che hanno superato la verifica RE-EQUALIZE (negoziano solo le differenze, saltano i movimenti sotto soglia e mantengono i vincitori persistenti). Questa iterazione REPLACED tutto ciò con la chiusura incondizionata dell'intera posizione long aperta EVERY, seguita dal riacquisto da zero a ogni ribilanciamento: così, un asset che resta tra i top-3 viene chiuso e subito riacquistato, pagando inutilmente circa 0.20% per ogni andata e ritorno spot a ciclo. Costo: commission_pct_of_gross 6.78%, impact_cost_pct 17.50% (799,157 USD), turnover 11,742%. - TRUSTWORTHY NEGATIVE RISK-ADJUSTED EDGE. La serie densa di trade chiusi ogni 3 giorni rende le metriche diagnostiche, e il risultato netto è negativo: Sharpe -2.05, Sortino -2.92, PSR 0.01, omega 0.68, tail_ratio 0.79, information_ratio -0.22, intervallo Sharpe CI [-3.84,-0.25] interamente negativo. Il rendimento totale +3766% è un artefatto di asimmetria: pochi enormi vincitori si aggiungono a una strategia che, al netto delle commissioni, perde su base corretta per il rischio.

Stratmill è uno strumento di ricerca e paper trading, non una consulenza finanziaria né un broker. I risultati di backtest e paper trading sono ipotetici. Il trading comporta un rischio di perdita.