システムトレード構築編

システムトレーダーのスキルセット -4-

前々回、機械学習でシステムトレードで構築するのに、下記のスキルセットが必要だと書きました。

  • システムトレードソフト
  • システムトレードの評価方法
  • 裁量トレードの一般知識
  • プログラミング
  • DB(データベース)
  • ITインフラ
  • Git
  • 機械学習
  • 統計学
  • 不要なもの

今回は、ITインフラ~統計学、不要なものについてになります。

ITインフラ

必要度
熟練度

ITインフラのスキルとは、ネットワークやサーバ、ハードウェア等の領域を指します。今はクラウド全盛で、この辺りの知識はだいぶ不要になってきました。物理作業はありませんし、知識がなくてもUIをポチポチしてれば、なんとなくITインフラが構築できてしまいます。

しかし、システムトレードを全てクラウドでやるとなると、結構なコストになります。それを避けるために、ローカル(自分のPC)でやろうとするとこの辺りの知識が必要になってきます。

システムトレードですが、DBサーバの他、機械学習のmodelやbacktestのトラックレコードなどを保存するファイルサーバが必要です。更にmodel構築時のGPUがあるPC、本番のトレード用の24時間稼働しているPCなども必要です。これらを1台のPCで全てやるわけにはいきませんので、複数台のPCの管理が必要になります。そのためにはネットワークやサーバなどの知識が必要になります。DBサーバのパフォーマンスチューニング(メモリやI/Oの管理)など、やや専門的な知識も必要になってきます。

PC自作もできた方がいいでしょう。MT4のようにシングルスレッドでバックテストをしていては、時間がかかりすぎます。バックテストは基本的にマルチスレッドで行うので、CPUやメモリはあればあるほどいいです。私はメモリ64GB(8GB×8枚)のPCを使用していますが、これは市販のPCでは用意できません。メモリを8枚刺す必要があるので、市販PCのメモリ増設でも対応できません。自作するしかありません。あと、ディープラーニングにはGPUが必須になってきますので、これもPC自作の方が適しています。市販のPCでは、ケースが小さすぎて、GPUが入らない場合があります。

といっても、PC自作スキルはあれば良い程度です。ショップのカスタム機を購入する手もありますし、メモリやGPUが必要な処理は、AWSのスポットインスタンスで安く済ませるという手もあります。

Git

必要度
熟練度

バージョン管理です。今は、バージョン管理=Git と言っていいでしょう。1人プロジェクトなので、別にバージョン管理しなくてもなんとかなると思いますが、やっておいた方がいいです。

Gitはできることがたくさんあるので、ちゃんと使うとなると難しいのですが、一人プロジェクトだと最低限のことができれば問題ないです。まずは Commit, Pull, Push だけでいいと思います。

本番で動かし始めて、本番用と開発用で別々のソースコードを管理したくなったら、branchを使い始めましょう。

Gitと言えば、GitHubですがソースコードを非公開にするプライベートリポジトリは有料です。コストを抑えたい場合は、GitLabか、BitBucketを使えばいいでしょう。

機械学習

必要度
熟練度

機械学習です。これを使うがために、システムトレードをゼロから作るといっても過言ではありません。当然、必要度は★5になります。

しかし、意外かもしれませんが、機械学習の知識はそれほど必要ないです。というのも、機械学習の難しい部分は全てライブラリが隠蔽してくれるので、理論や計算式を知らなくてもなんとかなります。

Qiitaで、初心者向けに解説された記事を読んで、後はライブラリのチュートリアルをやったりサンプルコードを読むだけで、機械学習のモデルを構築できるようになります。

私も機械学習の知識はほとんどありません。ただ、知識があったほうがアドバンテージになることは間違いありません。システムトレードのアイデアも、機械学習に精通しているほうが出やすいでしょう。

統計学

必要度
熟練度

これもほとんど必要ありません。というか、必要かもしれませんが、私には統計学の知識がほとんどありません。分散や標準偏差ぐらいはわかりますが、それ以上の専門のこととなるとさっぱりです。

これも機械学習と同じ類です。知っていればアドバンテージになって、トレードのアイデアや改善に役立ちます。ただ無くてもシステムトレードを作ることはできます。

不要なもの

これは私が思う不要なものリストです。

  • 数学
    AIの研究をするわけではないので、数学の専門知識は不要です。
  • Webプログラミング
    Web UI があったほうが便利ですが、無くてもシステムトレードはできます。私の現在のシステムにもWebフレームワークは使われていないです。ただ、Web画面が欲しいと思うことはあるので、次のシステムリプレースでは、Webフレームワークは取り入れるつもりです。
  • CI/CD
    CI (Continuous Integration) 継続的インテグレーションと CD (Continuous Delivery) 継続的デリバリー です。自動テストや自動デプロイなどですが、個人規模では必要ないです。
  • ブロックチェーン
    これも、今のところは不要です。

システムトレードに必要なスキルセットの話は、今回で以上になります。

求められるスキルは、時代とともに変わっていきます。今後、今回記載したものが不要になり、新たに必要となるものが出てくることもあるでしょう。技術情報インプット、キャッチアップは怠らないようにしたいです。

COMMENT

メールアドレスが公開されることはありません。