機械学習の株式投資で10億円を目指す!

機械学習によるデイトレ株式投資(シストレ、システムトレード)で10億円の資産形成を企んでいます。機械学習、データサイエンス、AI(人工知能)のアルゴリズムを駆使したら株式市場(マーケット)に勝つことは出来るのか?

機械学習による株価予測3日目(2021年2月26日)

こんにちわ。

昨日(2021年2月25日)は株を買いませんでした。
機械学習による株価予測を諦めたわけではないのですが、前日のマイナス13,900円を受けて
そもそもモデルがまだまだ予想できていないことに改めて気付き諸々修正を行いました。
そうすると昨日は日経平均全体的に上昇、予測せずとも買ってれば当たったではないかと。
まぁ、株なんて大体そんなもんですよね。

昨日行った主な修正点

  • アメリカ株の指数に連動して翌日の日本株が上がる、または下がるので教師データに
    アメリカ株指数を取り入れ
  • 上記のついでに前回採用しなかった円ドル為替を説明変数に取り入れ
  • アメリカ株を入れるとなると早朝に戻ってくるので予測処理→買い予約(手動)が間に
    合わなくなるため、処理を細分化、効率化、マルチプロセス化

まずアメリカ株の指数取り入れですが、S&P500やNASDAQなどの米株指数を取得し
説明変数に取り入れました。これら米株指数と日経225の相関係数を見てみたのですが、
0.88とかでかなり高い相関を示していました。米ドル為替の相関係数は-0.44程度で
まぁ弱い相関というところでしょうか。
機械学習でもデータ分析でもまずは相関を見てみる。基本ですね。

上記の処理を株式市場の始まりに合わせるには午前9時までに予測から買い予約まで
終わらせないといけません。ここは正確な時間が分かっていないのですが、おそらく
前日の米株指数を取得できるのが午前5時以降なので、午前5時から米株指数を取得
して、それからデータ前処理を終わらせ教師データを生成し予測を行い、かつ手動で
買い予約まで終わらせないといけません。今のままでは到底処理が間に合わなかった
ので処理を細分化し、かつpythonによるマルチプロセス化。pythonでマルチプロセス
初めて使ったのですが、随分簡単でした。
と、書いていて気付いたのですが、そもそも学習処理には当日データは入れなくても
良いかなと思えてきました。運用が回らなくなってきたら前々日までのデータで学習
を行い、予測には当日分のみ利用する。そうするとデータ前処理は前日までに終わら
せておくことが出来そうです。

今日、実際に株式を購入するかは迷ったのですが、なんとなく今日も上がりそうな
気がするので投資しておきたいので(全く理論的ではない理由)、昨日までの理論で
買いフラグの株式銘柄を抽出、購買までやっていこうと思います。

株価予測3日目(2021年2月26日[金])

[本日使用した機械学習モデル]

Lasso, ラッソ回帰
引き続きLassoによる回帰を使用します。

[本日使用した主な説明変数と目的変数]

主な説明変数と目的変数

冒頭にも書きましたが、説明変数にアメリ株価指数と円ドル為替を取り入れ。
あと今まで予測していなかった始値も新たに予測するようにしました。

[本日の対象銘柄]

本日も前回と変わらずTOPIX 500を対象としこの中から買うべき銘柄を抽出します。

[機械学習が示した買いフラグ銘柄]

基本戦略

「安値で買って高値で売る」今までこの戦略を取ろうとしてきたのですが、
仮に予測安値が当たって、予測高値が当たったとしてもそこに時系列の概念がないと
儲けは発生しないため、「始値で買って高値で売る」とした方が良いかなと思えて
きました。本当はここもしっかりとシミュレーションして見極めないといけないの
ですが、今日はとりあえず予測した始値指値予約し高値でセット売り予約します。

機械学習が示した買いフラグ銘柄

Lasso機械学習モデルが予測した本日の買い銘柄と株価は以下となりました。

code prd_翌日始値 prd_翌日高値 prd_翌日高値_adj prd_翌日安値 prd_翌日安値_adj prd_翌日終値 スコア 買いフラグ 前日終値
2413.T 8603 8795 8707 8481 8566 8643 0.9988084925 1 8539
2801.T 7340 7454 7380 7229 7301 7344 0.9936502846 1 7330
3092.T 3510 3583 3547 3462 3497 3532 0.9914969294 1 3475
3659.T 3527 3578 3543 3466 3501 3513 0.9941339245 1 3500
3769.T 14769 15100 14949 14537 14683 14826 0.9973454072 1 14760
4552.T 3535 3629 3592 3472 3506 3530 0.9969356525 1 3520
4911.T 8193 8289 8206 8066 8146 8165 0.9936740813 1 8148
4919.T 6176 6293 6230 6109 6171 6211 0.9931499227 1 6160
5947.T 10949 11110 10999 10786 10894 10960 0.9933422163 1 10940
6586.T 4621 4705 4658 4561 4606 4622 0.98754208 1 4615
6753.T 2052 2103 2082 2016 2036 2066 0.9980328907 1 2040
6758.T 11615 11788 11670 11463 11577 11667 0.9963296356 1 11570
6963.T 10976 11143 11032 10796 10904 10957 0.9877731912 1 10890
6976.T 5601 5736 5679 5513 5568 5653 0.995890461 1 5590
7476.T 13954 14182 14040 13665 13802 13904 0.9976833565 1 13900
7518.T 3372 3442 3408 3321 3354 3390 0.9958921737 1 3340
7735.T 8881 9090 8999 8780 8867 8926 0.9909551891 1 8880
7741.T 12682 12870 12742 12484 12609 12685 0.9974340419 1 12680
7780.T 6486 6615 6549 6380 6444 6485 0.9977977062 1 6480
7974.T 68766 69666 68970 67696 68373 68668 0.9953884667 1 68360
8369.T 6662 6763 6696 6584 6650 6677 0.9910501734 1 6640
9021.T 6713 6800 6732 6594 6660 6676 0.9944441185 1 6667
9062.T 8103 8204 8121 7998 8078 8087 0.9859276201 1 8080

 今回は1株あたりの上昇が大きい順で30万円以内、元手資金残り¥985,000-以内で買って
いくこととします。[prd_翌日始値]で指値予約し[prd_翌日高値_adj]売り予約です。

code prd_翌日始値 prd_翌日高値 prd_翌日高値_adj prd_翌日安値 prd_翌日安値_adj prd_翌日終値 スコア 買いフラグ 前日終値 prof 買値 売値 想定損益 会社名
4552.T 3535 3629 3592 3472 3506 3530 0.9969356525 1 3520 57 353500 359200 5700 JCRファーマ
3092.T 3510 3583 3547 3462 3497 3532 0.9914969294 1 3475 37 351000 354700 3700 ZOZO
6753.T 2052 2103 2082 2016 2036 2066 0.9980328907 1 2040 30 205200 208200 3000 シャープ

こんなやり方では勝てないでしょうね。分かっています。
デイトレを始めたほとんどの人はこうやって資産を溶かしていくのが分かります。
もっと統計的に検証しシミュレーションを行い、答え合わせを行って新たにモデルに
組み込むというサイクルを回していく必要があります。
ただ同時に実際に買ってみるというのも大事なのかなと。シミュレーションだけとは
緊張感が違いますw

[本日の結果と反省]

実際に開場前に予約までしたのですが、以下のニュースを見て取り消し。
今日は乗らずに粛々とモデルを調整しつつ来週に備えるとします。

【米長期金利一時1.61% 株価大幅安、各国で警戒広がる】

f:id:ml-trade:20210226081745p:plain