3 ms·
Haskell has been used to model financial contracts by a few firms with an eye towards type-level correctness guaranteed by the compiler (that you cannot get wit
by ixmatus 13y ago
Haskell has been used to model financial contracts by a few firms with an eye towards type-level correctness guaranteed by the compiler (that you cannot get with "mundane" type systems found in C++ / C / Java / etc...) That, coupled with Haskell's speed, concurrency features, and other amazing features makes it an attractive platform.
Alpha Heavy Industries is a small(er) SV based firm using Haskell a lot.
- noname123 13y agoHi ixmatus, Can you give a more specific example? Are you saying that instead of in Java/C++ where you have: GenericSecurity > GenericOption > EuropeanOption, BarrierOption, AmericanOption You can have more mutable types/classes at run-time and more injections instead of the concrete ones defined at compiled time? Also, can you give any concurrency examples in terms of concurrency features? Is it similar to Actor model in Scala? Or based more on concurrent data structures as in java.util.concurrent.*?
- tel 13y agoTake a look at [1] for details on the contract language they built. Instead of modeling things in a taxonomy, they build the logic of contracts up from primitives using a combinator library. Concurrency in Haskell is a big thing. At the lowest level, purity means there's a lot of opportunity for parallelization. Atop that Haskell has a really great green threads system and new GHC has a very, very performant IO manager for running them. It's GC'd so you do have thread-local pauses and they're not as nice as Erlang's actor-local GC. Atop that you've got a nice channel system, the best implementation of Software Transactional Memory around, and neat new libraries like LVish for doing eventual consistency in a very reasonable fashion. [1] http://research.microsoft.com/en-us/um/people/simonpj/Papers/financial-contracts/contracts-icfp.htm http://research.microsoft.com/en-us/um/people/simonpj/Papers...
- noname123 13y agoThanks tel for the helpful example, I scanned through [1] briefly and will be attempting to grok the details later. But very interesting paper on using Haskell combinators as opposed to the ugly Java single-inheritance model to make up more and more complicated securities piecewise. Tbh, I'm quite envious of using functional languages and will use the examples to try to learn it (since I'm familiar with the domain area of financial contracts only in imperative lang though). I also like to learn concurrency in Haskell and don't know a thing about it (currently, I'm trying to go over Clojure concurrency features). So what you have mentioned regarding the LVish framework and Erlang's actor-local GC, green threading will give me a good starting point to poke around. Thanks again for your note!
- tel 13y agoSimon Marlow wrote a book recently on Concurrency and Parallelism in Haskell [1]. It's a good read for learning more about this kind of stuff as well. [1]http://chimera.labs.oreilly.com/books/1230000000929 http://chimera.labs.oreilly.com/books/1230000000929
- notastartup 13y agoHow does one get into the financial industry with software engineering skills with some day trading and financial knowledge (Econ major here). What would be a good step to break into this side of finance? It seems everything is more strict.