为什么对冲基金和金融服务经常使用OCaml?

问题描述 投票:24回答:9

谈到一些quants / hedgies,我得出的结论是,他们中的很多人似乎都在使用自制语言或OCaml执行许多任务。许多人无法回答的原因是。

我当然可以理解为什么他们不想在大多数情况下使用C ++,但为什么OCaml比其他脚本语言(如Python,Ruby等)更适合这些用途?

programming-languages ocaml quantitative-finance
9个回答
24
投票

尝试阅读Yaron Minsky和Stephen Weeks的Caml trading - experiences with functional programming on Wall Street(道歉,虽然这篇文章曾经在Jane Capital免费托管,但它已经不存在了,所以我留下了ACM链接供参考)。他们详细了解了他们认为OCaml的优点和缺点,尽管他们在很大程度上认为它比他们考虑的大多数其他选项更好(即没有很多与C ++,Python的直接比较) , 你有什么)。

作者在Jane Street Capital工作,该公司对OCaml代码进行了大量投资。

更新:另见线程What programming language(s) is algorithmic trading software written in?。其中一个comments提到了Yaron Minsky在简城街资本使用Caml时向CMU发表的演讲。大约一个小时,非常有趣。

更新二:Yaron已经写了另一个概述,这次是ACM Queue,名为OCaml for the Masses


12
投票

例如,参见programming languages shootout进行速度比较:

现在,我们都听到了有关谎言,该死的谎言和基准的线条,所以推荐使用盐粒 - 但这是一个相当不错的比较。在一天结束时,重要的是用一个人自己的问题和数据做什么。


7
投票

首先要记住的是,即使OCaml具有REPL和清晰简洁的语法,它也不是像Python或Ruby那样的动态语言。它具有静态类型并编译为本机代码。

对于定量分析,脚本语言更方便。您可以访问很多库,很容易使用快速和脏的脚本来管理信息,即使对于非程序员来说,构建中小型程序也很容易。

要创建实际参与交易的算法和系统,您需要像OCaml这样的东西。 OCaml的主要优点是它的功能性,可读性(它几乎与Python这样的动态语言一样好),可靠性,但主要是速度。 OCaml比大多数人认为的要快得多 - 它的速度很快(实际上比C慢一点,但比动态语言快很多倍)。 OCaml足以创建一个HFT系统,这对于Python或Ruby来说都不是。

另外,请记住,在Scala和Clojure出现之前,Jane Street(最有声音的OCaml福音传道者)采用了OCaml。


6
投票

作为一种功能语言,它本质上是数学的,它可能很好地适应这些公司需要解决的各种问题。正如其他人所指出的那样,它具有良好的性能。

也许这就是微软为F#选择OCaml的原因


4
投票

因为它非常快(而且比C ++简洁得多)。


2
投票

挑选Don的帖子,Jane Street Captial甚至有一个page dedicated to OCaml,进一步链接到他们的OCaml订婚(包括blog)。 OCaml的性能通常是一个很大的争论,但我认为“量子”也喜欢它,因为功能范式非常适合他们的分析工作,因此我认为他们是早期采用者。然后公司发现它同样适用于系统编程。


1
投票

与Python / Ruby相比,平凡的并行化?至少对于F#来说是这样,但出于同样的原因,Caml / OCaml应该是这样。

尽管我喜欢Ruby,但它不是我主要选择数学或聚合的繁重任务的首选,而且Python和Ruby都没有真正支持多线程。

由于模式匹配和对不可变性的偏好(在Ruby中更难实现,在Python中稍微容易但仍比基于ML的语言更难),相对复杂的计算管道的简洁性对于大数据集的计算是最有价值的。


1
投票

我不是在这样的地方工作,所以这些只是猜测为什么我可以在他们的位置上这样做:

它通常比Ruby和Python这样的语言快得多,作为一种静态类型的函数式语言,它通常更容易推理代码,并且知道它不包含细微的错误。 (是的,单元测试也应该有助于抓住这些,但是额外的保证,你的财务数据不会搞砸了很好。)此外,函数式编程与数学密切相关,比大多数高级语言更为紧密。范例(比如,没有数学的OO分支),所以它擅长建模他们实际在那里做的事情。


0
投票

根据我对Quants的体验,它是带有c#的VBA(读取:Excel),或者有时也是f#

编辑:

我要说的是,对于投票,我不认识任何使用caml的Quants ...

© www.soinside.com 2019 - 2024. All rights reserved.