ねほり.com

何もないから何かみつかる

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

      2020/02/14

新型コロナウイルス感染症の影響によりス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%以上596666.83%4.3778.76%(40.64%)-12.10%
60%以上471373.35%6.71101.93%(52.52%)-12.10%
70%以上332379.18%10.9493.06%(49.67%)-9.56%
80%以上187385.90%19.8659.60%(30.51%)-12.90%
90%以上50490.67%33.5341.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以上」は非常に魅力的です。

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

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

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

 - 2020年(社会人16年), 機械学習, システムトレード, テクノロジー

  関連記事

DTI SIM 3G 100をVAIO Pで使ってみる

月額490円のパケット代定額「DTI SIM 3G 100」を始めてみました。 …

機械学習を使った株価予測(pandas-profiling、create_tree_digraphで可視化する)

株式投資は、予測するものではなくルールに沿って選ぶものです。 その際に、選んだ銘 …

BNF氏の手法の有効性検証(protraシストレ)

最近は人気のないProtraですが、基本的な機能は備わっており、今年になっても使 …

中国烟台に海外出張しました

2011年01月23日(日) 中国・烟台を1月に観光してみる 今回の業務は日曜日 …

機械学習による株価予測(導き出たのは斉藤正章氏の手法)

11回目ではファンダメンタルズ指標を追加することで「AUC=0.70」を超えまし …

機械学習で株価予測(Protraを使ったバックテスト解決編)

前回は「Backtrader」を使って学習済みデータでProtra風バックテスト …

555hn氏の逆張り・順張り複合法有効性検証(システムトレード)

目的を完全に見失ってますが・・ 555hn氏というイザナミを利用されている方がY …

広島テレビ局の一次書類審査の課題「常識と非常識」・・不合格

某テレビ局の第一次書類審査のテーマでした。     現在の「 …

さくらでnode.jsを利用してJavaScriptの勉強

2011年12月21日(水) さくらでnode.jsを利用してJavaScrip …

ストリーミング動画 のファイルをダウンロードする方法

検索で偶然引っ掛かった誰かも知らない人の日記・・・    メ …