システムトレードのノウハウについて書いてきてなかったのでここに書いとく。
1.バックテスト
システムトレードと通常のトレードの最大の違いはバックテストの有無である。
平均的な投資家は自己のポートフォリオの有効性をチェックせず運用の中で損失を出しつつ試行錯誤しながらテストするが、システムトレードの場合は作成したアルゴリズムを過去の相場環境の中でテストし有効性を検査できる。
このため実際の運用段階で大きく損失が発生したりすることはまれである。
2.税金、手数料
バックテストの際、文献によっては税金、手数料を省いてテストしろと書いてあるものもあるがこれは完全な誤りである。
これらの費用を織り込んでテストしないとトレード回数と利益率が比例して伸びてしまうので、取引回数が多い非常なアグレッシブなアルゴリズムができてしまい、実運用するとひどい損失が発生してしまう。
3.テスト期間
テストは最低10年以上の過去データで行うこと。1~4年だとその期間に最適化したアルゴリズムを作成していることがよくある。
4.最適化
最適化はなるべく避けること。
利益が出せるアルゴリズムは細かい最適化なしで十分な利益が出るものである。
5.ベンチマーク
利益が出せるアルゴリズムができたとしても運用する前にまずベンチマークと比較すること。
たとえば日経平均、TOPIXなどのETF。ドルなど。
こうしたベンチマークに劣るようでは利用する価値がない。たとえばドルなら10年で2倍程度に増える。
6.フォワードテスト
上記までの工程をクリアしても実運用という最後の難関が控えている。
実運用においては最初はフォワードテストとしてできるだけ資金を抑えて運用すること。
バックテストの結果とフォワードテストの結果を比較し、そもそものバックテストの前提条件に誤りがないか日々確認する。
差異があればバックテストに取り込み再テストを行う。この段階でかなりのアルゴリズムが淘汰される。
7.運用
システムを組むのにプログラムを動作させるサーバーはできるだけ安定したものを利用したい。
UPSなどはなかなか個人で購入、利用するのは予算オーバーなこともあるので、バッテリを備えたノートPCなどを利用しよう。
またインターネット回線の切断により注文ができないこともある。
プログラムで実行時にメールでユーザーに通知するメカニズムを組み込んでおき障害時に即座に復旧できるようにしておくべき。