月次成績-2017年1月

後半に若干挽回しました。

170131-1.png

2017/1/31

◆本日の損益
 +337,400円

◆今月の累積損益
 ▲800,330円

2017/1/30

◆本日の損益
 ▲5,150円

◆今月の累積損益
 ▲1,137,730円

Tips-機械学習による株価予測

最初に断っておきますが、本記事中ではAI(人工知能)ではなく機械学習という言葉を使います。
AIという言葉は非常に曖昧であり、誤解を与える可能性があるからです。

機械学習の投資への応用は国内では書籍の出版もなく(※)、論文を調べても殆ど出てきません。
一部のブログなどで機械学習を使って株価を予測するというものもありますが、
正直なところ検討と言えるレベルに至っていないのが現状だと思います。
厳しい言い方となってしまい申し訳ありませんが、
おそらく自分では株を買っておらず、その殆どが机上の空論になっていると思います。

クオンツ投資には押さえておくべきノウハウが多数あり、
データサイエンティストが予測対象を株価に置き換えても、簡単に良い結果を得ることはできません。
例え良い結果が得られたとしても、実際には収穫できない幻のアルファであることが多いのです。
従ってこの分野での深い考察は、クオンツ投資の従事者が機械学習の分野へ足を突っ込む以外ありません。
機械学習を用いた投資はルネッサンス・テクノロジーやブリッジ・ウォーターを筆頭に、
リベリオンリサーチやセレベラムキャピタルなど様々なファンドが手を付けています。

本記事では機械学習の投資への応用について最低限押さえておくべきポイントを記していきます。
この分野の検証をしている方にとって参考となれば幸いです。
なお、これらの内容は株式のシステムトレーダーの方は当然に理解している内容であり、
公表しても問題ないレベルであると考えています。


1.目的変数について
 ・当然ながら階差系列を目的変数とします。
  経済指標(GDPなど)の予測で原系列を予測するものがありますが、これはいけません。
  理由は説明するまでもないと思います。
 ・個別銘柄のリターンを目的変数とする場合、市場変動分を控除しておく必要があります。
  この処理をしないと、個別銘柄の指標で市場の動きを説明するモデルになってしまいます。
  因果関係が存在しないため、検証でどれだけ良い結果が得られても全く信用するに値しません。

2.説明変数について
 ・個別銘柄の指標を説明変数とする場合、テクニカル指標にしろファンダメンタル指標にしろ、
  単純に採用するのではなくクロスセクションもしくはタイムシリーズでの集計が必要となります。
  (テクニカル指標はその殆どがタイムシリーズ集計されたものになっていると思います)
  ある銘柄の指標は、他銘柄の指標や自身の過去の値と「比較」することで初めて意味を持ちます。
  逆に言うと単純に採用した指標には説明力が乏しく、
  検証でどれだけ良い結果が得られても全く信用するに値しません。

3.母集団について
 ・ユニバースはある程度の絞り込みが必要です。
  少なくとも東証1部と新興市場は分けて考えます。
  これらの市場は取引参加者が異なるため、リターンの統計的性質(分散や歪度)が全く異なります。
 ・予め売買代金や財務状況でスクリーニングを掛けておく必要があります。
  前者を考慮していない場合、マーケットインパクトの影響で実際に取引を開始した時点で
  著しく期待値が劣化してしまいます。
  後者はタカ○や東○を例に挙げるまでもありません。

4.時系列のパラドックスに注意を払う
 ・ファンダメンタルデータには最新の注意を払わなければなりません。
  高頻度で修正が入るため過去のデータが上書きされていることが多々あります。
  未来の情報を使っていた、という話が往々にしてあります。
 ・決算修正などのイベント指標を用いる場合は、データ入手可能となる詳細時刻が必要となります。
 ・他にもサバイバーシップバイアスなどがあります。

5.市場の動き方や規制は最低限理解しておく
 ・逆指値(つまりブレイクアウトやストップ)を使った検証は意味がありません。
  株式市場は外国為替市場などと比べると極端に流動性の少ない市場であり、
  狙った値で約定できることのほうが稀です。
 ・ストップ高/安、新規売買禁止、アップティックルールなど、
  売買できない状況を考慮する必要があります。
  特にこれらのデータは異常値であることが多く、簡単にフィッティングに陥ってしまいます。

6.アウトオブサンプルについて
 ・リーブワンアウトでもクロスバリデーションでも何でも良いのですが、
  複数の検証の後にアウトオブサンプルで一番良いものを選択する人がいます。
  このような検証には全く意味がありません。
  全てインサンプルで検証していることと結局同じことです。

7.真摯な態度で臨む
 「良い結果を出したい」ということが目的とならないよう心掛けが必要です。
 とあるデータアナリストのブログから引用させていただきます。
  ・必要なのはスキルではなく誠実な心構え
  ・何のためのモデリングか考える
  ・分析対象に興味を持つ

8.最後に -機械学習の投資への応用全般について
 機械学習の用途として2つが考えられます。
 1つは直接的な用途としてリターンへの相関を持つ何らかの指標を探し出すこと、
 もう1つは間接的な用途として市場の特性などを具現化することが挙げられます。
 後者は結果としてそれがリターン相関を持ったり市況を表したりするものであればよいという考えです。

 しかしどちらの手法にせよ、株式市場は「過分散」であるということを肝に銘じなければなりません。
 この点からベイズ推定のアルゴリズム(要するにMCMC)は幾分有利となる可能性があります。
 結果のパフォーマンス測定に検定やAICを使うようでは、全く分かっていないというしかありません。
 帰納的手法が力を発揮するのはモデリング(マイニング)の過程のみです。
 株式投資におけるパフォーマンスの判定基準は、後にも先にも唯一つ「演繹的な整合性」だけです。
 これは単に演繹が良いと繰り返す演繹信者ではなく、そうである明確な理由が存在します。
 よって、さらに言ってしまえばノンパラな手法(※)は全てNGです(必ず失敗します。断言できます)。



※海外では機械学習のファイナンス分野への応用に関する書籍が出版されています。
 代表書籍として、以下の2つが挙げられます(両書籍とも1万円以上する専門書です)。
 国内でこれらの書籍を購入している方は、私以外には殆どいないと思います。

 「Computational Intelligence Techniques for Trading and Investment」 2014年
 「Artificial Intelligence in Financial Markets」 2016年

※ここで言うノンパラとは、モデリングの過程で元のパラメータが復元できなくなるような手法を指します。
 「分布のパラメータを仮定しない」という本来の意味とはニュアンスが違うことに留意して下さい。

2017/1/27

◆本日の損益
 +84,380円

◆今月の累積損益
 ▲1,132,580円

2017/1/26

◆本日の損益
 +127,650円

◆今月の累積損益
 ▲1,216,960円

2017/1/25

◆本日の損益
 +217,810円

◆今月の累積損益
 ▲1,344,610円

2017/1/24

◆本日の損益
 +310,890円

◆今月の累積損益
 ▲1,562,420円

2017/1/23

◆本日の損益
 ▲150,090円

◆今月の累積損益
 ▲1,873,310円

バランスカーブの騰落状況

今回はどうでもいいようなお話です。

システムの評価指標の1つとしてドローダウンがあります。
当然ながら最大値と最長期間とも小さいほうが良いのですが、
実運用におけるストレスからはもう少し違った視点が良いのではないか、とも思います。

①上り調子のときの一時的な損失について
 例えば直近で300万稼ぎ、その反発として100万円を失ったとします。
 このとき単純に考えると100万円のドローダウンが発生していることになりますが、
 運用上のストレスはそれほど大きくないと考えられます。

②全く資産が伸びない期間について
 ドローダウン上は0円となりますが、
 資産が伸びずに張り付いたままの期間は長引けば長引くほどツライものです。
 運用上のストレスは蓄積されていると考えられます。

③大きな損失が発生した直後の回復期間について
 一撃で大きな損失が発生した場合、当然ながらその翌日から地道に挽回していくことになります。
 このときシステムがすぐに復調すれば、損失発生直後のストレスは徐々に回復してくるはずです。
 しかしドローダウン期間だけに注目していると、この効用は観測できません。


以上のことからドローダウンだけでなくバランスカーブの騰落状況も合わせて確認するようにしています。
バランスカーブの騰落状況とは、「一ヶ月前の資産に対して現在の資産がどうなっているか」です。
この考え方で、上記の①~③がどのように評価されるか考えて見ます。

①上り調子のときの一時的な損失について
 バランスカーブの騰落状況は+200万円となり、特に問題のない状況のようです。

②全く資産が伸びない期間について
 バランスカーブの騰落状況は±0円となります。
 ただしこの場合、1ヶ月の期待値に対する触れ幅で判断します。
 1ヶ月の期待値が+100万円であれば当然ながらアンダーパフォーム期間であり、
 運用上ストレスがたまっている期間になります。

③大きなドローダウンを食らった直後の回復期間について
 ドローダウン期間が数か月にわたる場合を考えます。
 ドローダウン期間の最中にあっても、1ヶ月前に対して期待値どおりの利益が積み上がっていれば、
 ストレスはほぼ通常通りに回復していると考えられます。


計算期間が一ヶ月では騰落率のばらつきが少々大きいため、
計算期間を長くすれば平滑化されてアウトパフォーム期間、アンダーパフォーム期間が明確になります。
「この考え方が正しい」というわけではなく、「あくまでも多角的な視点が必要だ」ということです。