Vai al contenuto
Tutte le strategie

Strategie

Inversione contrarian del crowding retail, long-short (paniere 3 asset a forte presenza retail USD-M DOGE/XRP/SOL, barre da 4h + feed del rapporto long/short GLOBAL ACCOUNT; andare contro il crowd ONLY agli estremi statistici del posizionamento — short quando il retail è al massimo net-long / comprare quando il retail è al massimo net-short; uscita verso la media, 3 parametri)

Esito: Abbandonato

RetailCrowdingContrarianReversalLS

Riepilogo esito

RetailCrowdingContrarianReversalLS ha provato ad andare contro il crowd retail su un paniere di DOGE/XRP/SOL, entrando contrarian agli estremi del rapporto globale dei conti long/short con una struttura deliberatamente neutrale al mercato e a 3 parametri. Ha registrato un notevole +1814% su 1,695 operazioni ed è risultata positiva in ogni anno intero, ma lo Sharpe era solo 0.285, con un intervallo di confidenza che includeva lo zero, e il profitto era un artefatto da code grasse, trainato da circa sei giornate……Mostra altroMostra meno

RetailCrowdingContrarianReversalLS ha provato ad andare contro il crowd retail su un paniere di DOGE/XRP/SOL, entrando contrarian agli estremi del rapporto globale dei conti long/short con una struttura deliberatamente neutrale al mercato e a 3 parametri. Ha registrato un notevole +1814% su 1,695 operazioni ed è risultata positiva in ogni anno intero, ma lo Sharpe era solo 0.285, con un intervallo di confidenza che includeva lo zero, e il profitto era un artefatto da code grasse, trainato da circa sei giornate estreme di crollo (in particolare +80.8% durante il crollo di FTX), non da un vantaggio costante. Il problema era aggravato dal fatto che la pipeline supplementare del backtest forniva il rapporto dei conti solo per la gamba principale: XRP e SOL hanno quindi operato sullo z-score di DOGE, e il presupposto centrale della diversificazione non si è mai realizzato, per un vincolo del motore che lo sviluppatore non poteva correggere. L'analista l'ha abbandonata al controllo della revisione del backtest per la qualità del rischio e la significatività del vantaggio; non è mai arrivata all'ottimizzazione, alla revisione del rischio o al paper trading.

Ipotesi

Un contrarian LONG-SHORT multi-strumento su tre perp Binance USD-M con alta partecipazione retail (DOGEUSDT, XRPUSDT, SOLUSDT), su barre da 4h, guidato dal rapporto long/short GLOBAL ACCOUNT (proxy del posizionamento retail basato sul conteggio, nel file delle metriche Binance Vision CSV — count_long_short_ratio — che ha una cronologia MULTI-YEAR, a differenza del feed dei top trader disponibile solo via API, che ha lasciato inattivo il precedente paniere «Informed-Positioning» dopo 2021). Il vantaggio è……Mostra altroMostra meno

Un contrarian LONG-SHORT multi-strumento su tre perp Binance USD-M con alta partecipazione retail (DOGEUSDT, XRPUSDT, SOLUSDT), su barre da 4h, guidato dal rapporto long/short GLOBAL ACCOUNT (proxy del posizionamento retail basato sul conteggio, nel file delle metriche Binance Vision CSV — count_long_short_ratio — che ha una cronologia MULTI-YEAR, a differenza del feed dei top trader disponibile solo via API, che ha lasciato inattivo il precedente paniere «Informed-Positioning» dopo 2021). Il vantaggio è comportamentale e strutturale, non una previsione dei prezzi: agli estremi, il crowd retail sbaglia sistematicamente. Quando la stragrande maggioranza dei conti retail è net-long su uno strumento, i compratori marginali sono esauriti e i rendimenti futuri sono deboli; quando il retail è al massimo net-short, la pressione ribassista si è esaurita e seguono rimbalzi. È fondamentale che questa sia la lettura CONTRARIAN del retail (andare contro il crowd), NOT la lettura trend-following dei conti informati o di grandi dimensioni, già fallita. I parametri sono deliberatamente 3 (z_lookback, entry_z, atr_stop_mult) per resistere ai fallimenti da overfitting; un paniere di 3 nomi diluisce l'adattamento della curva a un singolo simbolo e aumenta il numero di operazioni, per una maggiore affidabilità statistica.

L’iterazione 4 corregge il problema Layer-4 QA (incongruenza dell’insieme di strumenti + misurabilità su un singolo asset), trasformando la strategia nel vero paniere di 3 asset imposto dall’ipotesi: extra_instruments ora include XRPUSDT.BINANCE e SOLUSDT.BINANCE, on_extra_bar viene sovrascritto ed entrambe le posizioni aggiuntive vengono effettivamente negoziate con gestione completa di posizione, uscita e dimensionamento. Questo ripristina la diversificazione e il conteggio di circa 3x operazioni (circa 300……Mostra altroMostra meno

L’iterazione 4 corregge il problema Layer-4 QA (incongruenza dell’insieme di strumenti + misurabilità su un singolo asset), trasformando la strategia nel vero paniere di 3 asset imposto dall’ipotesi: extra_instruments ora include XRPUSDT.BINANCE e SOLUSDT.BINANCE, on_extra_bar viene sovrascritto ed entrambe le posizioni aggiuntive vengono effettivamente negoziate con gestione completa di posizione, uscita e dimensionamento. Questo ripristina la diversificazione e il conteggio di circa 3x operazioni (circa 300 operazioni contro le precedenti 100) che l’ipotesi indica come meccanismo centrale contro l’overfitting e per la dimensione del campione, affrontando la nota QA secondo cui lo Sharpe CI attraversava lo zero su un singolo asset. Il vincolo sui dati è gestito in modo trasparente: ho verificato in src/backtesting/supp_collector.py e lanciando load_for_subprocess che la pipeline di backtest carica il rapporto long/short degli account ONLY per la posizione primaria (le posizioni aggiuntive ricevono solo i funding), quindi un paniere rigoroso basato sul rapporto per ogni posizione lascerebbe XRP/SOL senza dati e non negoziato (un paniere fittizio). Invece, il paniere condivide il rapporto globale long/short degli account della posizione primaria DOGE — DOGE è quello con la maggiore predominanza di trader retail tra i tre, un indicatore generale del sentiment retail — mantenendo il meccanismo contrarian basato sul rapporto long/short degli account SAME (non NOT una sostituzione con un indicatore basato solo sui prezzi), mentre l’esecuzione di ciascuna posizione (tempistica d’ingresso basata sullo z condiviso, ma stop ATR, uscita al ritorno alla media, prezzo e dimensionamento indipendenti per posizione) resta del tutto separata. I calcoli di z-score, ingresso, uscita e dimensionamento sono identici byte per byte alla logica già approvata al Layer 3 per DOGE (100 operazioni, rifattorizzata negli helper condivisi _zscore_for_bars/_atr_of/_size_for), perciò il comportamento DOGE è preservato e le posizioni aggiuntive si comportano allo stesso modo. Sicurezza Layer-2: gli ordini delle posizioni aggiuntive passano da _submit_entry_instrument della classe base, che restituisce subito se la cache simulata non fornisce uno strumento; così il nuovo percorso on_extra_bar non può causare un arresto anomalo del proxy sintetico: ho verificato localmente che il Layer 1 (statico) e tutti e sei gli scenari Layer 2 sono superati. Le importazioni restano invariate (nessuna aggiunta vietata); il parser del rapporto resta una closure locale per evitare il problema di binding statico del proxy. La leva è usata in _size_for (max_size = equity*leverage/price), quindi non è impostata senza essere utilizzata.

Vantaggio corretto per il rischio non significativo, oltre a code grasse dipendenti dai giorni di crollo. Lo Sharpe è solo 0.285, con un 95% CI pari a [-0.326, 0.916] che comprende lo zero: il vantaggio non è distinguibile dal rumore e l’ottimizzazione di tre parametri non può portarlo vicino a un valore promuovibile di ~1.5. Il rendimento totale +1814% è un artefatto delle code grasse (curtosi 15.5, asimmetria 1.18), sostenuto da ~6 giornate estreme — +80.8% nel crollo di 2022-11-01 FTX, +40.3%, +37.5%, +32.9%,……Mostra altroMostra meno

Vantaggio corretto per il rischio non significativo, oltre a code grasse dipendenti dai giorni di crollo. Lo Sharpe è solo 0.285, con un 95% CI pari a [-0.326, 0.916] che comprende lo zero: il vantaggio non è distinguibile dal rumore e l’ottimizzazione di tre parametri non può portarlo vicino a un valore promuovibile di ~1.5. Il rendimento totale +1814% è un artefatto delle code grasse (curtosi 15.5, asimmetria 1.18), sostenuto da ~6 giornate estreme — +80.8% nel crollo di 2022-11-01 FTX, +40.3%, +37.5%, +32.9%, +30.2%, +30.0% — cioè alcuni fortunati short contrarian durante i crolli, non un vantaggio regolare derivante dall’andare contro le posizioni retail. È fondamentale che la nota sul codice ammetta che la pipeline supp del backtest fornisce il rapporto L/S del conto solo per la componente principale, quindi XRP e SOL operano sullo z-score del posizionamento di massa di DOGE, anziché sul proprio; la premessa centrale di diversificazione dell’ipotesi (tre segnali indipendenti sul posizionamento retail) non si realizza: è un solo segnale applicato a tre asset principali correlati, motivo per cui la varianza è enorme e lo Sharpe crolla. Questo difetto è un vincolo di fornitura dei dati del motore che lo sviluppatore non può correggere, quindi iterare non servirà. A ciò si aggiungono max_drawdown 40.4% (da CI a 98.4%), turnover 784x, impatto pari a 14.6% del lordo e capacità di appena $4.67M. avg_trade_return_pct 0.716% supera la soglia minima delle commissioni: si abbandona per la qualità del rischio e la significatività del vantaggio, non perché il vantaggio al netto delle commissioni sia esaurito.

Implementazione

Inversione contrarian long-short su un paniere di 3 asset Binance USD-M ad alta presenza retail (DOGEUSDT principale + XRPUSDT, SOLUSDT aggiuntivi, tutti su barre da 4h). Il segnale è uno z-score mobile del logaritmo del rapporto long/short GLOBAL ACCOUNT (proxy del posizionamento retail basato sul conteggio, dal feed Binance Vision/global_account_ratio). La mappatura contrarian va contro il crowd agli estremi: z >= +entry_z (retail al massimo net-long) -> short; z <= -entry_z (retail al massimo net-short) -> long. Le tre gambe entrano ed escono in modo indipendente, ciascuna con il proprio stop ATR, uscita verso la media (z torna oltre 0 nella direzione opposta alla posizione) e dimensionamento basato sul rischio (risk_frac del capitale sullo stop di distanza ATR, con limite al valore nozionale del capitale moltiplicato per la leva). DOGE operazioni passano dal flusso principale di base; XRP e SOL sono gestite in on_extra_bar tramite _submit_entry_instrument / _submit_exit_position.

Risultati di verifica

Verifica non superata (Layer 4 — revisione QA): - Incoerenza nel gruppo di strumenti: l'ipotesi definisce esplicitamente un paniere di 3 asset (DOGEUSDT, XRPUSDT, SOLUSDT) e afferma che il paniere IS il meccanismo centrale contro l'overfitting e per aumentare il numero di operazioni («un paniere di 3 nomi diluisce l'adattamento della curva a un singolo simbolo e aumenta il numero di operazioni per l'affidabilità statistica»). Il codice fornito usa solo il singolo strumento DOGE:……Mostra altroMostra meno

Verifica non superata (Layer 4 — revisione QA): - Incoerenza nel gruppo di strumenti: l'ipotesi definisce esplicitamente un paniere di 3 asset (DOGEUSDT, XRPUSDT, SOLUSDT) e afferma che il paniere IS il meccanismo centrale contro l'overfitting e per aumentare il numero di operazioni («un paniere di 3 nomi diluisce l'adattamento della curva a un singolo simbolo e aumenta il numero di operazioni per l'affidabilità statistica»). Il codice fornito usa solo il singolo strumento DOGE: config.instrument_id=DOGEUSDT.BINANCE, extra_instruments=[], la docstring della classe dice 'single-name' e manca la gestione multi-strumento (on_extra_bar non è sovrascritto). Due dei tre strumenti indicati (XRP, SOL) sono assenti: il codice non implementa l'ipotesi a cui è associato e vengono meno la diversificazione e la dimensione del campione su cui l'ipotesi fa affidamento. - Lo Sharpe 1.05 del sandbox è CI [-0.57, 2.66] (attraversa lo zero) su 100 operazioni; il risultato dipende dalla gamba short (short_win_rate 0.596 contro long_win_rate 0.417) in una sola finestra di 363 giorni. Riducendo il paniere a un solo nome, il vantaggio resta al limite della misurabilità.

Stabilisci se il singolo strumento DOGE soddisfa l’intento; se è necessario un vero paniere, servono dati L/S per ogni componente. Se si accetta un singolo strumento, attribuisci grande peso a OOS/holdout.

UNIVERSE REDUCED FROM 3-ASSET BASKET TO SINGLE-NAME DOGE (analista/PM alla regola). L'ipotesi definisce esplicitamente un paniere di 3 asset (DOGE/XRP/SOL) e fa affidamento sul paniere per diluire l'adattamento della curva a un singolo simbolo e aumentare il numero di operazioni; la configurazione usa un solo strumento DOGEUSDT. Lo sviluppatore dichiara il vincolo del framework (il feed supplementare L/S viene inserito solo per lo strumento principale) e ha correttamente rifiutato un proxy retail tra nomi diversi, inappropriato come segnale. DOGE è uno strumento nominato e il meccanismo è identico, quindi non si tratta di una discrepanza critica sullo strumento; tuttavia, viene meno la resistenza all'overfitting e l'affidabilità del numero di operazioni previste dall'ipotesi.

Invia all’ottimizzazione/holdout; verifica la stabilità escludendo i maggiori vincitori e conferma i risultati fuori campione.

Il risultato positivo nel sandbox è esile e guidato da code grasse: +36% / Sharpe 1.02, ma CI [-0.58, 2.64] attraversa lo zero, largest_win $11,287 contro avg_win $2,096 (circa 5x), asimmetria +0.53, solo 100 operazioni. È incoraggiante che NOT lo schema invertito inattivo di RR (avg_win $2,096 > avg_loss $1,447, tasso di vittoria 0.51) e un vero feed retail non basato sui prezzi: il vantaggio è plausibile, ma richiede conferma OOS.

Verifica che il long_short_ratio caricato corrisponda a count_long_short_ratio (conti globali), non ai top trader o ai taker; se la colonna è ambigua, selezionala esplicitamente.

Conferma che il campo del rapporto sia il proxy RETAIL previsto. Il codice legge long_short_ratio/longShortRatio, ma le metriche CSV includono count_long_short_ratio (conti globali=retail), i rapporti dei top trader e il rapporto del volume taker. Il segnale contrarian riguarda specificamente il rapporto GLOBAL ACCOUNT basato sul conteggio; invertire il segnale dei top trader o dei taker sarebbe diverso e potrebbe persino dare un segnale opposto.

Revisione Backtest

Sharpe
0,29
Rendimento totale
1814,71%
Drawdown massimo
40,43%
Operazioni totali
1695
Tasso di successo
46,2%
Profit Factor
1,35

avg_trade_return_pct 0.716% supera il costo minimo delle commissioni futures; 1695 operazioni costituiscono un campione decisivo

Positiva in 5 di 5 anni interi (2022 +82%, 2023 +22%, 2024 +74%, 2025 +209%, 2026 +76% YTD) — non limitata a un solo regime

benchmark_meaningful=false e beta ~0: costruzione davvero neutrale al mercato (non penalizzare rispetto al buy-and-hold)

Sharpe 0.285 con 95% CI [-0.326, 0.916] a cavallo dello zero: il vantaggio corretto per il rischio non si distingue da zero; non è possibile ottimizzarlo fino a un livello promuovibile di circa 1.5

Il rendimento +1814% è un artefatto da code grasse (curtosi 15.5), guidato da circa 6 singole giornate nel periodo del crollo, inclusa +80.8% durante il crollo di FTX: andamento irregolare, non un vantaggio costante

Lacuna strutturale: la pipeline supp fornisce il rapporto L/S solo per la componente principale, quindi tutte le componenti 3 operano sullo z-score del posizionamento di massa di DOGE: non si realizza la diversificazione prevista dall’ipotesi, basata su 3 segnali indipendenti (ed è un vincolo del motore che lo sviluppatore non può correggere)

max_drawdown 40.4% (CI alto 98.4%), Sortino 0.345, turnover 784x, impatto pari a 14.6% del lordo, capacità di appena $4.67M — fragile rispetto a commissioni e impatto, su piccola scala, con elevato rischio di coda

Analisi

L'auditor semantico ha rilevato un disallineamento tra codice e ipotesi: il codice NOT implementa l'ipotesi. Riscrivi la strategia affinché implementi l'ipotesi EXACTLY (strumento, intervallo temporale, direzione, vantaggio o meccanismo dichiarato, dimensionamento). Problemi specifici: l'ipotesi (titolo e corpo) definisce un paniere di LONG-SHORT asset 3 su DOGEUSDT/XRPUSDT/SOLUSDT, con lo scopo dichiarato di diluire l'adattamento della curva a un singolo simbolo e aumentare il numero di operazioni; tuttavia……Mostra altroMostra meno

L'auditor semantico ha rilevato un disallineamento tra codice e ipotesi: il codice NOT implementa l'ipotesi. Riscrivi la strategia affinché implementi l'ipotesi EXACTLY (strumento, intervallo temporale, direzione, vantaggio o meccanismo dichiarato, dimensionamento). Problemi specifici: l'ipotesi (titolo e corpo) definisce un paniere di LONG-SHORT asset 3 su DOGEUSDT/XRPUSDT/SOLUSDT, con lo scopo dichiarato di diluire l'adattamento della curva a un singolo simbolo e aumentare il numero di operazioni; tuttavia config.extra_instruments e extra_bar_types sono entrambi vuoti (solo DOGEUSDT.BINANCE) e il codice implementa una strategia su un singolo nome (un solo _ts_arr/_ratio_arr, singoli accessi a self.instrument_id, nessuna logica on_extra_bar/paniere, docstring con 'single-name'). Il campo che motiva la strategia ammette che il paniere di DOGE/XRP/SOL è stato abbandonato perché «impraticabile» a causa di un limite del framework relativo ai feed supplementari; la strategia distribuita è quindi un'inversione su un singolo nome, non il paniere long-short di 3 asset dichiarato nell'ipotesi.

Cronologia iterazioni

Verifica non superata (Layer 2 — scenari sintetici): Parametri usati: ['entry_z', 'risk_frac', 'atr_period', 'z_lookback', 'min_notional', 'atr_stop_mult', 'min_ratio_pts'] Verifica che __init__ imposti tutti gli attributi con self.parameters.get(). - steady_uptrend: TypeError: RetailCrowdingContrarianReversalLS._extract() accetta 1 argomenti posizionali ma ne sono stati forniti 2 (timestamp della barra: 1735692540000) - steady_downtrend: TypeError: RetailCrowdingContrarianReversalLS._extract() accetta 1……Mostra altroMostra meno

Verifica non superata (Layer 2 — scenari sintetici): Parametri usati: ['entry_z', 'risk_frac', 'atr_period', 'z_lookback', 'min_notional', 'atr_stop_mult', 'min_ratio_pts'] Verifica che __init__ imposti tutti gli attributi con self.parameters.get(). - steady_uptrend: TypeError: RetailCrowdingContrarianReversalLS._extract() accetta 1 argomenti posizionali ma ne sono stati forniti 2 (timestamp della barra: 1735692540000) - steady_downtrend: TypeError: RetailCrowdingContrarianReversalLS._extract() accetta 1 argomenti posizionali ma ne sono stati forniti 2 (timestamp della barra: 1735692540000) - flat_ranging: TypeError: RetailCrowdingContrarianReversalLS._extract() accetta 1 argomenti posizionali ma ne sono stati forniti 2 (timestamp della barra: 1735692540000) - volatility_spike: TypeError: RetailCrowdingContrarianReversalLS._extract() accetta 1 argomenti posizionali ma ne sono stati forniti 2 (timestamp della barra: 1735692540000) - zero_volume: TypeError: RetailCrowdingContrarianReversalLS._extract() accetta 1 argomenti posizionali ma ne sono stati forniti 2 (timestamp della barra: 1735692540000) - price_gap: TypeError: RetailCrowdingContrarianReversalLS._extract() accetta 1 argomenti posizionali ma ne sono stati forniti 2 (timestamp della barra: 1735692540000)

Riepilogo esito

Un rendimento eccezionale in prima pagina può essere un'illusione dovuta alle code grasse: verifica se il vantaggio è statisticamente significativo (Sharpe CI lontano da zero) e non dipende da pochi giorni di crollo; controlla inoltre che la diversificazione multi-asset dichiarata si realizzi davvero e non venga vanificata da un vincolo di distribuzione dei dati che instrada ogni gamba sullo stesso segnale condiviso.

È stata abbandonata al controllo della revisione del backtest prima dell'ottimizzazione, perché il vantaggio corretto per il rischio non si distingueva da zero (Sharpe CI attraversava lo zero) e i rendimenti dipendevano da una manciata di short fortunati nei giorni di crollo, anziché da un vantaggio stabile nel contrastare il retail. L'ottimizzazione è stata saltata: i tre parametri non potevano portare uno Sharpe non significativo verso un livello promuovibile di circa 1.5.

Un approccio contrarian long-short market-neutral su un paniere di asset 3 di Binance USD-M, con forte presenza di investitori retail (DOGE/XRP/SOL, barre da 4h), che andava controcorrente rispetto alla massa agli estremi statistici del rapporto globale tra posizioni long e short dei conti: vendeva allo scoperto quando gli investitori retail erano al massimo net-long e acquistava quando erano al massimo net-short, uscendo al ritorno verso la media o al raggiungimento di uno stop ATR, con soli tre parametri ottimizzati.

Su un campione decisivo di 1,695 operazioni, ha reso +1814.7% ed è risultata positiva in tutti e cinque gli anni interi, ma la qualità corretta per il rischio era scarsa: Sharpe 0.285, con un 95% CI pari a [-0.326, 0.916] e a cavallo dello zero, Sortino 0.345, profit factor 1.35, tasso di vittoria 46.2% e drawdown massimo 40.4%. Il rendimento era un artefatto da code grasse (curtosi 15.5), sostenuto da circa 6 singole giornate estreme, inclusa +80.8% nel crollo di 2022 FTX, con turnover 784x, costo d'impatto 14.6% e capacità di appena circa $4.67M.

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.