システムトレード構築編

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

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

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

今回は、最初の3つ、システムトレードソフトシステムトレードの評価方法裁量トレードの一般知識について掘り下げていきたいと思います。

システムトレードソフト

必要度
熟練度

システムトレード独特のプログラミングを学べる

「完全自作なんだから、システムトレードソフトの知識なんて不要でしょ。そんなもの覚えたくないよ。」と、思われるかもしれません。しかし、私は簡単なプログラミングしかできない頃、MT4から触り始めましたが、その時に得たシステムトレードに関する知識は、今でも非常に役立っています。

もしあなたがすでに、相場をある程度経験されており、かつ、プログラミングの知識が相当あって、これから作ろうと思っているシステムの設計がすぐに思い浮かぶなら、不要です。

それ以外の方、プログラミングはバリバリできるけど、システムトレードはどうやって作ればいいのかわからん、という方はまずはシステムトレードソフトでストラテジーを作ってみたほうがいいと思います。遠回りのようですが、ストラテジーを作ってみるだけで、システムトレードの基本を効率よく身につけられます

少し話がそれますが、ゲームプログラミングは「状況変化 > 再計算 > 再描画」という独特のループ構成があります。経験豊富なプログラマーでも、いきなりゲームを作ってと言われたとき、このことを知らないとなかなか工程が進まなかったりします。

同様にシステムトレードにも「価格取得 > シグナル計算 > 注文操作」という独特のループ構成があります。この構成になれるのに、システムトレードソフトが適しています。システムトレードソフトのストラテジー作成を経験してみることで、一般的なシステムトレードのシステム設計を肌で感じることができます。

先ほど例に挙げたゲームプログラミングの場合は、今は Unity などのフレームワークがいろいろあるので前知識がなくても意外と何とかなったりします。でもシステムトレードには、フレームワークなんてないです。どちらかというとシステムトレードソフトそのものがフレームワークに近いです。システムトレードをゼロから作るというのは、そのフレームワークが使いものにならないから自作するということともいえます。そのためには、システムトレード独特のプログラミングを知っておく必要があります。

ストラテジー作成経験から得られるもの

システムトレードソフトを使うことで、

ストラテジー作成 > バックテスト > 最適化 > フォワードテスト > 本番稼働

という、システムトレードにおける開発から本番ディプロイまでの工程を簡単に体験することができます。

この体験で、システムトレードに必須なバックテストとフォワードテスト、最適化と過剰最適、といった基本的な工程の知識が身につきます。

他にもストラテジー作成をしてみることで、システムトレードにありがちなバグを経験することができます。エントリー無限ループ地獄(私が勝手に命名しました)とかは、誰もが通る道ではないでしょうか。私は幾度となくこのバグを踏みました。これらの経験も、自作のシステムトレードに移行したとき、役だっています。

また次のセクションで記載している、システムトレードの評価方法もシステムトレードソフトを使えば自然と身につきます。


システムトレードソフトを使ったことないけど、ここを読んで、「ははーん、そういうループ構成で作ればいいんだな。バグも想像できた。OK、もうわかった!」と思ったあなたへ。

すばらしい判断です。タイムイズマネー、次へお進み下さい。

システムトレードの評価方法

必要度
熟練度

このスキルは必須です。作成したシステムが本番で耐えうるレベルなのか判断できる必要があります。

この評価方法ですが、侮ってはいけません。システムトレード構築におけるスキルセットの中で、重要度はトップレベルです。意外かもしれませんが覚えることもかなりあります。

応用的な知識は、構築&実運用しながら身につけるというスタイルでかまいません。ただ構築を始める前に、PF、ペイオフレシオ、ドローダウンなど基本的なことは知っておく必要があります。システムトレードソフトだと必要な評価項目を算出してくれますが、自作の場合、どんな評価項目が必要なのか、それはどんな計算式で出せるのか知っておく必要があります。

またシステムを構築したり運用したりしていると、自分独自の評価項目が欲しくなるときがあります。そのようなオリジナルの評価項目を柔軟に組み込めるのも、自作の利点の1つです。

この評価項目ですが、かなり奥が深いです。単純な数値で判断できればいいのですが、そういうわけにはいかないんです。PFがいくつ以上、ペイオフレシオと勝率の積がいくつ以上あればOKという明確な基準はありません。勝率やペイオフレシオのバランス、テスト期間の長さ、注文回数と頻度、更には個人の考えによって適正値はバラバラなんです。経験を重ねて自分の中に落とし込むしかありません。

システムトレードの評価は、本1冊になるほど奥が深い世界です。少し古い本ですが、下記の本は非常にためになります。この本を読めば、PFは2.0あればOKという通説が、以下に適当なことかというのも納得できます。

裁量トレードの一般知識

必要度
熟練度

裁量というかトレードの一般知識ですね。トレードを全くやったことがないというなら、システムトレードを作るのは無理でしょう。とりあえず最低枚数で、実際にトレードしてみることをオススメします。

スプレッドや手数料の存在、エントリー可能な時間帯、東京時間/ロンドン時間/ニューヨーク時間の存在、重要指標の存在、この辺りは最低限知っておく必要があります。まあこの辺りの知識は、システムトレードを構築していたら、自然と身につくのでそれほど心配することはありません。


次回

今回は技術と言うよりは、システムトレード特有のものについての話でした。
次回は、プログラミングなどの技術よりのことを書きたいと思います。

COMMENT

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