Caml Trading talk

Chi gioca sul mercato finanziario?

  • Investitori
    • mettono del denaro a rischio e si attendono un ritorno proporzionato al rischio.
    • il mercato finanziario esiste per loro
    • ruolo non professionale
  • Speculatori
    • cercano di trovare cosa è sottovalutato prima che il mercato se ne accorga e lo comprano per riverderlo quando ha il massimo valore.
    • hanno interesse a prevedere il futuro
    • ruolo misto tra professionisti e hobbisti
  • Market Makers
    • vivono nello spazio tra il prezzo di vendita ed il prezzo di acquisto
    • un po’ come il negoziante che rivende ciò che ha comprato
    • non ha particolare interesse a prevedere il futuro, al limite quello a breve termine
    • ruolo per professionisti
  • Arbitratori
    • comprano e vendono quantità (valute, …) su mercati diversi (America, Europa, Asia, …)
    • quando un mercato è poco fluido i suoi prezzi non sono attendibili e i prezzi dei mercati fluidi possono essere usati per fare inferenza sui mercati poco fluidi
    • le transazioni devono avvenire molto rapidamente
    • ruolo per professionisti strettamente legato con il ruolo di Market Maker

Jane Street lavora come Market Maker – Arbitratore.

[altre cose che non ho voglia di trascrivere…]

Poi viene presentata la particolare dinamicità dei lori sistemi, costretti ed aggiornarsi in tempo reale alle modifiche continue dei sitemi di Trading con cui si interfacciano per compiere le operazioni sui mercati.
Per questo negli anni tutta la base di codice è via via migrata ad OCaml, che con il controllo statico dei tipi riesce a trovare la maggior parte delle incongruenze al momento della compilazione.

Altro vantaggio di OCaml è il fatto di incentivare uno stile di programmazione funzionale (nessuno usa gli oggetti in OCaml…), stile che facilita la fattorizzazione di pattern comuni a detta dello speaker molto più dello stile ad oggetti.

Terzo ma non ultimo vantaggio, vantaggio che accomuna un po’ tutti i linguaggi della famiglia ML, la compilazione è rapida e produce codice performante pur senza dover scomodare ottimizzazioni aggressive (che a volte rendono imprevedibile la velocità del codice prodotto anche a seguito di una piccola modifica nel codice).

Vi è poi un vantaggio accessorio e non marginale per una azienda, la possibilità di trovare buoni programmatori da assumere. Il fatto di avere scelto un linguaggio di nicchia li porta a pescare in un paniere di programmatori molto più piccolo anche se spesso la selezione fatta a monte dal linguaggio non è casuale ma predilige programmatori che come minimo hanno avuto l’interesse a studiare un linguaggio “strano”.

In particolare interessante l’opinione del relatore su OCaml, F# ed i linguaggi funzionali vs ad oggetti, riassunta in un commento qua: Caml Trading talk at CMU