python, 投資, 統計・機械学習

上昇した日の翌日の収益率分布を全体の分布と比較する

(jupyter notebook内に書いていることと重複しているが気にしない。jupyter notebookをhtml変換して記事に直接貼り付けたいが、簡易でうまくいく方法が今のところ見つかっていないため、説明部分などは記事本文にコピペしている。)

E-mini S&P500先物の値動き予測をするために使えそうなシグナルを探索する。シグナルは売りや買いを入れるための判断条件・ルールのようなものとする。

シグナルの信頼性を比較するため、また実際に利用するために、基本的に点推定ではなく分布推定をする。点推定の場合、単に上昇確率=◯◯%などとなるがこの場合、1ポイント以上上昇とか下落が10ポイント以内におさまるとかの確率を知りたいときにいちいち元のデータから計算し直す必要がある。これに対して分布を推定しておけば、後はその分布を元にして確率を計算できるため実際に使用するときに知りたい確率を容易に計算できて便利。

  • 上昇した足の翌足の収益率分布
  • 連続でN足下落した翌足の収益率分布
  • 銘柄Aが上昇した足の翌足でのESの収益率分布
  • 銘柄Aが下落した足の翌足でのESの収益率分布
  • 銘柄Aが2日連続下落した足の翌足でのESの収益率分布

などの分布を片っぱしから推定していく。このルールだけを与えたら自動で分布を推定して結果を記録していくような仕組みがあると良いが、別途作成予定。

まずは、上昇した日の翌日には下落するのではないかという仮説を検証する。それがはっきりしたシグナルになるようであれば、上昇した日の翌日に売りで仕掛ければ収益がプラスになると期待できる。

結論としては、特に驚きはないが、上昇日の翌日という単純な条件では収益率に変化は見られなかった。

今回の分析の目的は、手始めに単純なルールで分布の推定をやってみることで、この流れをどう自動化するかのイメージを持つこと。他にも、他銘柄のデータの条件をESのシグナルとする場合などもやってみる必要はあるが、基本的には、

  • 入力
    • 条件絞り込みに使うデータ
    • ルールのロジック
  • 出力
    • 全期間の分布
    • 条件絞り込みによる事後分布

という入出力ができる機能を作ればよく、あとは入力をリストで受け取って出力を順に記録していくようなツールにすれば良さそう。また、結果の分布を動的に試せるツールも欲しい。これがあれば、具体的に◯◯以上上昇する確率などを計算してみることができる。また別途作成中のtomatoraderにルールを与えると損益シミュレーションをしてくれるようになっているとなお良い。というかゆくゆく必須。

以下の考察ができたことも今回の分析の収穫。

t分布のパラメータνについて

t分布を比較する際、パラメータνを固定した方が良いのか。当てはまりの良さを比較する場合は、対数尤度やAICやBICなどの指標を使うから、パラメータを固定する必要はないし、正規分布とt分布の比較など他分布同士でも良い。また、異なる分布であってもそれを元に計算された「◯◯以上上昇する確率」などの具体的な条件付き確率についても比較できる。

しかし、平均や分散を比較する場合、例えば正規分布とt分布の平均や分散を比較することはできない。なぜならこの2つはそもそも異なる分布であり、同じデータに対してそれぞれの分布を当てはめた場合でも平均と分散はそれぞれ異なる値になるから。

とすると、νの値が異なる2つのt分布がある時、平均や分散を直接比較することはできない。従って、以下のようになるだろう。

  • 当てはまりの良さを比較する場合:νを固定する必要はない(異なる分布同士を比較可能)
  • 各々の分布から計算された確率の比較:νを固定する必要はない(そもそも分布の比較ではない)
  • 平均と分散の値を直接比較する場合:νを固定する必要がある

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です