2012年4月23日星期一

Functional Programming Languages usage in Financial/Trading firms



http://www.linkedin.com/answers/financial-markets/derivatives-markets/MKT_DRV/275253-5691585


Olu O.

Valuations Project/Stream Management at NumeriX

Functional Programming Languages usage in Financial/Trading firms

Which financial firms (buyside or/and sellside) are currently actively using functional programming (FP) languages like F#, OCaml, Lisp, Scheme or Haskell?

How is this being used and in what areas e.g. Front office pricing, structuring, product control, risk etc?

Places I know of or have heard of:

Jane Street Capital (OCaml - used in trading/pricing applications, quant and research tools )
Societe Generale (OCaml - used in derivatives structuring/pricing, quant and research tools)
Credit Suisse (not sure where and if still in use)
Calyon (I know of a once proposed MO project, but not sure if in use in other areas)

I am interested in getting a feel for how much of a niche, FP's usage in the industry still is?
posted July 16, 2008 in Derivatives Markets, Software Development | Closed
Share This

Good Answers (1)

Tom P.

Managing Director - Head of Architecture Services - RBC Capital Markets
Best Answers in: Education and Schools (5)... see more
This was selected as Best Answer
I keep hearing buzz around this space. I think most of Investment Banks have have at last research initiatives ongoing

I actually commissioned research on this topic from a peer survey company and the general consensus was that FP looks very promising for pure quant stuff but that one one has any business critical work going on yet.

I have a (very strong) suspicion that the main use of Haskell right now is to automatically parse and productionise spreadsheets in the structured products world.

OCaml (and F#) look to be much more promising in the realm of writing production systems de novo. Haskell isn't deterministic in its return time (it's Lazy so it may come back in 5 secs or may take 5 hours - and you cant really predict up front which - this is fatal for use in eg pricing libraries) OCaml by contrast gets predictable performance just slightly slower than C++.

For it to really take off though it will require the kids who learned FP as their first programming language (OCaml in the Grandes Ecoles, Haskell in the UK) to actually have decision making authority in the banks thy work at. This is still 5 - 10 years off in my opinion.

No one seems interested in using FP for general systems development work though. The model being touted by Microsoft (and I think the one which will ultimately be adopted) is islands of pure FP doing the hard algorithmic processing while the rest of the app is eg C++ or C#.

Feel free to email me if you want to discuss further.
posted July 19, 2008

More Answers (6)

David M.

Risk Analyst for Emerging Risk Models
At Credit Suisse I know they use Mathematica a significant amount for pricing, in product control, and risk groups, for at least the exotic commodity products, and other areas that are not on standardized systems. The more frequent or popular a transaction is, the less likely we are to be using a functional language.
posted July 16, 2008

David S.

Finance
Best Answers in: Business Development (1)... see more
Here we go....an emacs vs vi flame war on LinkedIn in a topic about FP in finance....some things never ever change....

My answer is that as far as I am aware there isn't much of niche in that niche. One of the main prerequisites for that industry is the ability to have someone else do your job tomorrow after you get your pink slip. C C++ and Fortran still rule the roost.

Clarification added July 17, 2008:

:q! ;-)
posted July 17, 2008

Joseph W.

Quantitative Finance Research / Astrophysics
Best Answers in: Derivatives Markets (4)... see more
Most financial firms have some scripting language which is used to describe the payoffs of derivatives and these tend to be functional languages, or non-functional languages used in a functional way. Most everyone does one of three things

1) use a scripting language like Ruby or Lisp that has functional features
2) use a functional language like Haskell
3) write their own interpreter for a language with functional characteristics

The reason that functional languages get used is that you have security A, and security B. Now you want to calculate the payoff of something that is a function of security A + security B, or the the difference, or some weird combination that involves the phase of the moon. Functional languages are very powerful at being able to combine securities like that.

At the same time, I haven't see people use functional languages to build entire trading systems, so usually the functional language bit is part of something larger that uses C++.
posted July 17, 2008

Graeme B.

Low Latency Specialist
Haskell is an attractive language capable of taking advantage of MMC - massively multicore chips. Monte Carlo

Links:

Clarification added July 18, 2008:

for example, is an ideal algorithm for parallelisation in Haskell
posted July 18, 2008

Antoine R.

Software engineer at Dassault Systemes
Lexifi uses ocaml (actually, extending the ocaml language) to implement MLFi, aiming at modeling complex finacial products.

Links:

posted July 18, 2008

Daniel L.

Consultant / Developer / Engineer / Writer / Tutor at Vanir Systems
Hi Olu,

That's a good question, and I would be interested in hearing about commercial developers.

One resource that I did find which might be quite useful for you is the
*"Commercial Users of Functional Programming" Conference/Group: http://cufp.galois.com/

Other online resources include:
* "Does anyone use functional programming": http://www.haskell.org/haskellwiki/Introduction#Does_anyone_use_functional_programming.3F
* "Haskell in Practice": http://www.haskell.org/haskellwiki/Haskell_in_practice
* "Haskell based Mathematics Applications and Libraries": http://www.haskell.org/haskellwiki/Applications_and_libraries/Mathematics

I hope that helps. I personally enjoy Haskell as a Functional Programming Language, but I do like Ruby (which is a clean Object Oriented Language with a Functional Programming Style). I also like Prolog, but that's more of a Logic Programming Language rather than Functional.

I can't see any problem in using a Functional Programming Language for a commercial purpose, in fact, I think that if anyone does then they're likely to be a few years ahead of someone who does a similar thing in, say, Java. This is because I believe Functional Programming to be more adaptable in the long term, particularly for algorithm-intensive applications.

Cheers,

Daniel
posted July 18, 2008

没有评论:

发表评论