質問

多くのクオンツ/ヘッジ関係者と話をしたところ、彼らの多くが多くのタスクに自作言語または OCaml を使用しているようだという結論に達しました。彼らの多くが答えられなかったのは、その理由でした。

彼らがほとんどの場合 C++ を使用したくない理由は確かに理解できますが、これらの用途において OCaml が他のスクリプト言語 (Python、Ruby など) と比較して優れているのはなぜでしょうか?

役に立ちましたか?

解決

Camlの取引を読んで試してみてください - ウォール街のの上の関数型プログラミングの経験により、ヤロンミンスキーとスティーブン・ウィークス(謝罪、ジェーン・キャピタルの自由のためにホストされるために使用されるこの記事は、それが存在しなくなったので、私は参照用のACMリンクを残しながら)。彼らはそれは彼らが考えられ、他のほとんどのオプションはC ++、Pythonのとの直接の比較(すなわちない多くのよりも優れていることを考えると、彼らはほとんどの部分のためにそれを取るものの、OCamlでの利点と欠点と感じるかについて非常に詳細に入ります、何を持っている)。

著者は、OCamlのコードに多額の投資を行ってきたジェーン・ストリート・キャピタルで働いています。

のアップデートの<のhref = "https://stackoverflow.com/questions/1996432/what-programming-languages-is-algorithmic-trading-software-written-inものスレッドを参照してください。 「>どのようなプログラミング言語(複数可)で書かれたアルゴリズム取引ソフトウェアであるか。言及する コメントのひとつプレゼンテーションヤロンミンスキーはCamlののジェーン・ストリート・キャピタルの使用にCMUで与えました。時間の長い、約の非常にの興味深います。

のアップデート2つのの:ヤロンは<のhref = "http://queue.acm.org/detail.cfm?id=2038036" のrelと呼ばれる別の概要、ACMキューのためのこの時間は、書かれています= "nofollowをnoreferrer">大衆のためのOCamlます。

他のヒント

たとえば、 プログラミング言語の銃撃戦 速度を比較するには:

さて、私たちは皆、嘘、ひどい嘘、そしてベンチマークについてのセリフを聞いたことがあるので、話は割り引いて推奨しますが、これはかなりよくできた比較です。結局のところ、自分の問題とデータを使って何を成し遂げるかが重要です。

心に留めておくべき

まず最初に、OCamlはREPLと明確に、簡潔な構文を持っているにもかかわらず、それはPythonやRubyのような動的言語ではないということです。これは、静的な型付けを持っており、ネイティブコードにコンパイルされます。

定量分析のために、スクリプト言語の方が便利です。あなたはライブラリの多くへのアクセスを持って、それが情報を管理するために迅速かつ汚いスクリプトを実行するのは簡単だし、中のプログラムに小さなを構築することも、非プログラマのための簡単です。

は、実際の取引に従事アルゴリズム及びシステムを作成するためには、OCamlのような何かをしたいです。 OCamlでの主な利点は、信頼性が、ほとんどの速度(それはダイナミックPythonのような言語と同じくらいうまく読み取る)、その機能的性質、読みやすさです。 OCamlのは、ほとんどの人が信じているよりもはるかに速く、非常にある - それはC速い(Cよりも実際にはわずかに遅いが、動的言語よりも多く、何倍も速く)です。 OCamlのは、PythonやRubyのいずれかのために言うことができるものではありませんHFTシステムを作成するために十分な速さです。

また、心に留めておくジェーン・ストリート(ほとんどのボーカルOCamlのエバンジェリスト)はScalaの前のOCamlを採用し、Clojureのは、シーンに来ました。

は関数型言語なので、それはおそらく、これらの企業が解決する必要がある問題の種類とうまく収まりれ、自然の中で数学的です。他の人が指摘したように、それは素敵なパフォーマンスプロファイルを持っています。

マイクロソフトのF#のためのOCamlを共同選んだ理由は、

多分これは

それは驚くほど速い(とC ++よりもはるかに簡潔)。ですので、

ドンのポストに拾い、ジェーン・ストリート・キャピタル・さえOCamlのページを持っています>、(ブログを含む)がOCamlの婚約にさらにリンクを持ちます。 OCamlでのパフォーマンスは、通常、大きな引数ですが、私はまた、「クオンツ」機能のパラダイムは、分析作業の彼らのようなものに非常によく適していますので、それを愛し、私は、彼らはアーリーアダプターだと思うと思います。そして、企業は、それが均等にシステムプログラミングに適していることを発見します。

簡易並列化のPython / Rubyのに比べて?少なくとも、これは、F#のための真のですが、ずっと同じ理由のCaml / OCamlのために真である必要があります。

私はRubyの大好きな限り、それは主に数学や集計されている大型の作業のための私の最初の選択肢ではないでしょう、とPythonやRubyのどちらもまだマルチスレッドのための本当に素晴らしいサポートを持っています。

の計算の比較的複雑なパイプラインの簡潔パターンマッチングと不変の優先おかげ(Pythonでわずかに容易、Rubyで適用しにくいが、MLベースの言語におけるよりもさらに硬い)大きなデータセット上の計算のために最も価値がありますます。

私はそのような場所では動作しませんので、これらはちょうど私が彼らの位置でそれを行う可能性がある理由として推測されます:

これは、静的関数型言語を入力したとして、それはコードを推論し、それが微妙なバグが含まれていないことを知ることは、一般的にやや簡単だ、RubyやPythonのような言語よりもかなり速く、一般的だと。 (はい、ユニットテストは、同様にそれらをキャッチ助ける必要がありますが、あなたの財政の数字がめちゃくちゃになっていないこと、余分な保証があると便利です。)また、関数型プログラミングは非常に密接に最も高いレベルの言語よりも、より多くのように、数学に結びついていますパラダイム(のような、数学のOO支店がない)、それは彼らが実際にそこに何をすべきかのモデリングが得意ですので。

あまりに

時々のC#で、またはF#の:

クオンツの私の経験では、VBA(Excelを読む)です

編集ます:

私はそれを修正してくださいよ、ダウン投票のために、私は個人的に知らないのいずれかののCAMLを使用してクオンツ...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top