Avrai già provato a giocare con dei backtest usando statsmodels e avrai visto, immagino, quanto sia difficile (per non dire impossibile) per un HMM o per l'EM dietro le misture riuscire a capire per tempo quando il regime sta cambiando.
La realtà è che il cambiamento di regime dei rendimenti è troppo immediato perché questi algoritmi riescano a individuarlo per tempo, purtroppo individuarlo per tempo è proprio quello che serve a te: questi modelli vanno bene solo per l'estrazione del regime come fattore latente dopo che le cose sono successe, non riescono a "vedere" niente prima e saresti comunque più veloce tu a occhio anche solo guardando il VIX (esempio).
Si certo il problema principale è il lag intrinseco, inevitabile. Per questo si usano, in genere, su timeframe comodi per entrare a regime già avviato e sfruttare la prosecuzione.
Questo bias lo sto vedendo or ora con la spectral analysis di Zorro che usa un bandpass filter per sgamare i cicli sottostanti. Nonostante sia sulle 4 ore entra a ciclo quasi terminato e ti va in drowdown quasi subito di oltre 100 pips. Devi aspettare giorni per rivederlo stancamente tornare su. Poco sostenibile sul serio. Non sempre eh, spesso fa profitti atomici quasi subito ma alla lunga è insostenibile.
Ma tu davvero crederesti che regole come queste non siano solo frutto del caso e della tortura dei numeri ma che dietro possa esserci qualcosa di ignoto e profittevole?
Quasi sempre è così, ma una walk forward optimization sugli ultimi due anni che ti da quelle regole come stabili dovrebbe essere una buona garanzia. E' a trovarla però, in genere la wfo fa schifo. Caso ce lo vedo su brevi periodi, se no penso sia overfit (termine che ti fa saltare sulla sedia lo so).
Puoi rendere stazionario quello che vuoi con mille tecniche diverse, il problema è quello che poi vai a comprare/vendere: quello stazionario non lo è mai, o difficilmente ci sarebbe un mercato.
Il prezzo ovviamente non lo è mai, ma se lo manipoli per renderlo tale ci diventa. Ma serve solo a evidenziare pattern sottostanti ripetuti, vai a comprare e vendere quelli e non il prezzo stesso. E' la logica del cambio di regime.
Tu non compri un rendimento, una differenza frazionaria, una wavelet: tu compri un prezzo (o una combinazione di prezzi) e riuscire a trovare un prezzo che sia vincolato tra un massimo e un minimo equivale a fare fessa la tua controparte, il che non è per nulla facile.
Come sopra, poi ovviamente qua siamo sempre nel campo della previsione dei prezzi e quindi per sua natura difficile. E' il solito discorso del "se funzionava prima chi lo dice funzioni in futuro?". Non sarebbe la pietra angolare del trading altrimenti.
Facciamo due esempi semplicistici.
Diciamo che voglio ipotizzare tre forze che muovono il mercato delle azioni nel breve, nel medio e nel lungo termine:
- nel breve, i prezzi sono mossi dai market maker di opzioni che devono coprire il Delta delle proprie posizioni. Sotto determinate condizioni, questo può generare mean reversion o momentum nel corso della giornata e tra una giornata e l'altra. Quindi mi serve un modello per valutare quanto e come il loro inventario di rischio potrebbe risultare sbilanciato a seconda dei flussi che ricevono;
- nel medio, i prezzi sono mossi dai fondi che seguono pedissequamente la risk parity e bilanciano 1, 2 o 4 volte al mese. In questo caso avrò due effetti indipendenti: una mean reversion della roba che è salita/scesa di più per via del "volatility pumping" e le reazioni di adeguamento dei pesi a come sono cambiate le volatilità e le correlazioni tra asset class;
- nel lungo, i prezzi sono mossi dai gestori che cercano azioni a sconto con dei bei cash flow e cercano di interpretare i dati macroeconomici. In questo caso, siccome questi soggetti tendenzialmente danno mandato di entrare in modo discreto nel tempo, si crea un drift e a volte invece certi movimenti da elefante nella stanza dei cristalli.
Fatte le mie ipotesi su chi e come può muovere il mercato che sto osservando, capisci che caricare scikit-learn o Keras è l'ultimo dei miei problemi perché prima dovrò costruire dei modelli che mi consentano di vedere quello che vedono questi attori per poterli anticipare e validare o rigettare le mie ipotesi.
Adesso osservo il mercato obbligazionario: ha senso fare le stesse ipotesi? Nemmeno per idea, devo ipotizzare qualcosa di diverso.
Ipotizzo che:
- a muovere i prezzi nel breve termine sia l'emissione di carta nuova («carta nuova scaccia carta vecchia» si è sempre detto sul trading desk). Quindi starò dietro alle nuove emissioni. I market maker sono rimasti inchiodati coi prezzi congelati sulle vecchie emissioni perché sono pigri e non hanno aggiornato il quotatore?
- nel medio termine la parte obbligazionaria agisca da hedge di portafoglio nei confronti dell'equity, ma le correlazioni cambiano nel tempo e quindi dovrò verificare se davvero c'è questo effetto di ribilanciamento. Quanti fondi poi sono costretti a comprare/vendere perché hanno dei limiti da prospetto per cui il passaggio da IG a HY costringe a vendere/comprare?
- nel lungo termine ci sia una caccia di carta disallineata per ragioni di liquidità e struttura (e la caccia al rendimento reale), quindi parto col pricing e i disallineamenti lungo le curve di credito.
Anche qui, scegliere il
kernel della SVM è l'ultimo dei problemi.
E capisci che non posso usare lo stesso modello operativo sia per le azioni sia per le obbligazioni se voglio anticipare questi attori.
Molto chiaro, ti ringrazio. In concreto però stai dicendo come non servano metodi quantitativi ma basti una analisi discrezionale, perchè queste valutazioni sono umane, soggettive ed esperienziali. Anche volendo non c'è applicazione del ML non potendo nemmeno dargli in pasto queste analisi. Giusto? Uno si compra la piattaforma Bloomberg e fine

In concreto, brutalmente: butto via tutti i libri di ML e mi dedico ad altro perchè tanto dentro non c'è nemmeno un granello di profitto? Lo faccio senza problemi eh.
Pensi sia ancora più saggio seguire non so un Garch o un approccio macro piuttosto che spendere ore a macinare con SVM e random forest?
Io comunque il deep learning me lo studierò, sono straconvinto che abbia enorme potenziale se ben applicato e penso che sia l'unico ambito di espansione futura. Specie su tick data e market making.
Te lo chiedo perchè sono ad un blocco ed avendo altri impegni devo decidere il tempo da dedicare, oltre all'ambito a cui dedicarmi. Ho perso la bussola sulle strade reali e potenziali per costruire qualcosa di efficace.