システムトレードならプログラミング言語はpythonが良いとよく言われます。

実際には、エクセルに付属のvbaや、rubyなどの言語でシステムトレードを組む事も多いです。ただ、今から始めるなら、pythonが良いという話をよく耳にします。これは何故でしょうか?

今回はその理由について考えてみました。

システムトレードはどんな風に始まった?

python云々を語る前に、まずはシステムトレードの歴史をざっくりと振り返りましょう。

個人のシステムトレード自体はかなり昔からある訳で、当時はbasicなどで分析をして裁量トレードをしていたという話を聞きます。

90年代にweb上でも取り引き可能な証券会社(通称ネット証券)が出始めてからは、プログラミング言語によって自動売買も頻繁に行われる様になった様です。

当時は今の様にapiなども豊富ではありませんでしたから、自動売買のシステムを組むのも結構大変だったと思います。

さらに、今の様にネット上の情報も豊富ではありませんので、ごく一部の専門的な知識を持った人だけのシステムトレードを運用していた様です。

それから約20年間程の間に、システムトレードは一般の人達にも一気に普及しました。特に、最近は仮想通貨に関する話題が取り上げられる事で、仮想通貨市場への参加者が急増しています。

仮想通貨の取引所は豊富なapiを公開し、また、それらをまとめた様なapiや、ライブラリもかなり多いのが現状だと思います。

なぜシステムトレードはpythonなのか?

では、なぜシステムトレードにpythonが使われる事が多いのでしょうか。

結局の所、様々な言語でシステムトレードは実現できるのですが、pythonが使われる理由を具体的に挙げてみます。

pythonという言語の習得のしやすさ

言語にはコンパイルが必要なものと、必要でないものがあります。後者はスクリプト言語などと呼ばれ、pythonもこれに当たります。

コンパイルが必要な言語は相対的に処理速度が速い(C++などが有名)のですが、このコンパイルの扱いが初心者にはちょっとしたハードルなのです。環境作りやテストを行うのもちょっとしたハードルになります。

昔はスクリプト言語では処理が遅くて使い物にならないと言われた事もあった様ですが、今はハードウェア性能の向上でスクリプト言語が当たり前に使われる様になりました。

それに伴い、システム開発を専門とした人でなくともプログラミング言語を当たり前に使う様になった様です。

スクリプト言語の中でもpythonは記述が簡単で読みやすいと言われています。これは実際に使ってみると分かります。

これがpythonが使われる1つ目の理由だといえます。

pythonのライブラリの豊富さ

次はpythonのライブラリについてご紹介します。おそらくこれが最も大きな理由だと思います。

プログラミング言語にはライブラリというものがあります。その言語を使う人が共通で行うような機能や処理(日付の操作、文字列の操作、ファイル処理など)があります。

これらのプログラムを自分で組もうとすればソースコードは長かったらしく、そして分かりにくくなり、時間もかかります。

ですから、こういった処理を実現できるライブラリと言うものが既にあり、誰でも簡単に使う事ができる訳です。

ライブラリはpythonに限らず、それぞれのプログラミング言語に搭載されているのです。

そしてこのライブラリは常に増えていきます。もちろん今後も増え続けます。優秀な人達が新たなライブラリを追加していくのです。

pythonの場合は簡単な日付処理に限らず、本来であれば非常に高度な数学的計算を簡単に行う事ができるのです。これも優秀な先人達が作ってくれたライブラリを使う事で実現可能です。

システムトレードを高度に実現しようと思えば、数学的な計算が必要になってきます。

ですから、

pythonを使う=システムトレードに実現に役立つ豊富なライブラリが使える。

とも言えます。

実際に、他のプログラミング言語を使ってシステムトレードを実現している人でも、これらのライブラリを使いたいがためにpythonに切り替える人までいます。

これがシステムトレードでpythonが使われる最も大きな理由ではないでしょうか。

おまけ:可能性の大きさ

おまけとして、ライブラリの可能性の大きさも理由の一つにあげます。pythonでは人工知能や機械学習に関するライブラリが非常に豊富です。

システムトレードを行う際は、様々なデータを色々な角度から解析します。これまで人間が解析するのが難しかったデータであっても、コンピュータであれば解析可能かもしれません。

実際に、pythonで使用可能なライブラリ群にはその様な可能性があります。

チャートの内容だけに限らず、世の中に溢れたSNSやWEBサイト、公開データ等を元にして、これまでとは違ったアプローチによるシグナル発信も可能になるかもしれません。

人工知能が勝手に市場の流れを解析して、勝手に売買をする。なんて時代になったら、金融の前提は大きく覆されるかもしれませんね。

pythonに関する情報の豊富さ

最後の理由として、(実用的な)情報量の多さをあげておきたいと思います。

pythonに関する情報が2010年代に入ってどんどん増えてきています。web上や雑誌などで様々な情報を得る事ができます。

さらに、仮想通貨が一般に広まることで、システムトレードに関連した情報もかなり増えてきています。これは、(システムトレードに限定すると)他の言語に比べても明らかに多いと実感しています。

私が愛読している日経ソフトウエアという雑誌でも毎回の様にpython関する特集がされています。pythonを使ったシステムトレードに関する具体的な特集も行われています。pythonに対する注目度がよく分かります。

そしてpythonの特徴として、簡単な記述方法であるが故に、一般の人たちでも高度な計算ができるライブラリを使いやすい状況にあるのです。

情報を集めやすい。そしてそれらの情報を再現しやすいのがpythonであると言えます。

まとめ

今回はシステムトレードでpythonが使われる理由について考えてみました。

他のプログラミング言語にもライブラリがどんどん追加されることも考えられますし、もっと扱いやすい言語が登場する可能性もあります。

※私の友人にはvbaやrubyだけで自動売買をしている人もいます。vbaは専用のライブラリが少なく、正直結構大変なので、本当に尊敬します。

しかし現時点ではやはりpythonはシステムトレードに最も適した言語の1つであると言えると思います。