Vai al contenuto
Tutte le strategie

Strategie

BTC Fornitura di liquidità con grid di range, solo maker (perp BINANCE USD-M su singolo strumento, barre da 15m; sfrutta le oscillazioni con una scala di ordini limite passivi LIMIT attorno a un mid mobile — distanza della grid ≫ costo maker di andata e ritorno, pausa del trend e limite di posizione, contrasta il salasso taker della mean reversion, 4 parametri)

Esito: Abbandonato

BtcMakerGridLiquidityProvision

Riepilogo esito

Questa strategia era davvero nuova per il portafoglio — fornitura di liquidità solo maker — ed era progettata per superare il salasso delle commissioni taker che ha fatto fallire ogni strategia di mean reversion in questa sessione, catturando le oscillazioni della grid con ordini limite passivi post-only distanziati ben oltre il costo maker di andata e ritorno di ~0.04%. Ha inoltre evitato con successo il timeout di prestazioni di 300s che aveva fatto fallire il precedente tentativo maker. Ha vinto 78% delle sue……Mostra altroMostra meno

Questa strategia era davvero nuova per il portafoglio — fornitura di liquidità solo maker — ed era progettata per superare il salasso delle commissioni taker che ha fatto fallire ogni strategia di mean reversion in questa sessione, catturando le oscillazioni della grid con ordini limite passivi post-only distanziati ben oltre il costo maker di andata e ritorno di ~0.04%. Ha inoltre evitato con successo il timeout di prestazioni di 300s che aveva fatto fallire il precedente tentativo maker. Ha vinto 78% delle sue 13,295 operazioni, ma era una trappola: i guadagni erano minimi (media $22), mentre le perdite avevano code grasse; durante il prolungato trend ribassista di 2022, ha accumulato posizione long contro il movimento finché il conto è stato liquidato interamente il 2022-03-06 (-100%, 2022 febbraio -107%). Le difese basate sulla pausa del trend e sul limite di posizione, su cui era stata costruita, non sono riuscite a contenere proprio il fattore di fallimento della grid indicato nell’ipotesi. In fase di revisione, l’analista l’ha abbandonata alla prima iterazione: nessuna regolazione di grid_step/n_levels/mid_lookback/trend_threshold può salvare una strategia che manda in rovina il conto; sposterebbe soltanto la data del fallimento.

Ipotesi

Una GRID di market making / fornitura di liquidità su BTCUSDT.BINANCE (perp USD-M, barre da 15m) che sfrutta le oscillazioni in un range esclusivamente con ordini limite PASSIVE MAKER: un attacco strutturale deliberato al preciso punto debole che ha fatto fallire ogni strategia di mean reversion taker in questa sessione. Sono tutte fallite allo stesso modo: un vantaggio reale ma minimo sulle oscillazioni (−0.05%–−0.2%/operazione) annullato dal costo di circa 0.10% per un round trip taker. L'esecuzione maker su……Mostra altroMostra meno

Una GRID di market making / fornitura di liquidità su BTCUSDT.BINANCE (perp USD-M, barre da 15m) che sfrutta le oscillazioni in un range esclusivamente con ordini limite PASSIVE MAKER: un attacco strutturale deliberato al preciso punto debole che ha fatto fallire ogni strategia di mean reversion taker in questa sessione. Sono tutte fallite allo stesso modo: un vantaggio reale ma minimo sulle oscillazioni (−0.05%–−0.2%/operazione) annullato dal costo di circa 0.10% per un round trip taker. L'esecuzione maker su Binance USD-M costa circa 0.02% per lato (circa 0.04% per round trip), con un risparmio di circa 0.06% per ciclo che può trasformare in positivo la cattura di oscillazioni con margine negativo: una leva mai misurata davvero (l'unico tentativo maker è fallito per uno 300s PERF TIMEOUT, non per mancanza di vantaggio). Meccanismo: mantenere un mid mobile (EMA) e piazzare una scala di ordini LIMIT in attesa — limiti di acquisto sotto il mid, limiti di vendita sopra — distanziati di grid_step (predefinito circa 0.35%, impostato a WELL sopra il costo maker di circa 0.04% per round trip, così ogni ciclo acquisto→vendita eseguito copre le commissioni con un margine), su ±N livelli (predefinito 4). Quando il prezzo oscilla, gli acquisti eseguiti accumulano una posizione long, venduta al successivo livello superiore, e viceversa: si cattura grid_step meno le commissioni maker per ogni ciclo completato. È decisamente NOT dalle strategie ormai esaurite: NOT mean reversion taker (solo maker, con la matematica delle commissioni invertita), NOT una rotazione fattoriale (le mie tre rotazioni in sospeso occupano già quell'ambito: questa è una strategia diversa TYPE), NOT trend following, NOT opzioni/carry/liquidazioni, NOT strategie di inversione del segnale su singoli titoli (nessuna previsione direzionale: è fornitura di liquidità simmetrica). È progettata per contrastare i due noti fattori che fanno fallire le griglie: (1) mercati TRENDING — un filtro di trend (pendenza EMA marcata o prezzo che supera i limiti della griglia) PAUSES i nuovi ordini sul lato in perdita e chiude la posizione tramite uno stop rigido, evitando l'accumulo contro il trend; (2) il PERF TIMEOUT — i livelli della griglia vengono precalcolati una volta per ribilanciamento e gli ordini eseguiti vengono verificati in O(1) per barra rispetto ai massimi e minimi, senza riesaminare lo storico. Colma due lacune del portafoglio: manca una strategia di fornitura di liquidità e gli orizzonti brevi sono sottorappresentati (6.8%). Parametri 4 (grid_step, n_levels, lookback EMA/mid, soglia di pausa per il trend).

Implementa direttamente l'ipotesi: (1) MAKER-ONLY: tutti gli ordini della griglia usano order_factory.limit(post_only=True), che l'exchange rifiuta invece di lasciar attraversare il book, garantendo l'esecuzione maker (circa 0.02% per lato, pari a 0.04% per round trip). grid_step 0.35% >> 0.04%, quindi ogni ciclo acquisto->vendita produce un saldo positivo dopo le commissioni, invertendo il calcolo delle commissioni taker che ha affossato le strategie di mean reversion taker della sessione. (2) LADDER attorno a……Mostra altroMostra meno

Implementa direttamente l'ipotesi: (1) MAKER-ONLY: tutti gli ordini della griglia usano order_factory.limit(post_only=True), che l'exchange rifiuta invece di lasciar attraversare il book, garantendo l'esecuzione maker (circa 0.02% per lato, pari a 0.04% per round trip). grid_step 0.35% >> 0.04%, quindi ogni ciclo acquisto->vendita produce un saldo positivo dopo le commissioni, invertendo il calcolo delle commissioni taker che ha affossato le strategie di mean reversion taker della sessione. (2) LADDER attorno a un ROLLING MID: EMA(mid_lookback) è il prezzo medio; n_levels acquisti post-only sotto e vendite sopra, distanziati di grid_step. Gli eseguiti generano ordini limite TP opposti (acquisto eseguito -> vendita un livello sopra; vendita eseguita -> acquisto un livello sotto), la classica griglia autosostenuta che sfrutta le oscillazioni. (3) TREND-PAUSED: il filtro di trend sulla pendenza EMA e il superamento del perimetro della griglia chiudono la posizione e interrompono le quotazioni durante i trend, contrastando il disastro di accumulare contro un trend. (4) INVENTORY-CAPPED: limite rigido all'esposizione netta (inv_cap_mult*n_levels*level_qty) e scala naturalmente limitata a ±n_levels mantengono contenuta l'esposizione; se il limite viene superato, la strategia chiude tutto sul mercato. (5) NO PERF TIMEOUT: i livelli vengono calcolati una volta a ogni cambio di regime e ripristinati in on_order_filled; ogni barra richiede O(1). Esattamente 4 parametri principali regolabili (grid_step, n_levels, mid_lookback, trend_threshold). Venue: è necessario il mercato futures BINANCE (MARGIN), perché il vantaggio dipende dalle commissioni maker e la griglia fornisce liquidità in modo simmetrico, long e short: le commissioni maker di 0.10% e la natura solo long dello spot eliminerebbero il vantaggio. Leva mantenuta deliberatamente a 1.0: le griglie accumulano posizioni contro i movimenti, quindi la leva è il rischio sbagliato (come avverte esplicitamente l'archetipo della griglia); il dimensionamento fa riferimento a config.leverage, così resta coerente se la leva venisse aumentata. Colma due lacune del portafoglio (manca una strategia di fornitura di liquidità; il breve orizzonte è sottorappresentato) e genera operazioni frequenti su 15m BTC (le oscillazioni 0.35% sono costanti), evitando i fallimenti no_trades/verification_loop. Verificata: Layer 1 statico PASSED, tutti gli 6 scenari sintetici Layer 2 PASSED con un segnale continuo e non congelato.

Liquidazione totale del conto il 2022-03-06: total_return -100%, max_drawdown 100% (massimo di CI 100.07%); tutti i rendimenti da marzo 2022 in poi sono esattamente 0.0 — la strategia è fallita dopo 2 anni della finestra e non si è mai ripresa. È l’esatto fattore strutturale che fa fallire una grid e che l’ipotesi dichiarava di contrastare: accumulo illimitato di posizione long contro il prolungato trend ribassista 2022 (febbraio 2022 = -107%), che la pausa del trend basata su pendenza EMA e il limite di……Mostra altroMostra meno

Liquidazione totale del conto il 2022-03-06: total_return -100%, max_drawdown 100% (massimo di CI 100.07%); tutti i rendimenti da marzo 2022 in poi sono esattamente 0.0 — la strategia è fallita dopo 2 anni della finestra e non si è mai ripresa. È l’esatto fattore strutturale che fa fallire una grid e che l’ipotesi dichiarava di contrastare: accumulo illimitato di posizione long contro il prolungato trend ribassista 2022 (febbraio 2022 = -107%), che la pausa del trend basata su pendenza EMA e il limite di posizione non sono riusciti a contenere. Le metriche di supporto confermano una strategia compromessa, con vantaggio negativo: profit_factor 0.646, Sharpe -0.95 (CI [-3.32, -0.83] interamente negativi), Sortino -0.89, information_ratio -2.45, PSR 0.0, return_skew -45.7 / curtosi 2179 (coda sinistra catastrofica); inoltre avg_trade_return_pct 0.14% è sotto la soglia delle commissioni futures di 0.15% persino prima del fallimento. Ottimizzare grid_step/n_levels/mid_lookback/trend_threshold non può salvare una strategia che liquida il conto: la regolazione dei parametri sposterebbe solo la data del fallimento, senza eliminare il rischio intrinseco di accumulare contro un trend in una grid a leva. È compromessa alla radice; non vale 2 ore di ottimizzazione.

Implementazione

Strategia di fornitura di liquidità con grid di range, solo maker, su BTCUSDT.BINANCE USD-M perp (barre da 15m). Mantiene un mid mobile EMA e piazza una scala di ordini PASSIVE LIMIT post-only: limiti buy n_levels sotto il mid e limiti sell n_levels sopra, distanziati di grid_step (0.35%). Gli acquisti accumulano posizione long sotto il mid, le vendite posizione short sopra; ogni esecuzione piazza subito un limite take-profit opposto a un grid_step di distanza, così ogni ciclo buy->sell (o sell->buy) completato……Mostra altroMostra meno

Strategia di fornitura di liquidità con grid di range, solo maker, su BTCUSDT.BINANCE USD-M perp (barre da 15m). Mantiene un mid mobile EMA e piazza una scala di ordini PASSIVE LIMIT post-only: limiti buy n_levels sotto il mid e limiti sell n_levels sopra, distanziati di grid_step (0.35%). Gli acquisti accumulano posizione long sotto il mid, le vendite posizione short sopra; ogni esecuzione piazza subito un limite take-profit opposto a un grid_step di distanza, così ogni ciclo buy->sell (o sell->buy) completato cattura grid_step meno il costo maker di andata e ritorno di ~0.04%. Poiché grid_step (0.35%) è impostato ben oltre il costo maker di andata e ritorno, ogni oscillazione sfruttata copre le commissioni con un margine: è il motivo strutturale per usare l’esecuzione maker (0.02%/lato) invece di quella taker (0.05%/lato), che ha fatto fallire i precedenti tentativi di mean reversion. Controlli del rischio: un filtro di trend con pendenza EMA (|pendenza| su slope_window > trend_threshold) e una rottura del perimetro del prezzo (prezzo che si sposta di oltre envelope_mult*n_levels*grid_step dall’ancora della grid) attivano entrambi la liquidazione completa: annullano tutti gli ordini in attesa e chiudono la posizione al mercato; poi sospendono la nuova fornitura di liquidità finché il mercato non torna in un range. Un limite di posizione indipendente liquida se l’esposizione netta supera inv_cap_mult*n_levels*level_qty. La scala si ricostruisce solo ai cambi di regime e viene ripristinata in modo basato sugli eventi in on_order_filled, quindi il lavoro per barra è O(1) (senza riesaminare la cronologia e senza timeout PERF).

Risultati di verifica

L’analista dovrebbe ABANDON a BACKTEST_REVIEW: la leva sulle commissioni maker è stata verificata direttamente e non salva la cattura delle oscillazioni della grid.

Falsificazione della tesi centrale (valutazione dell’analista, non difetto del codice): la scommessa centrale dell’ipotesi è che l’esecuzione maker (~0.04% andata e ritorno) renda positiva la cattura delle oscillazioni. Il sandbox — con esecuzioni e commissioni maker — la smentisce: total_return -37.3%, Sharpe -1.51 (CI [-3.28, +0.19]), profit_factor 0.68, max_drawdown 38.3% su 1536 operazioni. È la classica impronta del fallimento di una grid in un trend: win_rate 78%, ma avg_loss $347 è ~5.4x avg_win $64, curtosi 54.96, tail_ratio 0.42. Il vantaggio maker IS per ciclo è stato catturato, ma le liquidazioni dovute all’accumulo durante il trend lo sopraffanno; trend_threshold=0.012 è troppo permissivo su barre da 15m BTC.

Considera il sandbox un limite superiore ottimistico: l’esecuzione reale rende meno, rafforzando la decisione di abbandonare la strategia.

La fedeltà delle esecuzioni maker nel backtest è ottimistica e l’intera tesi dipende da essa: le esecuzioni basate sulle barre presumono che un ordine limite post_only in attesa venga eseguito per intero a ogni tocco del massimo o minimo, senza posizione in coda e senza selezione avversa. Le esecuzioni maker reali subiscono selezione avversa e competizione in coda, quindi il trading live andrebbe peggio del sandbox, già -37%.

Per questa grid, dai più peso all’aspettativa in dollari / profit_factor (0.68) che a avg_trade_return_pct.

Metrica fuorviante per operazione: avg_trade_return_pct = 0.155% supera di poco la soglia minima 0.15%, eppure avg_trade_pnl_usd è pari a -$24 e total_return -37.3%. La media per valore nozionale è dominata da molti piccoli cicli positivi, mentre le perdite in dollari si concentrano negli smantellamenti di posizioni con inventario accumulato più consistente: pertanto, il valore >0.15% è un artefatto e non supera il criterio di fattibilità.

Revisione Backtest

Sharpe
-0,95
Rendimento totale
-100,00%
Drawdown massimo
100,00%
Operazioni totali
13295
Tasso di successo
78,3%
Profit Factor
0,65

Tipo di strategia davvero nuovo (fornitura di liquidità solo maker), assente dal portafoglio distribuito

La tesi sull’inversione delle commissioni maker (~0.04% andata e ritorno contro ~0.10% per i taker) è economicamente ragionevole, se considerata isolatamente

La difesa dal timeout di prestazioni (esecuzioni basate su eventi O(1)) ha funzionato: l’esecuzione è terminata senza il timeout di 300s che aveva fatto fallire il precedente tentativo maker

ACCOUNT LIQUIDATED su 2022-03-06 — total_return -100%, max_drawdown 100%; la strategia è fallita e ha prodotto rendimenti pari a zero per gli ultimi ~4 anni della finestra

Il principale fattore di fallimento della grid (accumulo contro un trend) si è verificato durante il mercato ribassista 2022, nonostante le difese con pausa del trend e limite di posizione — febbraio 2022 era -107%

profit_factor 0.646, Sharpe -0.95 (CI [-3.32, -0.83] interamente negativi), Sortino -0.89, information_ratio -2.45, PSR 0.0

Coda sinistra pesante e catastrofica: return_skew -45.7, curtosi 2179, largest_loss -$1,416 contro avg_win $22

avg_trade_return_pct 0.14% è sotto la soglia delle commissioni futures di 0.15% anche prima del fallimento

Riepilogo esito

L’inversione delle commissioni maker ha risolto il problema delle commissioni che facevano fallire la strategia (ha funzionato anche la difesa dal timeout di prestazioni), ma il rischio fatale di una grid a leva con posizione è accumulare contro un trend prolungato. Una pausa del trend basata su pendenza EMA e un limite di posizione non bastano a contenerlo: l’elevato tasso di vincita nasconde una coda sinistra catastrofica che liquida il conto.

È stata abbandonata nella fase di revisione del backtest precedente all’ottimizzazione, per liquidazione totale del conto: si è verificato l’esatto fattore di fallimento della grid che dichiarava di contrastare — accumulo illimitato di posizione long contro il prolungato trend ribassista 2022 (febbraio 2022 -107%), che la pausa del trend basata su pendenza EMA e il limite di posizione non sono riusciti a contenere. La regolazione dei parametri avrebbe soltanto spostato la data del fallimento, senza eliminare il rischio intrinseco di accumulare contro un trend.

Una strategia di fornitura di liquidità con grid di range, solo maker, su BTCUSDT.BINANCE (perp USD-M, barre da 15m), che sfrutta le oscillazioni con una scala di ordini limite passivi post-only attorno a un mid mobile EMA, distanziati ben oltre il costo maker di andata e ritorno di ~0.04%, con un filtro di pausa del trend e un limite di posizione pensati per contrastare il rischio di accumulo contro un trend — una risposta strutturale al salasso delle commissioni taker sulle strategie di mean reversion.

Ha liquidato il conto: rendimento totale -100%, drawdown massimo 100%, fallimento il 2022-03-06 e rendimenti pari a zero negli ultimi ~4 anni; profit factor 0.646, Sharpe -0.95 (CI interamente negativi), information ratio -2.45, coda sinistra catastrofica (asimmetria -45.7, curtosi 2179); inoltre avg_trade_return_pct 0.14% è sotto la soglia delle commissioni di 0.15% persino prima del fallimento. Il tutto su 13,295 operazioni con un tasso di vincita del 0.78.

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.