Vai al contenuto
Tutte le strategie

Strategie

Convessità del trend long option a singola leg mensile BTC Deribit (con filtro cheap-IV, direzionale in entrambe le direzioni)

Esito: Abbandonato

BtcDeribitMonthlyLongOptionTrendConvexityCheapIV

Riepilogo esito

BtcDeribitMonthlyLongOptionTrendConvexityCheapIV era l’inverso deliberato, long vega e long direzionale, dei portafogli di opzioni short vol e non direzionali della pipeline: acquistava una singola call o put OTM per convertire una visione di trend BTC in un payoff convesso a rischio definito, e superava nettamente gli ostacoli di esecuzione multi-leg e Layer-3 che avevano bloccato strategie affini. Ma il backtest poteva generare solo 9 operazioni, perché la catena mensile BTC di Deribit nel catalogo copre appena……Mostra altroMostra meno

BtcDeribitMonthlyLongOptionTrendConvexityCheapIV era l’inverso deliberato, long vega e long direzionale, dei portafogli di opzioni short vol e non direzionali della pipeline: acquistava una singola call o put OTM per convertire una visione di trend BTC in un payoff convesso a rischio definito, e superava nettamente gli ostacoli di esecuzione multi-leg e Layer-3 che avevano bloccato strategie affini. Ma il backtest poteva generare solo 9 operazioni, perché la catena mensile BTC di Deribit nel catalogo copre appena ~12 scadenze da metà -2025, e il motore ha segnalato le metriche come inaffidabili: uno Sharpe principale di 3.43 poggiava su un intervallo di confidenza da -13 a +11, e l’intero rendimento netto proveniva da un solo mese di febbraio 2026. Il revisore ha deciso revise_hypothesis, osservando che si trattava del secondo passaggio identico da 9 operazioni e che nessuna modifica al codice poteva aggiungere periodi mensili a una catena poco profonda. La tesi della convessità non è mai stata smentita; semplicemente non era possibile testarla sulla cronologia delle opzioni disponibile, e la strategia è stata abbandonata invece di essere iterata fino a sbattere contro lo stesso muro una terza volta.

Ipotesi

Esprimere una visione di trend BTC tramite una leg di opzioni long SINGLE invece che con un perp, convertendo il payoff trend-following in una struttura convessa a rischio definito. Quando BTC si trova in un regime rialzista confermato AND la volatilità implicita è conveniente, acquistare su Deribit una call mensile CALL ~5% OTM; quando si trova in un regime ribassista confermato AND IV è conveniente, acquistare una put mensile PUT ~5% OTM. Nessuna leg di copertura, nessun margine short: la perdita massima è il……Mostra altroMostra meno

Esprimere una visione di trend BTC tramite una leg di opzioni long SINGLE invece che con un perp, convertendo il payoff trend-following in una struttura convessa a rischio definito. Quando BTC si trova in un regime rialzista confermato AND la volatilità implicita è conveniente, acquistare su Deribit una call mensile CALL ~5% OTM; quando si trova in un regime ribassista confermato AND IV è conveniente, acquistare una put mensile PUT ~5% OTM. Nessuna leg di copertura, nessun margine short: la perdita massima è il premio pagato. È l’inverso deliberato delle vendite di put cash-secured a volatilità short e dello straddle long non direzionale già presenti nella pipeline: qui siamo LONG vega + LONG direzione, per cogliere la coda destra/sinistra grassa dei rendimenti BTC che i trend follower su perp non possono catturare perché l’erosione delle commissioni e le inversioni dei prezzi che attivano gli stop li dissanguano. La singola leg evita il percorso di esecuzione delle opzioni multi-leg che non ha mai superato la verifica (L2). Deribit BTC è il mercato di opzioni crypto più liquido, dispone di greche/IV nel catalogo e le strutture Deribit BTC a singola leg hanno già superato il sandbox Layer-3 (straddle long e vendita CSP hanno entrambi raggiunto backtest_review), quindi la disponibilità dei dati e l’esecuzione presentano rischi ridotti. Copre contemporaneamente le due categorie meno rappresentate: venue delle opzioni (~5% rispetto all’obiettivo 15%) e direzione long_short (15% rispetto all’obiettivo), con orizzonte medio-lungo e solo 4 parametri.

Correzione all’iterazione 3 per il timeout del tempo reale di Layer-3 (> 300s). Tutta la logica dei segnali aveva già superato i Layer 1 e 2, quindi la correzione è limitata rigorosamente al costo per barra indicato nel feedback. Causa principale: _realized_vol_cheap() calcolava la deviazione standard mobile con un ciclo for Python sull’intera cronologia dei prezzi di chiusura (`for i in range(n): rolls[i] = rets[i:i+w].std()`) — O(n·w) per chiamata, eseguito come fallback cheap-IV a ogni barra in cui la……Mostra altroMostra meno

Correzione all’iterazione 3 per il timeout del tempo reale di Layer-3 (> 300s). Tutta la logica dei segnali aveva già superato i Layer 1 e 2, quindi la correzione è limitata rigorosamente al costo per barra indicato nel feedback. Causa principale: _realized_vol_cheap() calcolava la deviazione standard mobile con un ciclo for Python sull’intera cronologia dei prezzi di chiusura (`for i in range(n): rolls[i] = rets[i:i+w].std()`) — O(n·w) per chiamata, eseguito come fallback cheap-IV a ogni barra in cui la cronologia DVOL è scarsa (cioè per tutta la parte iniziale/con lacune del backtest), esattamente lo schema «ricostruire una lista dentro on_bar a ogni barra» descritto dalla diagnostica. Correzione: (1) sostituire quel ciclo con una deviazione standard mobile completamente vettorializzata tramite somme cumulative (deviazione standard della popolazione, ddof=0 — identica al valore predefinito di np.std), così che il fallback sia O(n) senza cicli Python; (2) memorizzare in cache il risultato cheap-IV per timestamp della barra (_iv_cheap_ts/_iv_cheap_val), così che le chiamate ripetute durante la scansione di periodi/leg della barra siano O(1); il percorso DVOL era già O(log n) tramite np.searchsorted e non è stato toccato. Non sono cambiati import, struttura della classe, logica di regime, logica di rollover né filtri di ingresso/uscita, quindi i Layer 1 e 2 non possono regredire. Come ulteriore precauzione contro il volume delle barre delle leg (lo stesso problema che ha colpito le strategie sorelle rolling-options), la configurazione blocca il AND primario perp, la leg rolling_options e il `timeframe` a 1-DAY (l’espansore imposta per impostazione predefinita le leg a 1-HOUR, con un’esplosione di barre-leg pari a 6-24x) e limita lookback_days a 365 (~12 periodi mensili).

Implementazione

Strategia BTC Deribit MONTHLY long option a singola leg, direzionale in entrambe le direzioni, con convessità sul trend e filtro cheap-IV. Il BTC-PERPETUAL.DERIBIT primario (1-DAY) determina il clock di rollover e fornisce la serie dei prezzi di chiusura giornalieri; le leg negoziabili sono i contratti call e put mensili ~5% OTM risolti. Quando BTC si trova in un regime rialzista confermato (prezzo sopra una SMA 50 in aumento) e AND la volatilità implicita è conveniente (percentile DVOL <= 0.40, fallback al percentile della volatilità realizzata), acquista una CALL mensile OTM; in un regime ribassista confermato AND con IV conveniente acquista una PUT mensile OTM. Al massimo una leg long per scadenza mensile, con rollover 5 DTE prima della scadenza e uscita anticipata in caso di inversione del regime contro la leg o di stop catastrofico sul premio di -70%. Vega long + direzione long, perdita massima pari al premio pagato, nessuna leg short/di copertura.

Risultati di verifica

Verifica non riuscita (Layer 3 — backtest in sandbox): il test rapido ha superato il limite di tempo reale di 300s. Quasi sempre ciò indica lavoro per barra che cresce con la cronologia, per esempio la scansione ripetuta dell’intera serie di funding/ausiliaria o la ricostruzione di una lista e la chiamata a min()/sorted() dentro calculate_signal()/on_bar() a ogni barra. Precalcolare gli array ordinati di timestamp ONCE in __init__ e usare bisect, oppure memorizzare le ricerche nella cache usando il timestamp come chiave, così che il costo per barra sia O(log n) invece di O(n).

Analista: confermare total_trades sull’intera finestra; un programma mensile long option con doppio filtro potrebbe generare troppo poche operazioni per un giudizio affidabile. Valutare di estendere lookback_days oltre 365 per accumulare più scadenze.

Numero di operazioni/potenza statistica ridotti. Scadenza mensile (dte 30) su un lookback della catena di opzioni di 365 giorni (~12 scadenze), filtrata ulteriormente da BOTH un filtro di regime a trend confermato AND un filtro cheap-IV; realisticamente apre quindi ben meno di 10 leg long nella finestra (il sandbox ne ha prodotte 9 in totale). È molto al di sotto della soglia di ~100 operazioni necessaria per distinguere chiaramente il vantaggio dal rumore, e l’ampio intervallo dello Sharpe CI ([-13.1, 11.1], PSR 0.77) conferma che la stima ha bassa affidabilità. È una caratteristica intrinseca di un programma di opzioni mensili con doppio filtro, quindi costituisce un’avvertenza per l’analista e non un difetto del codice; tuttavia, non ci si dovrebbe fidare di alcuno Sharpe/PF di questa strategia senza una finestra molto più lunga.

Verificare che BacktestRunner._apply_fees includa gli strumenti delle opzioni DERIBIT; confermare commissioni diverse da zero sull’intero backtest prima di fidarsi di avg_trade_return_pct.

Il sandbox segnala total_commission=0.0001 (quasi zero) su 9 operazioni su opzioni. Le commissioni sulle opzioni Deribit (0.03% del sottostante per contratto, con tetto a 12.5% del premio) sono rilevanti per le opzioni LONG, che pagano un premio e commissioni sia all’apertura sia alla chiusura. Commissioni prossime allo zero suggeriscono che le commissioni sulle opzioni potrebbero non essere modellate sugli strumenti delle leg inserite, sovrastimando così il rendimento netto di un portafoglio long option che paga premi. È un problema del motore di backtest/commissioni, non un difetto del codice della strategia.

Valutare di impostare il valore predefinito su False (saltare l’ingresso) quando non è misurabile né DVOL né RV, così che ogni ingresso soddisfi davvero la condizione necessaria cheap-IV; oppure confermare dai log che non siano stati effettuati ingressi usando il fallback permissivo.

Il filtro per la volatilità a basso costo-IV è PERMISSIVE quando non è disponibile nessuna delle due misure di volatilità: se la cronologia di DVOL è limitata (< min_iv_samples) AND il ripiego sulla volatilità realizzata non è calcolabile, _iv_cheap restituisce True, quindi si può aprire una posizione WITHOUT senza una condizione di volatilità a basso costo-IV confermata. L’ipotesi richiede che la volatilità a basso costo IV sia una condizione necessaria («regime confermato AND IV è a basso costo»). Per BTC Deribit DVOL, questa finestra si colma rapidamente, quindi l’impatto è limitato alla parte iniziale e discontinua del backtest, ma le operazioni aperte in quel tratto dipendono solo dal regime, e non dal regime-AND-a basso costo-IV come specificato.

Analista: verificare che l’esborso del premio per operazione, in rapporto al capitale, sia ragionevole (le opzioni long a rischio definito dovrebbero comportare un rischio contenuto in percentuale per operazione); se il contratto 1 è troppo grande rispetto al capitale, passare a un dimensionamento basato sul budget del premio (risk_frac).

avg_position_pct=93.6% nel sandbox. La dimensione è fissa, pari a 1 contratto per ingresso tramite _leg_size ereditato (contracts=1.0). Per un’opzione long il rischio reale è il premio pagato (rischio definito, ulteriormente limitato dallo stop -70%); pertanto, un valore position_pct riportato elevato probabilmente riflette la valutazione da parte del motore del valore nozionale dell’opzione NOTIONAL (contratti x sottostante) anziché del premio a rischio. Conviene confermare che la dimensione fissa di 1 contratti non concentri eccessivamente il portafoglio con capitale ridotto e non comporti un esborso di premio implausibilmente elevato rispetto al capitale nell’intero backtest.

Revisione Backtest

Sharpe
3,43
Rendimento totale
10,15%
Drawdown massimo
9,79%
Operazioni totali
9
Tasso di successo
44,4%
Profit Factor
1,86

Il meccanismo è valido e supera la verifica: una singola leg long option offre un’esposizione convessa a rischio definito a una visione di trend, senza percorso di esecuzione multi-leg.

Copre due categorie sottorappresentate (venue delle opzioni + direzione long_short).

Laddove opera, la convessità per operazione appare favorevole (PF 1.86, asimmetria positiva 1.55, solo max_dd 9.8%).

Solo 9 operazioni nell’intera cronologia delle opzioni disponibile; il motore segnala metrics_reliable=false.

L’intero rendimento netto deriva da un mese anomalo (2026-02 +14.3%); gli altri 8 mesi si compensano all’incirca.

sharpe_ci_low = -13.1 — Sharpe CI si colloca a cavallo di 0; deflated_sharpe non calcolabile. Le metriche non hanno significato statistico.

La catena mensile di opzioni BTC Deribit nel catalogo copre solo ~12 scadenze (da 2025-07 in poi); lookback_days=365 la copre già: nessuna modifica dello sviluppatore può aggiungere periodi mensili.

Questo è il secondo passaggio con lo stesso esito di 9 operazioni; iterare ancora contro lo stesso limite dei dati è un’attività inconcludente.

Analisi

Non NOT ottimizzare su 9 operazioni (il motore ha segnalato metrics_reliable=false e l’intero rendimento +100% deriva da un singolo mese anomalo di febbraio -2026). La causa principale è la copertura dei dati, non la logica: rolling_options.lookback_days è 365, quindi l’espansione della catena mensile ha trovato solo ~12 periodi (da 2025-07 in poi). La strategia sorella promossa CSP usava lookback_days=1100 e ha ottenuto una catena di 36 periodi, a partire da 2023. FIX: aumentare rolling_options.lookback_days a ~1100 affinché la catena mensile BTC di Deribit copra 2023-2026, generando ~36 opportunità d’ingresso (~3x delle operazioni) e un campione statisticamente verificabile che includa sia il rialzo del mercato toro 2024 sia il drawdown 2025-26. Eseguire nuovamente il backtest e confermare che il vantaggio persista su ~30+ operazioni (aspettativa positiva NOT non dipendente da un solo mese, win_rate e profit_factor stabili) prima di spendere risorse di calcolo per l’ottimizzazione. Lasciare invariato tutto il resto.

Riepilogo esito

Una strategia di opzioni meccanicamente valida e approvata dalla verifica resta comunque impossibile da convalidare se il catalogo contiene solo ~12 scadenze mensili: 9 operazioni con Sharpe CI, intervallo da -13 a +11, e tutto il rendimento concentrato in un solo mese non consentono l’ottimizzazione; occorre quindi verificare la profondità della catena di opzioni prima di iterare ripetutamente.

Il revisore del backtest ha restituito «revise_hypothesis» al controllo preliminare all’ottimizzazione: il meccanismo era valido e aveva superato la verifica, ma la catena di opzioni mensili BTC di Deribit nel catalogo copre solo ~12 scadenze (da 2025-07 in poi), quindi lookback_days=365 la copre già e nessuna modifica dello sviluppatore può aggiungere periodi; inoltre, questo era il secondo passaggio con lo stesso esito di 9 operazioni, perciò ulteriori iterazioni sarebbero state un’attività inconcludente contro un limite dei dati. La fase finale viene abbandonata.

Una strategia long option a singola leg su scadenze mensili BTC Deribit che esprimeva convessamente una visione direzionale di trend: in un regime rialzista confermato con IV conveniente acquistava una call ~5% OTM; in un regime ribassista confermato con IV conveniente, una put ~5% OTM; deteneva al massimo una leg a rischio definito (perdita massima = premio) e effettuava il rollover mensile.

Il backtest ha effettuato solo 9 operazioni nell’intera cronologia delle opzioni disponibile (6 call, 3 put, ingresso medio IV 0.323, vega netta all’ingresso +751, ~24 DTE) con metrics_reliable=false: Sharpe nominale 3.43 e fattore di profitto 1.86, con asimmetria positiva e drawdown massimo 9.8%; tuttavia, sharpe_ci_low di -13.1 (CI comprendente lo zero) e l’intero rendimento netto concentrato in un singolo mese anomalo (2026-02, +14.3%). Non è stata eseguita alcuna fase di ottimizzazione.

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.