月次成績-2016年11月

11月は好調でした。

161130-1.png

2016/11/30

◆本日の損益
 +278,600円

◆今月の累積損益
 +3,255,050円

2016/11/29

◆本日の損益
 ▲121,470円

◆今月の累積損益
 +2,976,450円

2016/11/28

◆本日の損益
 ▲68,950円

◆今月の累積損益
 +3,097,920円

2016/11/25

◆本日の損益
 +460,350円

◆今月の累積損益
 +3,166,870円

2016/11/24

◆本日の損益
 +774,850円

◆今月の累積損益
 +2,706,520円

AI投資(4)

「金融でAI活用進む 日銀の政策や株価予測」 -日経電子版、8月26日
「みずほ証券、AIで株売買 機関投資家向け」 -日経電子版、10月18日

野村証券、みずほ証券ともに、AIによる株価予測技術の開発に邁進しているようです。
これもフィンテックの一分野ということなのでしょう。
具体的に両証券会社がどのような手法をベースとしているのか、
あくまでもWEB記事がベースとなりますが、考察としてまとめてみます。

1.WEB記事の要約
 過去の記事も踏まえて分かりやすく対比して要約すると以下のようになります。
 ざっと見た感じでは、両社ともAI手法、予測対象は殆ど同じであると言えます。

 (1)野村証券
  ・2016年4月から一部の機関投資家向けに試験的なサービス提供を開始。
  ・AI手法はディープラーニング。
  ・対象銘柄はTOPIX500、5分後の株価を予測。
  ・使用するデータは株価の過去の乖離率など
  ・的中率は100%ではないが(当然ですが笑)、多くの銘柄で大量の注文を執行する際に有効。
  ・AIベンチャーであるHEROZと共同開発。

 (2)みずほ証券
  ・2016年11月末にも機関投資家向けにサービス提供を開始。
  ・AI手法はディープラーニング。
  ・対象銘柄はTOPIX500(順次拡大)、30分~1時間後の株価の上昇/下落幅を予測。
  ・使用するデータは個別銘柄ごとの注文状況や売買ボリューム、過去の値動きなどのデータ
  ・的中率は8割以上に達しているという(これについては後述します)。
   注文金額の0.01%程度の運用成績改善が見込める。システムの利用料は徴収しない。
  ・AIは自社開発。


2.具体的な手法
 過去にみずほ証券がディープラーニングの株価予測への応用について発表した資料があります。
 それを元に不明な部分は予測を交えながら具体的な手法を考察してみます。

 ・対象銘柄
  TOPIX CORE30
  上記は発表時点であり、その後対象をTOPIX500へ拡張したものと思われます。
 ・AI手法
  DBN(Deep Belief Network)を採用。
  DBNはディープラーニングの初期モデルであり、各層間のモデルを
  AE(Auto Encoder)でなくRBM(Restricted Boltzmann Machine)で構成します。
  これについての詳細な説明は省きます。
 ・入力変数
  7800(個別株データ3900+日経先物データ3900)を1データセットとします。
  3900の内訳は、チャート情報が500、板情報が3200、Tick情報が200となります。
 ・出力変数
  上記の1データセットに対応する解答ラベルが1つ。これについては後述します。
 ・モデル数
  予測開始時点毎に異なるDBNモデルを作成するようです。
  (9:00時点の予測はDBN1、10:00時点の予測はDBN2、・・・など)
 ・サンプル数
  上記のデータセットが30銘柄×数年分と考えられます。
  学習期間を20年とすると30×240営業日×20=144000サンプル/モデルとなります。
 ・層数
  入力層(7800)→中間層1(4000)→中間層2(3500)→中間層3(3000)→中間層4(2500)
  →中間層5(2000)→中間層6(1500)→出力層(1)
  入力層~中間層6がそれぞれRBMであり、500変数ずつ次元削減されています。
  中間層6~出力層が識別部と考えられます。
 
 入力変数の数に対してサンプル数が少なめですが、特徴抽出では経験上それなりの精度が出ます。
 また、最終段の中間層6(1500)→出力層(1)は、ドロップアウトなどのフィッティング抑止策を
 かなりキツめに取る必要があると思います。


3.考察
 上記のディープラーニングモデルの出力変数(解答ラベル)ですが、実は資料には明記されていません。
 WEB記事の内容からは、「みずほのAIは1時間後の株価の上昇を的中率8割で予想できる」
 などと読み取れてしまいますが、実際にはそんなことはありえません。
 もしもそうであった場合、運用成績の改善が0.01%に留まるわけがありません。

 おそらく、みずほ証券の予測システムの解答ラベルは、
 「1時間後の騰落が±0.5%に収まるかどうか」、即ちボラティリティの予測であった筈です。
 これであれば的中率8割というのは納得できます。
 株価のボラティリティは基本的にLAG1相関が存在し、比較的容易に予測できるからです。
 この予測内容であれば、直後にボラティリティの高まる銘柄に対してアラートを出すことができ、
 それに従ってリスク調整すればポートフォリオの安定性を向上でき、運用成績の改善に繋がります。

 当然ながら価格の動く方向も予測しようとした筈ですが、それほど有意な結果は得られていないと思います。
 論文紹介(4)で触れたように、
 そもそもディープラーニングで根本的な予測力が向上することはありえないからです。



最後にAIの権威であるベン・ゲーツェル氏(香港のファンドAidyiaチーフサイエンティスト)の言葉です。

-ディープラーニングは写真や言葉など特定のパターンをもつデータを分析するのには適しているが、
 このような種類のパターンが金融市場でも見られるとは限らない。
 もしパターンが見られたとしても、それが必ずしも役に立つわけではない。
 なぜなら、誰でもそのパターンを見つけ出すことができるからだ。
 「人工知能が人間に買いを指示するAI金融時代の到来」 2016年2月25日、WIREDより抜粋


私も当然ながらこの意見に賛成です。
意味もなく感覚で賛成と言っているわけではなく、きちんとした理由があります。
その理由についてはそのうち記事にしたいと思います。
(この話、それほど興味がある人がいるとは思えないので他のネタが切れた頃だと思います)


2016/11/22

◆本日の損益
 +300,330円

◆今月の累積損益
 +1,931,670円

2016/11/21

◆本日の損益
 +52,930円

◆今月の累積損益
 +1,631,340円

期待値の確からしさ

前回の記事で記述した「期待値の確からしさ」について考察します。

期待値の確からしさは本来であれば理論的に求めるべきなのですが、
現実のデータは複雑に絡み合っており解が求まることはまずありません。
よってこれを求めるには実践的な手法に頼るしかありません。

まずは以下のバランスカーブをご覧下さい。
これはある単純なファクターモデルについてシミュレーションした結果です。

161118-1.png

ベースとなるモデルは説明変数Aと目的変数Zの2つの変数から成り、AとZに不変の相関ρが存在します。
まずAとZについて、正規分布且つ互いに相関ρを持つ乱数をそれぞれN個発生させてデータセットを作り、
これをインサンプルデータとして単純な回帰モデルを求めます。
続いてもう一度乱数をそれぞれM個発生させて、こちらをアウトオブサンプルのデータセットとして
先ほど求めた回帰モデルの精度を検証します。
このバランスカーブが得られたとき、両者の相関係数はどれくらいでしょうか?



種明かしをすると「相関係数は0」です。
同様の内容のシミュレーションを255回繰り返すと以下のようになり、
上記のデータは255回のうちのベストデータとなります。
(255回というのはエクセルの描画限度であり、通常であれば1000回以上は試行します)

161118-2.png

もうお分かりでしょうが、
期待値の確からしさを求めるためにはこのようなランダムシミュレーションを行うしかありません。
これはモンテカルロ法と呼ばれる手法であり、統計の世界では一般的に使われています。
システムの信頼性を把握するためにはリターンの母集団に対して検定を行う手法もありますが、
そのやり方ではこのようなランダム効果の影響を排除することはできません。

もしもAとZの相関係数がρ=0.1の場合は以下のようになります。
ここでもベストデータとモンテカルロシミュレーション結果全体の両方を記載しておきます。

161118-3.png  161118-4.png



では実際のストラテジーの期待値の確からしさの求め方ですが、
十分な母数のトレード対象を確保しつつブートストラップ法によりバランスカーブのばらつきを算出します。
ブートストラップ法はモンテカルロ法の一種であり、
母集団からランダムに復元抽出を繰り返すことで、得られた結果から母集団の性質を推測するものです。
当然ながら、得られたバランスカーブの中で最も中央に位置する代表特性の期待値は、
母集団そのものの期待値とほぼ一致するはずです。
また優れたストラテジーでは代表特性まわりのばらつきが小さくなるはずです。

例えば、よく見掛けるようなトレード数2000回、期待値2%のストラテジーがあったとします。
この場合、この結果が「期待値2%の10万個程度の母集団」から得られた結果であれば信頼できるでしょう。
しかし多くの場合はそうではない筈です。
おそらく「期待値0.1%の10万個程度の母集団」からどうにかして集めた2000個だと思います。
これで実運用で期待値2%が出ると考えるほうがおかしいと思いませんか?

あなたのストラテジーは、上記のように255個のうち最も良いものを選ぶ作り方になっていませんか?
様々な条件を追加し母集団を削りとって都合の良いデータを選別する作業になっていませんか?
目的はバックテストのバランスカーブをきれいにすることでなく、実運用できるストラテジーを作ることです。
とりあえずで追加する「移動平均乖離率≧0」などという条件が、
どれほど統計的な信頼性を損なう愚行であるか、理解できると思います。

少しキツ目の口調になってしまいましたが、ご容赦下さい。