Similar to this other question about Scala, I'm interested in knowing whether F# is used to any measurable degree in financial circles. Have there been any successful shops using it, any research on performance and viability?
-
4$\begingroup$ What is the point of these language questions? The answer is going to be almost always the same: a few places probably use them, but C/C++/Java dominate on the whole. $\endgroup$– ShaneCommented Feb 8, 2011 at 21:06
-
$\begingroup$ @Shane Why did you just delete your catch-all question?! I just finished typing my answer right when you removed it! $\endgroup$– chrisaycockCommented Feb 8, 2011 at 21:18
-
$\begingroup$ @chrisaycock Sorry! Changed my mind; do you still have it? Try again. $\endgroup$– ShaneCommented Feb 8, 2011 at 21:19
-
$\begingroup$ I work for a hedge fund and we use C# for algorithmic trading models. This is because we use C# for everything else. Thus I would assume that using F# would be a great move due to it being DotNet and compatible (mostly) with existing C# code. $\endgroup$– Todd MosesCommented Jan 11, 2012 at 19:39
-
$\begingroup$ @ToddMoses F# is a natural choice in your situation $\endgroup$– Dmitri NesterukCommented Apr 22, 2012 at 8:00
13 Answers
Credit Suisse has publicly stated that they use F# for some valuation tasks (which tend to be very parallelizable). Here's a link to a talk abstract from a Commercial Users of Functional Programming workshop:
http://cufp.org/archive/2008/abstracts.html#MansellHoward
I'm not sure if there's a video of the talk floating around or not.
Since F# targets the .NET framework, it gives you a lot of flexibility in integrating other applications that might have been written in, say, C#.
-
1$\begingroup$ Not only for "some valuation tasks". Credit Suisse's Modelling and Analytics Group in London develops (entirely?) in F# as far as I know. $\endgroup$– jk3000Commented Sep 15, 2011 at 19:31
I help organize the F#unctional Londoners Meetup group. A good number of our 450+ members work in London's finance sector. Over the past 2 years we have hosted a number of talks related to F# in trading:
- Simon Cousins on F# in the Enterprise - F# at E.ON Energy Trading
- Daniel Egloff - F# on the GPU with Alea.CUDA - developed for derivative pricing
- Adam Mlocek on GPU enabled F# numerics - includes pricing a euro option by Monte Carlo
- Tomas Petricek on F# Domain Specific Languages for Finance - including modelling and evaluating contracts
I worked for a big investment bank a few years ago that announced it was moving all quant models to F#. The goal behind the switch was that F# is a functional programming language and available on .NET, both of which were desirable qualities for this particular company. I left before they got started on the transition, so I don't know what came of it.
As for the related OCaml, Jane Street famously uses that.
I work at Trayport, the leading provider of European energy trading solutions. We use F# alongside C# in our trading screen Joule. F# is used for our calculation engine, domain, high performance components and for handling concurrency.
- The calculation engine leverage's F#'s union types, pattern matching and units of measure feature.
- The domain leverages F#'s rich object orientated constructs.
- F# is particularly strong at concurrency with first class events, built-in agents, asynchronous workflows and immutability as a default.
As a statically typed .Net language F# has similar performance characteristics to C#, with additional optimizations including tail calls and inline functions. Performance of the system is comparable to the previous highly optimized C++ implementation and on some key components it is significantly faster.
-
1$\begingroup$ Hey, can you merge your contents here into your other answer? That way all the info appears in one place. $\endgroup$ Commented Jan 29, 2013 at 12:16
-
$\begingroup$ How is F# doing in the world of finance these days in 2015/2016? $\endgroup$– NikosCommented Jul 8, 2015 at 9:25
There was huge buzz about F# in the City and few banks / funds tried very agressively to hire people with F# knowledge and experience in finance. For example, Luka Bolognese one of the F# authors joined Credit Suisse almost 2 years ago. Also Don Syme used to conduct visiting lectures about F# and its possible applications to finance in the City .
-
2$\begingroup$ Yop there are also a few hedge funds lurking for F# programmers in Geneva $\endgroup$– SRKXCommented Sep 9, 2011 at 14:50
-
1
Not that I know of, although I know .net is sometimes used as a platform by (larger) asset management companies, so F# seems a good candidate to parallelize computationally intensive jobs.
F# is mainly a functional language, but it's also rich in OO features. This makes it very suitable, for example, for writing a pricing framework and at the same time make writing payoffs more straightforward. In the long run, it definitely saves a long time writing/debugging and maintaining models.
I've worked in about 10 financial institutions over my career. 6 top tier banks in the front office building low latency trading platforms. F# is rare, these places are huge so I cant say I've seen every team but where I've seen it be used (twice) the project has been dire. This was a decent overview from an experienced city recruiter.
-
$\begingroup$ Interesting link. Please take the time to register to help the site. $\endgroup$– SRKXCommented Mar 27, 2013 at 13:29
-
$\begingroup$ Archive link: web.archive.org/web/20130705164641/http://blog.oxfordknight.com/… $\endgroup$– sdgfsdhCommented Dec 14, 2022 at 18:06
We use it in sports trading. Mostly because our quantitive analysts creating the mathematical models understand F# quite easily, while they completely gave up on C# :D
-
2$\begingroup$ C#'s approach (and the Object Oriented approach, in general) to high level math is asinine. Take delegates, 'callbacks', and design patterns, for example. These are terms slung around OO circles like they are super advanced witchery, when in reality they are universally as trivial as passing g(x) into f() (or, f(g(x))). When math people run into this nonsense, it is like a civil engineer encountering a skyscraper built out of play-dough, bubble-gum and lincoln-logs. Their minds break, and angels die. $\endgroup$– ChrisCommented Dec 6, 2015 at 1:00
For what it is worth , I work for a major investment bank and we have decided to go the functional way. Since most of our other legacy apps are JAVA we decided on using clojure on JVM.
I know one shop which is doing some new projects in F# replacing some of their OCaml stuff, I asked the guy what they used it for and he replied "mostly data cleaning".
-
$\begingroup$ Really? interesting, I'd have thought that data cleaning would be easier in a procedural/imperative language like C# ... and that they'd model their algorithms with the functional language. $\endgroup$ Commented Apr 23, 2012 at 20:39
-
$\begingroup$ Yeah, that did occur to me as well, but I'm not really enough of a expert in functional languages to make a judgement. I know one of the other reasons they went to F# was so they could use the VS tool-chain (debugger etc). $\endgroup$– CraigCommented Apr 23, 2012 at 23:06
Credit Suisse use it a lot in quants, BarCap use it to some extent. Buy side, BlueMountain Capital are very F# heavy in analytics and contribute to open source a lot (Deedle is amazeballs!). Its also used sporadically in other funds.
QuantConnect provides F# bindings and examples for their Lean open source trading engine. It means there is a demand for those.