金融工学の研究/実務で使うプログラミング言語10選

こちらもおすすめ

【初心者から上級者まで】Pythonプログラミング独学におすすめの本6選 (難易度順)【感想あり】 | Quant College

【感想あり】C++プログラミングの独学におすすめの本4選【金融工学徒向け】 | Quant College

金融工学関連でおすすめの本:まとめ(目次) | Quant College

【2021年12月最新:全部受講】Udemyのおすすめ31選をカテゴリ別に紹介【データサイエンス/機械学習,Python/R/SQLプログラミング】 | Quant College

計算演習 確率解析(ブラウン運動編その1)をリリースしました。 | Quant College

【初心者向け】LIBOR廃止とRFR移行の体系的まとめ | Quant College

マーケットコンベンションのまとめ(メジャー通貨のスワップ編)をリリースしました。 | Quant College

関連記事

クオンツ実務で使われるプログラミング言語について、クオンツの種類ごとにまとめた記事はこちら。

クオンツ業務で必要なプログラミング言語は? | Quant College

金融工学で使われるプログラミング言語10選

クオンツ実務で使われている言語に加え、アカデミアでの研究に使われる言語も合わせて紹介する。

以下の順番には特に意味はない。

  1. Python
  2. R
  3. Matlab
  4. C++
  5. C#
  6. Java
  7. SAS
  8. VBA
  9. Q
  10. SQL

Python

かなり幅広く使われているのがPythonである。

最近では金融工学のほとんどの分野で、機械学習の応用が流行っており、研究・実務のどちらでもPythonがよく使われる。機械学習のライブラリが圧倒的に豊富にそろっているのがPythonの特徴であり、機械学習、特に深層学習を応用する場合にはPythonが唯一の選択肢になる

実務ではデータ加工の自動化などでもPythonが幅広く使用されている。
金融工学の分野で何か一つプログラミング言語を覚えるなら、とりあえずPythonを選んでおけば間違いはないだろう。

R

R言語は統計解析に特化した言語である。実務でも一部で使用されているが、どちらかというと実務よりもアカデミアでの研究のほうでよく使われている

金融工学にも様々な分野があるが、R言語はセルサイドのデリバティブ評価モデルで使われることはなく、

・セルサイドならリスクモデル(市場リスク、信用リスク、オペリスクなど)
・バイサイドなら資産運用モデル

の構築・検証に用いられる。

ヒストリカルデータを集めてきてそれをもとに統計モデル時系列モデルを作るのに有用だと思われる。

しかし最近では統計や時系列の分野でもPythonで対応できることが多く、R言語が得意とする分野であっても、特に若手の人はR言語ではなくPythonを使って開発を行う傾向が強い。R言語は中堅以降の年代の人が好んで使っている印象だ。

Matlab

これもR言語と同様の位置づけだが、R言語よりもさらに「実務ではなく研究で使われる言語」という色彩が強い。クオンツではなく大学教員など研究者が使っていることが多い。

このため、大学の授業ではMatlabを使って説明されることもあるため、その授業を受けて卒業した一部のクオンツ(こちらも中堅以降の年代の人)は、今でもMatlabを使う場合がある。しかしR言語に比べて実務ではあまり使用されておらず、研究者に好まれている言語と言ってよいだろう。

また、金融工学の一部の洋書では、Matlabを使って数値計算の実装が解説されている場合がある。

C++

デリバティブ評価の分野では、研究と実務のどちらでもC++がほぼ必須といえるくらい、よく使われている。逆に、デリバティブ評価以外の分野ではC++が使われることはほぼないといっていい。クオンツの中でもデリバティブクオンツを志望している場合はC++の習得が必要となる。

最近の研究では、デリバティブ評価の分野でも深層学習がよく応用されているので、デリバティブ分野の論文でもPythonが使われることが増えてきている。

C#

他の言語に比べるとあまりメジャーではないが、たまに使われている。
分野としてはデリバティブ評価での使用が多いと思われる。
というのも、C++と同様、静的型付け言語で、計算速度が比較的速いほうだからだ。また、オブジェクト指向を大前提とした言語であり、大規模なライブラリ開発で使われる。

一部の金融機関ではデリバティブ評価についてC++ではなくC#で開発しているケースがある。一部の洋書でもC#を使って金融工学を解説していることがある。しかしC#はどちらかというと数値計算エンジンの開発というより、そのエンジンを呼び出すアプリケーションサイドの開発に用いられることが多い

一方で、研究者が論文を書く際の数値計算にC#を使うことはほとんどないだろう。

Java

基本的にC#と同様の位置づけ。傾向としては数値計算エンジンではなくアプリ部分の開発に使われるが、一部のシステムベンダーではJavaを用いてデリバティブ評価モデルやリスクモデルが実装されていることがある。

そのほか、アルゴリズムトレーディングの分野ではフロントオフィスでのクオンツ実務にJavaが使われていることもある。

実務で使用されることはあるものの、アカデミアでの研究に用いられることはほぼないだろう。

SAS

こちらも研究に使われることはないが、一部のクオンツ的な実務に使用されることがある。特にマクロ変数をもとにクレジットポートフォリオの信用リスクを分析するなどで、使われ方としてはR言語やPythonに近いだろう。

SASは有料だが契約するとSAS社のサポートが受けられるということで、オープンソースなど無料で使える言語は信用できない、というような価値観の「お堅い」職場での使用が見られる。(Matlabも有料なので位置づけはSASに近いかもしれない。)

SASは文法が独特で他の言語に直接転用できないようなスキルになる可能性もあるため、実務の現場で必要に迫られない限りSASを学ぶ必要はないだろう。

VBA

Excel VBAはクオンツ実務でよく使われている。どの種類のクオンツであっても、必ずどこかでVBAを使用するケースが出てくる。これはなぜなら、金融機関ではあらゆるデータがExcelシートやCSVファイルの形でやり取りされるからである。

逆に、アカデミアの研究でVBAはほとんど使用されないだろう。自ら進んでVBAを学ぼうとしない限り、大学生や大学院生がVBAを覚えないといけないケースというのはほぼないものと思われる。

Q

Q言語はアルゴリズムトレーディングのクオンツ実務で広く一般に使用されている。アルゴトレードクオンツになるならQ言語の習得はほぼ必須といえるだろう。これはKdbというデータベースを扱う言語であり、ティックデータなどの大量データを扱うアルゴトレードの分野では、Kdbにデータを蓄積することが一般的なので、この分野ではQ言語がほぼ必須となる。

大学での勉強や研究でQ言語が必要になるケースはほぼないと思われる。アルゴトレードクオンツを目指さない限り、Q言語を覚える必要はないだろう。

SQL

こちらもデータベースを扱う言語だが、ヒストリカルデータを扱うクオンツの場合はSQL文を書いてデータベースからデータを取ってくる、というのは日常的に行うので習得が必須となる。デリバティブクオンツの場合はそれほど使わない。

あわせて読みたい

クオンツ業務で必要なプログラミング言語は? | Quant College

競技プログラミング経験はクオンツ就活で有利になるか | Quant College

数学とプログラミングのどちらの能力を伸ばしておくべきか? | Quant College

プログラミングの勉強法 | Quant College

【挫折率90%】初心者がプログラミング独学で挫折する理由/原因/特徴9選【挫折ポイントはどこ?】 | Quant College

こちらもおすすめ

【初心者から上級者まで】Pythonプログラミング独学におすすめの本6選 (難易度順)【感想あり】 | Quant College

【感想あり】C++プログラミングの独学におすすめの本4選【金融工学徒向け】 | Quant College

金融工学関連でおすすめの本:まとめ(目次) | Quant College

【2021年12月最新:全部受講】Udemyのおすすめ31選をカテゴリ別に紹介【データサイエンス/機械学習,Python/R/SQLプログラミング】 | Quant College

計算演習 確率解析(ブラウン運動編その1)をリリースしました。 | Quant College

【初心者向け】LIBOR廃止とRFR移行の体系的まとめ | Quant College

マーケットコンベンションのまとめ(メジャー通貨のスワップ編)をリリースしました。 | Quant College