Il bot CTA (trend following sui futures)#
Se il bot TRPS vive di finestre da quindici minuti e il bot DHCS di un rito serale che deve tornare alla cifra decimale, il bot CTA ha un solo appuntamento al giorno, a metà mattina, e la virtù che gli si chiede non è né la puntualità né l’esattezza: è la costanza. La strategia della pagina CTA trend following — ensemble dei segni a 1/3/12 mesi, vol scaling, banda di non-trading su una quindicina di futures — è la più lenta delle tre, e il suo bot è di conseguenza il più tranquillo: gira adesso accanto agli altri due, sullo stesso mini PC, lo stesso Gateway, lo stesso canale di notifiche e lo stesso kill switch della pagina Setup, e applica gli stessi quattro principi della pagina Esecuzione. Quello che aggiunge è la scala: quindici mercati invece di uno, quattro borse, un calendario di scadenze che non coincidono mai — ed è qui che l’architettura si guadagna la pagina. Come sempre, tutti gli orari in America/New_York.
Un ciclo al giorno#
L’appuntamento è alle 10:30, un orario scelto per sottrazione: lontano dalla campana d’apertura e dal ciclo degli stop della TRPS, lontano dalle finestre serali dove si affollano il rito DHCS, la selezione TRPS e i roll, dentro le ore liquide di tutte le borse dell’universo. Il lusso di potersi permettere un orario comodo viene dalla lentezza del segnale: i calcoli usano le chiusure di ieri — un segnale a dodici mesi regge un ritardo di un mese quasi senza degrado, figurarsi mezza giornata (Hurst e coautori) — quindi l’esecuzione a metà mattina non insegue niente e nessuno.
La sequenza del ciclo è fissa: dati, segnali, piano, roll, rischio, ordini, scrittura. Il bot aggiorna le serie storiche dei contratti, calcola per ogni strumento i tre segni e la volatilità, produce la posizione bersaglio quantizzata, la confronta con la posizione reale e fa passare dalla banda di non-trading solo gli scostamenti che la superano: in una giornata tipica il piano è vuoto o quasi, ed è il comportamento di progetto — la valutazione è quotidiana, il trading effettivo ha frequenza quasi mensile. Gli ordini che sopravvivono alla banda sono limit al mid con passo di un tick verso il prezzo eseguibile, mai a mercato; un ordine che a fine finestra non è eseguito viene cancellato e basta, perché il segnale è lento e perdere un giorno costa meno di uno spread inseguito — domani il ciclo ricalcola tutto da capo e, se lo scostamento c’è ancora, ci riprova. A fine ciclo, un unico riepilogo su Telegram: posizioni bersaglio contro reali, trade eseguiti e trade bloccati (dalla banda, dai cap, dal rischio), segnali per strumento, eventuali degradi dichiarati. Un messaggio al giorno, non un flusso: l’alert fatigue è un rischio operativo come gli altri.
Il roll, da servizio a motore#
Il bot rollava futures da prima che questa strategia esistesse: il roll trimestrale dei contratti della guardia notturna, il roll dell’hedge della DHCS — funzioni di servizio, un contratto alla volta, descritte nella pagina Futures. La gamba CTA promuove quell’infrastruttura a motore. Per quindici mercati il bot mantiene il calendario delle scadenze e seleziona il contratto front con una soglia di giorni configurabile per strumento; sulle commodity fisiche — oro, argento, rame, WTI, i grani — il roll avviene tassativamente prima del first notice day, perché oltre quella data il contratto smette di essere un’esposizione e diventa una consegna, e un retail non firma per barili. Il roll è igiene di posizione, non un segnale: non passa dalla banda di non-trading, chiude il contratto vecchio e riapre stessa taglia e stesso segno sul nuovo. Con una sola eccezione di buon senso: il piano di ribilanciamento si calcola prima del roll, e uno strumento che oggi va comunque portato a zero non si rolla — si chiude direttamente sul contratto in mano, un giro di spread risparmiato.
Sotto il roll vive la struttura dati che rende possibile il segnale: le serie continue di rendimenti. Al cambio di contratto si concatenano i rendimenti — la variazione del nuovo contratto sulle sue proprie chiusure — mai i prezzi, così il salto tra vecchio e nuovo non entra nel segnale e la serie misura ciò che una posizione rollata avrebbe davvero reso. È il dettaglio contabile su cui si regge tutto il resto; sbagliarlo produce trend fantasma al roll di ogni scadenza, e nessun grafico a valle se ne accorgerebbe.
I guardrail della gamba#
Che cosa impedisce a quindici mercati di diventare quindici modi diversi di farsi male? I guardrail globali del bot — il cancello di margine col what-if, il tetto giornaliero di ordini, il circuit breaker sul valore del conto, il kill switch — valgono per la CTA senza esenzioni, e i cap dedicati della gamba possono solo stringere, mai allargare.
Il budget di rischio, in volatilità. Ogni strumento ha il suo budget (il 2% circa del capitale della gamba), ogni settore un tetto sull’esposizione aggregata — la difesa contro la falsa diversificazione di un portafoglio che sembra ampio ed è tutto una scommessa sull’energia — e l’intera gamba un cap complessivo definito in volatilità: la somma delle vol annualizzate in dollari delle posizioni non supera metà del capitale della gamba. La definizione in vol non è pedanteria: un contratto sui Treasury a due anni ha un nozionale enorme e un rischio minuscolo, e un tetto sul nozionale lo punirebbe per il motivo sbagliato; il tetto in vol misura la stessa grandezza con cui le posizioni sono dimensionate, e resta identico se un domani la taglia dei contratti passa da micro a standard.
Il freno di drawdown. Se il P&L della gamba scende oltre il 15% dal suo massimo, i budget si dimezzano finché il drawdown non rientra sotto metà soglia. È una regola scritta prima di partire, con un solo verso possibile — ridurre — e serve a togliere a me stesso la decisione più pericolosa del mestiere: quella presa a metà di un drawdown, con lo storico dei CTA falliti a testimoniare come va a finire.
Il vol targeting. Sopra tutto, il moltiplicatore di portafoglio della pagina CTA trend following: vol realizzata della gamba sopra il bersaglio del 10% → taglie giù, sotto → taglie su, con un tetto a 1,5 e un pavimento a 0,5. È l’unico automatismo “di regime” concesso dal design, perché non ha parametri liberi e non può che smorzare.
Un anno simulato della gamba: quando la volatilità realizzata (sopra) sale oltre il bersaglio, il moltiplicatore di leva (sotto) scende in proporzione, fino al pavimento; il tetto a 1,5 impedisce l’euforia opposta nei regimi placidi. De-risking senza parametri e senza opinioni. Numeri illustrativi.
Il kill switch, senza eccezioni. Vale la pena dichiararlo perché la scelta non è ovvia: a kill switch attivo il bot CTA non piazza nessun ordine, nemmeno quelli che ridurrebbero il rischio. Le posizioni restano coperte dai cap e il kill è un evento da operatore, non da algoritmo; un sistema che si concede eccezioni “prudenti” al proprio arresto d’emergenza ha un arresto d’emergenza di carta.
Fallire con grazia#
E quando qualcosa si rompe? La scala multi-mercato sposta il baricentro dei guasti: il rischio caratteristico di questo bot non è l’ordine sbagliato ma la contabilità sbagliata. Con tre strategie che tengono futures sullo stesso conto, ogni posizione deve avere un proprietario: il registro interno attribuisce ogni contratto alla sua strategia, e l’esclusione di ES e MES dall’universo CTA — decisione di design, non di gusto — fa sì che su ogni simbolo della gamba l’unico proprietario possibile sia la gamba stessa. Ogni mattina il bot riconcilia il registro con le posizioni reali del broker, simbolo per simbolo: uno scarto non spiegato produce un alert critico e la sospensione dei nuovi ordini su quel simbolo finché la discrepanza non è capita — mai operare su un inventario di cui non ci si fida, che è il Principio 4 applicato alla scala. Della stessa famiglia è il controllo dei metadati: moltiplicatore e tick di ogni contratto dichiarati in configurazione vengono verificati a ogni avvio contro quelli del broker, perché dimensionare una posizione su un moltiplicatore sbagliato è il modo più stupido di perdere soldi con un sistema per il resto corretto.
Gli altri guasti degradano con grazia per costruzione. L’ordine non eseguito si cancella e si ritenta domani, come già detto: nessuno stato intermedio da custodire. Il ciclo saltato — Gateway giù, casa al buio — lascia le posizioni di ieri con la banda a fare da cuscinetto, e domani si riparte dai dati aggiornati: per un segnale mensile è tracking error, non emergenza. Il bot fermo o in standby lascia le posizioni futures aperte e non gestite, come le GTC della TRPS: è scritto nel runbook, e la risposta nel caso estremo sono io dall’app, in un mercato che quota quasi 24 ore. E una volta al mese, il primo lunedì, mi arriva per email il rendiconto della gamba: rendimento del mese, dell’anno e da inizio attività, commissioni reali contro il budget di frizioni, margine stimato contro quello vero del conto — la serie che mi dice, con la cadenza giusta per un segnale lento, se la realtà sta rispettando il progetto.
Che cosa resta manuale, qui più che altrove: l’universo. Aggiungere o togliere un mercato, spostare uno strumento in dismissione (chiusure consentite, aperture no), cambiare la taglia dei contratti — sono decisioni da tavolino con doppia conferma, non automatismi; il bot esegue la configurazione, non la discute. La divisione del lavoro è quella di sempre: il sistema fa la costanza, io faccio i (pochi) giudizi — e dopo l’esperienza degli altri due bot posso dire che è la costanza, non il giudizio, la parte che non sapevo di non avere.
Il roll, però, merita più dei due paragrafi che gli ho dedicato qui: le date che contano davvero, la finestra dove va la liquidità, la scala di emergenza e il costo vero di ogni giro. È la pagina Futures rollover.