“Chiunque di voi faccia training sistematico sui futures – spiega Francesco Placci direttore della ricerca di Algoritmica.pro – avrà avuto la necessità di costruire lunghe serie storiche che consentissero dei backtest approfonditi.

Come sapete i futures hanno una scadenza, alcuni mensile altri trimestrale altri ancora diverse. È quindi necessario, al fine di ottenere un’unica serie storica, “attaccare” tra loro tante serie storiche più corte, relative ad ogni scadenza. Poiché ogni scadenza ha una sua quotazione, che a seconda dello strumento può differire anche notevolmente, nel momento del rollover è opportuno “aggiustare” la serie storica. Questo procedimento consiste nel modificare le quotazioni della serie storica passata per adeguarle a quella in essere al momento.

Facciamo un esempio – spiega Francesco Placci direttore della ricerca di Algoritmica.pro – supponiamo che tra la quotazione del future in scadenza e la quotazione della prima scadenza futura esista una differenza di due punti. Al momento del rollover, per evitare che si formino dei gap artificiali tra le due serie, occorre alzare, nel caso in cui le quotazioni del nuovo future siano maggiori, oppure abbassare, nel caso in cui le quotazioni del nuovo future siano inferiori, di due punti la vecchia serie storica, al fine di adeguarla alle nuove quotazioni.

Fortunatamente questo procedimento non è necessario effettuarlo manualmente. I moderni software di trading sono equipaggiati con strumenti che automatizzato il processo. Tuttavia rimangono dei problemi irrisolti.

Se ti interessa saperne di più dei trading systems clicca su ===>>> www.algoritmica.pro 

Il primo di questi quando effettuare il rollover.

Il secondo problema è di tipo operativo come accorgersi della necessità di effettuare un rollover.

Il terzo problema, che si presenta quando utilizziamo un fornitore di dati che dispone di future continui, è relativo alla qualità dei dati.

Per rispondere a queste domande occorre precisare che purtroppo non esiste una regola generale. Il principio di fondo tuttavia deve tener conto della liquidità degli strumenti che utilizziamo. L’ideale è effettuare il rollover ogni qualvolta la liquidità è passata dal future in scadenza alla scadenza successiva.

Come misurare questo passaggio di liquidità? A mio avviso occorre impostare le regole differenti a seconda del future che trattiamo.

Se ragioniamo – spiega Francesco Placci direttore della ricerca di Algoritmica.pro – su un future azionari europei il problema è facilmente risolto, il giorno di rollover ideale è quello di scadenza. Infatti la liquidità passa da un  future al suo successivo tipicamente il giorno di scadenza. Se però trattiamo i future azionari americani allora ciò non avviene. La liquidità passa da una scadenza alla sua successiva con diversi giorni di anticipo, dai tre agli otto. Non solo, se pensiamo alle commodities, allora il problema è ancora maggiore. Esistono infatti convenzioni non scritte tra gli operatori secondo le quali alcune scadenze sono maggiormente trattate di altre. Un classico esempio è il future sul Gold, per il quale la scadenza di ottobre tipicamente viene saltata. Come risolvere il problema allora? Se non disponiamo di un fornitore di dati che faccia questo per noi dobbiamo necessariamente verificare il volume e l’open interest della scadenza corrente con quelle future.

Una risorsa sicuramente utile è il sito del CME (http://www.cmegroup.com/trading/energy/crude-oil/light-sweet-crude_quotes_volume_voi.html, pagina relativa al future sul Crude Oil), che si mette a disposizione volume e open interest aggiornati quotidianamente. Monitorando questi dati è facile rendersi conto del passaggio di liquidità da un future al suo successivo.

Cosa è meglio guardare, il volume oppure l’open interest? La risposta migliore è entrambi, anche se a mio parere l’ultima parola spetta all’open interest.

Come sapete – racconta Francesco Placci direttore della ricerca di Algoritmica.pro – solo un utilizzatore della piattaforma  Multicharts, che consente di costruire dei custom future, ossia di future continui, con regole di rollover  pre-impostate.

rollover

Da un punto di vista operativo occorre comunque prestare attenzione per evitare che nel giorno del rollover si blocchi il flusso dati, oppure ancora peggio, per evitare che il nostro future continuo, che è già passato sulla scadenza successiva, mandi ancora gli ordini al future passato. Purtroppo in Multicharts, il future che viene utilizzato per disegnare il grafico, non è detto che sia anche quello su cui passiamo gli ordini, occorre modificare il routing in modo manuale. Questo è previsto perché chi si vuole avvalere di un fornitore di dati esterno, deve avere la possibilità di girare i propri ordini al suo broker.

In merito alla qualità dei dati offerti dai diversi data feed – spiega Francesco Placci direttore della ricerca di Algoritmica.pro – ritengo che Tradestation offra un buon compromesso tra qualità e prezzo. Personalmente utilizzo di dati di Tradestation ritardati di 15 minuti per lo storico, mentre per i dati in tempo reale utilizzo Interactive Broker. È infatti possibile utilizzare nello stesso grafico due fonti dati differenti, una per lo storico e una per i dati in tempo reale, facendo il merging tra i dati.

merging

merging

Infine, poiché ritengo che i future continui offerti da Tradestation abbiano delle regole di rollover ottimali, in prossimità del giorno di rollover, verifico la serie storica di Tradestation, e quando quest’ultima effettua il rollover, modifico il routing degli ordini in Multicharts.

È comunque opportuno, soprattutto quando si fa trading su un grande numero di strumenti, disporre di una serie di avvisi automatici che ci consentano con alcuni giorni di anticipo di sapere che di lì a poco sarà necessario effettuare un rollover.  Per questo motivo ho scritto un semplice codice che consente di plottare un indicatore che graficamente mostra i giorni mancanti alla scadenza del  future e di impostare inoltre un allarme in grado di aprire un popup oppure di mandare un e-mail.

Di seguito il codice in oggetto:

 Input:days_before(1);

var:count(0);

 for count = 0 to 1000 begin

         if calcdate(date , count)=expirationdatefromvendor then break;

end;

 value1 =count;

 if count > days_before then plot1(value1,“”,white);

plot2(1);

if count <= days_before then begin

         plot1(value1,“”,red);

         plot3(count+10);//impostare nel grafico some istogramma

         alert(“Alert Rollover”);

end;

Se ti interessa saperne di più dei trading systems clicca su ===>>> www.algoritmica.pro