I recently found some old Fortran code from the paper Algorithm AS197 A Fast Algorithm for the Exact Likelihood of Autoregressive-Moving Average Models (Melard 1984) [pdf] [code].
I’m not very fluent in Fortran77 and I don’t like the idea of rewriting a well tested piece of code introducing new bugs, so why not give a try to F2PY?
F2PY is a tool that provides an easy connection between Python and Fortran languages. F2PY is part of NumPy.
F2PY creates extension modules from (handwritten or F2PY generated) signature files or directly from Fortran sources.
Aggregate functions compute a single result from a set of input values. Like sum() or count() they operate on one or more columns and multiple rows and output a single result.
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
Sono andato a guardare nei sorgenti della pagina ed ho trovato questa interessante riflessione:
<!-- As I write this, the year is 2009, and the internet is STILL a battleground of so-called “intellectual property” disputes. Some people would have you believe that without proper financial incentives, music, literature, and software would disappear. After all, who would make music if they can’t make money on it? Who would write? Who would program?
I know the answer. The answer is that musicians will make music, not because they can make money, but because musicians are the people who can’t not make music. Writers will write because they can’t not write. Most of the people you think of as artists are really just showmen. They collect a paycheck and go home at 5 o’clock. That’s not art, that’s commerce.
I’ve been programming since 1983 and releasing my code under Free Software licenses since 1993. I’ve been writing and publishing under Free Content licenses since 2000. I can’t imagine not doing this. If you can imagine yourself not doing what you’re doing, do something else. Do whatever it is you can’t not do. -->