Translate

venerdì 5 giugno 2015

NO FPGAs NO HIGH FREQUENCY PARTY. VIAGGIO AL CUORE DELLA VELOCITA' ESTREMA

L'essenza del trading ad alta frequenza ,come noto, risiede nell'estrema velocità operativa che caratterizza distinguendo, seppur non in maniera esclusiva, gli HFTs da tutte le altre presenze rilevabili sui vari mercati. In questo e nei successivi posts, proverò a commentare un paper di Leber, Geib, Litz, avente ad oggetto la struttura di un'applicazione hardware specificatamente destinata all'accelerazione dei processi propri del Trading ad Alta Frequenza. Questo studio è importante per un motivo preciso, avendo gli autori, già nel 2011, indicato la strada da seguire nella ricerca delle velocità supreme nel mondo del trading. Detta componente hardware -nell' osservazione sperimentale- è stata ottimizzata per raggiungere la più bassa latenza possibile nell'interpretazione dei market data feeds e dunque per conseguire tempi complessivi di esecuzione dei trades azionari elettronici, minimi. L'implementazione descritta nel paper era tale da permettere, alle componenti fisiche, la decodifica dell' Ethernet, dell' IP, dell' UDP, così come del FAST Protocol rappresentante un protocollo comunemente in uso nella trasmissione dei market feeds. A tal fine, gli autori svilupparono un microcodice con relativa istruzione, cosi come un compilatore in grado di garantire flessibilità posta a supporto di un' ampia gamma di trading protocols applicativi. Il sistema, nel suo complesso, fu sviluppato in codice RTL e valutato su di una FGPA, dimostrando una riduzione della latenza 4x, rispetto all'approccio convenzionale basato sul mero software.
Il trading azionario è condotto tramite l'invio a mercato di ordini Bid ed Ask in formato elettronico, dal cui incrocio ha luogo un trade. Gli ordini in attesa di esecuzione sono resi visibili ai partecipanti al mercato per il tramite dei cosiddetti feeds. Un feed è un flusso di dati in tempo reale, compresso o meno, fornito da un'istituzione indipendente come l' Options Price Reporting Authority (OPRA), veicolante informazioni inerenti il prezzo delle azioni e distribuito agli operatori, utilizzando protocolli standardizzati normalmente trasmessi su UDP a mezzo Ethernet. Quello standard, comunemente applicato, è noto col nome di Financial Information Exchange (FIX) protocol Adapted For Streaming (FAST), impiegato da numerose borse per distribuire i rispettivi dati di mercato.

Al fine di raggiungere latenze complessive minime, un sistema di trading ad alta frequenza necessita di essere ottimizzato a tutti i livelli. La richiesta connessione a bassa latenza al sistema di conduzione del feed, può essere conseguita tramite co-location (clicca qui). In aggiunta, il feed necessita di essere internamente distribuito ai servers delle HFT Firms,con latenza minima. A tal fine, un'efficiente decodifica dell'UDP data stream così come del protocollo FAST, è indispensabile. In altri termini, tanto la decisione inerente l'immissione di un ordine quanto quella inerente la sua trasmissione, debbono essere instradate con la più bassa latenza possibile. Per poter raggiungere gli obiettivi appena indicati, gli autori, nel paper, presentarono un innovativo sistema di accelerazione del trading ad alta frequenza, strutturato su Fiedl Programmable Gate Arrays (FPGAs). Utilizzando FPGAs, infatti, si dimostrò possibile scaricare dalla CPU le tasks di decodifica dell' UDP e del FAST, mirando ad ottimizzare la struttura hardware. Il sistema proposto da Leber, Geib, Litz, realizzava l'insieme delle operazioni computazionali -eccezione fatta per il processo decisionale- direttamente sull'hardware, ivi compreso quelle inerenti un microcodice altamente flessibile deputato a decodificare i messaggi in protocollo FAST. L'approccio seguito, mostrava una riduzione della latenza > 70% se comparata alle soluzioni standard a base software, pur mantenendo la flessibilità richiesta al fine di supportare nuovi ed innovati protocolli, con sforzi minori se paragonati a quelli richiesti nelle soluzioni facenti perno su di un Application Specific Integrated Circuit (ASIC).
Una tipica trading infrastructure, consiste di differenti componenti controllate da entità indipendenti. Alla base, troviamo:
  1. il mercato (inteso quale piattaforma);
  2. il conduttore del feed;
  3. i partecipanti al mercato.

Con riferimento all' immagine offertaci dagli studiosi, possiamo dire quanto segue: il matching engine, il data center switch ed il gateway server, sono controllati dal mercato, laddove il feed engine è fornito dal conduttore del feed. Lo switch di accesso dei membri del mercato ed i servers dedicati al trading sono di proprietà dei partecipanti al mercato stesso, vale a dire le HFT Firms nel nostro caso. I numerini di cui sopra, rappresentano la sequenza descrittiva della modalità di propagazione delle informazioni in un sistema avente l'architettura oggetto di illustrazione, nonché della modalità con cui gli ordini sono processati.
  1. Un' opportunità di compravendita è creata a livello di matching engine (clicca qui).
  2. Il matching engine dopo averla creata, l'aggiorna e la invia al feed engine.
  3. Il feed engine ne rende edotti tutti gli operatori presenti sul mercato.
  4. Gli elaboratori valutano l'opportunità e rispondono con un ordine.
  5. Il gateway riceve l'ordine e lo inoltra al matching engine.
  6. Il matching engine, incrocia il primo ordine giunto sull' order book con l'opportunità creata: il tade viene eseguito.
Negli attuali sistemi di distribuzione del trading elettronico, diversi strati di “protocollo” debbono essere attraversati per giungere all' esecuzione di un trade. Gli autori hanno illustrano il sistema multi livello, con l'immagine di cui sotto.

  1. Livello Ethernet. Lo strato di protocollo più basso è rappresentato da quello Ethernet (ETH), fornente le istruzioni di base per l'inoltro di pacchetti di dati attraverso la rete. Quindi, l' ETH definisce un Cyclic Redundacy Check (CRC) sul framing dei dati, volto ad assicurare la loro integrità. In aggiunta, l' ETH permette di identificare le parti (i soggetti) finali (estreme) di una rete, definendo i Media Access Control (MAC) sia per il mittente che per il destinatario di un pacchetto.
  2. Livello IP. Il livello immediatamente al di sopra dell' ETH è l' Internet Protocol (IP).Questo protocollo è ampiamente usato, costituendo altresì il primo livello di protocollo medio indipendente. L'IP riunisce i computer in gruppi logici ed assegna un indirizzo univoco per ogni nodo finale presente all'interno di ogni gruppo, potendo altresì essere impiegato per inviare messaggi a destinatari multipli utilizzando un sistema di multi diffusione, ragion per cui è usato in molte piattaforme di mercato.
  3. Livello UDP. Lo User Datagram Protocol (UDP) è usato dai software applicativi per inviare messaggi tra nodi di rete. Offre obiettivi e fonti multipli rispetto ad un singolo nodo, assicurando l'integrità dei dati attraverso l'esecuzione di checksums.
  4. Il Protocollo Fast è specificatamente dedicato alla trasmissione dei market data dalle piattaforme di negoziazione ai partecipanti al mercato, utilizzando i feeds. Il protocollo delimita vari campi ed operatori, utilizzati per identificare specifici titoli ed annesso pricing. Un aspetto importante del FAST è il suo meccanismo di compressione che riduce la larghezza di banda, tuttavia, introducendo un significativo sovraccarico sulla CPU. Infatti, la decodifica del FAST rappresenta un serio “collo di bottiglia”, che lo rende particolare interessante per scarico sul FPG.
  5. Il processo decisionale può rivelarsi particolarmente complesso e l'impegno di risorse nella task computazionale, dipende dall'algoritmo applicato. Essenzialmente, esiste una varietà di parametri dati e di nuove variabili, comparate per il tramite di approcci matematici e statistici. Vista la complessità, la costruzione del processo decisionale non è scaricata sul FPGA ma mantenuta a livello software.