Translate

venerdì 28 ottobre 2016

TRADING ALGORITMICO ED ELETTRONICO PT.3 – ALGORITMI “IMPACT-DRIVEN”- IL TWAP

Per la prima parte, clicca qui.
Per la seconda parte, clicca qui.
Oggi parliamo di algoritmi impact-driven (ID). Questa serie di posts credo (o meglio spero) possa rivelarsi utile sia al fine di acquisire alcuni elementi necessari a comprendere, più nel dettaglio, la dinamica dei flash crashes/ramps, sia al fine di capire come gli istituzionali eseguano gli ordini sul mercato. Sareste infatti vittime di un errore concettuale qualora pensaste che gli operatori istituzionali si dedichino all' immissione manuale degli ordini.
Gli algos ID, originariamente, comprendevano strategie orientate alla sola suddivisione degli ordini maggiori (parent) in tanti ordini minori (child), al fine di ridurre l'impatto dell' operazione (di acquisto o di vendita) sul prezzo dell' asset e dunque minimizzare i cosiddetti market impact costs. Più precisamente, comprendevano due diverse tipologie di algos basati su prezzi medi: il TWAP ed il VWAP (le cui caratteristiche essenziali sono meglio descritte ai links di cui sopra). Si trattava di algoritmi ad approccio statico nel senso che, pur essendo nati con lo scopo di contenere i costi da impatto sul prezzo, restavano fortemente ancorati alle traiettorie statistiche elaborate con riguardo ai rispettivi benchmarks, denotando una certa indifferenza rispetto alle mutevoli condizioni di mercato; l'obiettivo restava quello di giungere all'esecuzione dell'ordine nell'arco temporale prestabilito o nel rispetto dei parametri volumetrici in caso di VWAP
Negli anni, sono stati adottati sistemi più opportunistici come il POV (Percentage-of- Volume) che tracciano i volumi realmente presenti sui mercati non risultando vincolati dai meri criteri statistici preimpostati, per poi giungere ad approcci “stealthy” in grado di garantire impatti sui prezzi prossimi allo zero.
Di seguito introdurremo i concetti base del TWAP
Il TWAP é:
  • un benchmark;
  • un prezzo medio riflettente la variazione del prezzo di mercato dell'asset nel tempo;
  • un benchmark rigidamente ancorato alla predefinita programmazione temporale dell'utente;
  • non è influenzato dai prezzi e dai volumi di mercato.
Immaginiamo di voler comprare 6.000 azioni e di aver istruito l'algoritmo per comprare 500 ogni 30 minuti a prescindere da quello che accade sul mercato in termini di prezzi e volumi.
Si tratta di un modo di operare:
  • uniforme;
  • prevedibile.
Uniformità e prevedibilità comportano due rischi:
  • rischio di “segnalazione” (ne abbiamo già parlato in relazione al pining eseguito nell'ambito della caccia agli operatori “balena”); gli altri algos attivi sul mercato possono inferire le nostre intenzioni agendo in front running;
  • rischio di una qualità di esecuzione piuttosto bassa. Infatti, nel caso in cui l'esecuzione dovesse risultare funzione del solo fattore temporale, ignorando le condizioni di liquidità del mercato ed i movimenti dei prezzi nel frattempo intervenuti, potrebbe risultare non del tutto ottimale.
Come potremmo correggere, seppur parzialmente, questi difetti? Introducendo un fattore di randomizzazione o anche due. Ad esempio, posto che in base al nostro esempio in un' ora dovrebbe essere completata l'esecuzione del 16,66% dell' ordine (500 azioni ogni 30 minuti= 500x2=1.000 azioni ogni ora= 16,66% di 6.000 azioni totali) potremmo randomizzare (comprando quindi un numero maggiore o minore di azioni rispetto alla quantità standard di 500) la quantità di azioni, facendo sì che l'algoritmo verifichi, di volta in volta, di quanto il processo di completamento dell' esecuzione sia avanti o indietro rispetto al “ritmo” di 500 azioni ogni mezz'ora. In alternativa, si potrebbe variare la frequenza degli acquisti (rendendola, fatto salvo il limite massimo, casuale) oppure entrambe le cose.
Una minore randomizzazione garantisce un maggior rispetto del criterio temporale (cioè di conclusione delle operazioni di acquisto/vendita entro il limite di tempo prestabilito). Tuttavia, è possibile non rinunciare ai benefici di una randomizzazione maggiore ed al soddisfacimento della necessità di concludere le operazioni entro un certo arco di tempo agendo sulla leva dell' “aggressività”. Ciò vuol dire che la size degli ordini (o la frequenza) aumenterà qualora il tasso di completamento dovesse attestarsi al di sotto del 16,66%/ora (criterio predefinito dal trader); viceversa, diminuirà. L'aggressività riduce il timing risk ma può, a parità di altre condizioni, innalzare il costo da impatto; una maggiore passività produrrebbe l'effetto opposto.
Post scritto ascoltando