機械学習で株価予測(年利・勝率向上の分析)

新型コロナウイルス感染症の影響によりスAmazonでのマスクの値段が7~8倍になっています。

マスクが欲しくても手に入りません。

そんな中・・・・、

 

私を除いて家族全員がインフルエンザAに感染した!

 

コロナは政府が頑張って感染拡大を抑えているから、インフルエンザの方がマスクいるでしょ・・・・。

ダフ屋は滅びろ!

 
 

因みに、株をやっている仲間からは、

50万円稼いだ!

今年の年利は100%超え!

という朗報を貰っています。

 

未曾有の経済危機こそ儲け時!

私は早くストラテジーを作成しないとな・・・・。

 
 

これは、「株の自動売買」を夢見て無駄な人生を費やしている一人の男の物語です。

ROC曲線とAUCの評価指標は0.64と低いですが、現時点で実装したストラテジーをProtraでバックテストを行い傾向を把握しておきます。

平均年利ってどこまで目指せば良いの?

「システムトレードの達人」を使って、独自のトレード手法を構築し平均年利104%を達成しているトレーダー「夢幻」氏という人がいます。

果たして「100%」超えの年利を狙うことは本当に出来るのでしょうか?

 

ググってみると・・・・

  • システムトレードで年利136%を目指すシルバーマンファンド運用日記
  • 株の「システムトレード」で平均年利150%は可能か?

などなど「年利100%」を大きく超えた記事を書いている人も存在します。

「テラス」と「トレジスタ」を点検すると、平均年率100%を超えるシングルタスクの「ストラテジー」が幾つか見られます。
 ・逆張りロングで、平均年率100%を超えるシングルタスク「ストラテジ-」
 ・順張りロングで、平均年率100%を超えるシングルタスク「ストラテジ-」
 ・逆張りショートで、平均年率100%を超えるシングルタスク「ストラテジ-」
はありそうです。
そしてこれらがシグナルを重複しないことが確認出来れば、これらを「マルチストラテジー」に組んで運用・・・ 
「平均年率300%のストラテジー」が可能・ と見えてきました。

 

年利を上げるには、総取引回数を増やす必要があります。

短期シストレの基本的な戦略の能力が「総取引回数×期待値÷保有日数」という公式で表されるとすれば、次の3点が重要です。

  • 総取引回数を増やす
  • 期待値を上げる
  • 保有日数を短くする

これらも目的変数として考慮できれば、より年利の高いストラテジーができるかもしれません。

Protra+機械学習のストラテジーのおさらい

【資金管理条件】

  • 銘柄選定(証券コード毎に時価総額ランキング1位の9銘柄)
  • 1回の購入資金 (100万円)
  • 投資総額 (1000万円)
  • 単利運用

【買いルール】

  • 3日後の始値が50%以上の確率で3%以上上がると判断した場合

【手仕舞いルール】

  • 3日経過

【機械学習データ】

  • [説明変数] 始値、高値、安値、調整後終値、出来高、移動平均、乖離率、RSI、BB、MACD、VR、騰落レシオ、曜日
  • [目的変数] 翌日の始値から3日後の始値が3%以上上がったもの
  • [学習モデル] 勾配ブースティング(LightGBM)
  • [モデル評価] KFold(K-分割交差検証)

学習モデルの分類確率に応じたバックテスト結果

predict_proba() メソッドを使うと、そのクラスに分類される確率が得られます。

その閾値を 0.5~0.9に変更した結果のバックテスト結果を見てみます。

分類確率50%以上を抽出する

利益曲線は次のとおりです。

年度別レポートは次のとおりです。

勝率67%、プロフィットファクター4、年利79%(直近5年間41%)というストラテジーの完成です。

分類確率60%以上を抽出する

利益曲線は次のとおりです。

年度別レポートは次のとおりです。

勝率73%、プロフィットファクター7、年利102%(直近5年間53%)という驚異の年利100%超えです。

分類確率70%以上を抽出する

利益曲線は次のとおりです。

年度別レポートは次のとおりです。

勝率79%、プロフィットファクター11、年利93%(直近5年間50%)という安定性になりました。

分類確率80%以上を抽出する

利益曲線は次のとおりです。

年度別レポートは次のとおりです。

勝率86%、プロフィットファクター20、年利60%(直近5年間31%)という安定性になりました。

分類確率90%以上を抽出する

利益曲線は次のとおりです。

年度別レポートは次のとおりです。

勝率91%、プロフィットファクター34、年利41%(直近5年間24%)という安定性になりました。

考察してみる

上記の結果をまとめてみました。

分類確率 取引数 勝率 PF 年利(直近5年) 最大DD
50%以上 5966 66.83% 4.37 78.76%(40.64%) -12.10%
60%以上 4713 73.35% 6.71 101.93%(52.52%) -12.10%
70%以上 3323 79.18% 10.94 93.06%(49.67%) -9.56%
80%以上 1873 85.90% 19.86 59.60%(30.51%) -12.90%
90%以上 504 90.67% 33.53 41.25%(23.71%) -12.90%

 

想定どおり、分類確率が上がるにつれ取引数が下がり、勝率やプロフィットファクターが上がっています。

年利は分類確率50%以上の場合を除いて下がるようです。

ただ「総取引回数を増やす」「期待値を上げる」「保有日数を短くする」が年利向上のセオリーなので、純粋に対象銘柄を増やせば年利は上がると思ってます。

フォワードテストを兼ねた「日経255採用銘柄」でバックテスト

さあお待ちかね!

日経255採用銘柄全てを使ってバックテストをしてみます。

エラー「Exception: inputs are all NaN」に遭遇

過去の株価がない(空もしくは0)のに、talibで計算しようとしたためにエラーとなったようです。

このエラーが出る銘柄は、株価データがないので削除すればよいでしょう。

バックテスト結果

分類確率90%以上だけを使ったバックテスト結果です。

計算時間は次のとおりです。

  • 機械学習部分 10分
  • Protraのバックテスト部分 35分

Protraのバックテスト時間が長いです・・・・。

なお「1998/01/05~2015/12/14」を利用して学習させています。

つまり「2015/12/15~2020/01/24」が未知の予測(フォワードテスト)となります。

利益曲線は次のとおりです。

さあ!どこからがフォワードテストか分かるかな?

 

・・・・という質問の意味すらないぐらいの曲がりっぷり!!

 

直角切り!!

 

フォワードテストを始めても最初の一ヶ月ぐらいはプラス傾向になるかな・・・と思ってましたが、全くそのような結果になっていません。

このままでは、実践投入は不可能です。

まとめ

分類確率90%以上の「勝率9割以上」「プロフィットファクター30以上」は非常に魅力的です。

が・・・・、結局フォワードテスト(もどき)な結果では、キレイにカーブが寝てしまいました。

これを回避するの無理なのでは・・・・?

「株の自動売買」は夢のまた夢なのかな・・・・。

タイトルとURLをコピーしました