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

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

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

皆さん、こんにちわ。

昨日は祝日で非営業日でしたので今日が機械学習によるシステムトレード2日目です。
前回は日経平均の上昇がうまく予測できていなかったのか、安値で買えず±0円となりました。
機械学習で予測した最安値と最高値で「安値で買って高値で売る」という戦略は変えてない
のですが、やはりなかなかピタリと当てることが出来ないため、

予測高値 * 高値係数
予測安値 * 安値係数

として買えやすく売りやすく調整しようとその係数を探ってみました。
やり方としては過去データと機械学習の予測値を比べて平均二乗誤差という誤差を測る手法を
用いて求めてみました。以下のイメージとなります。

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

少しずつ係数をずらしていって最も誤差が小さくなるポイントを探ります。
ただやっていて思ったのが、

  • そもそもこの誤差は教師データから学習する際に解消されフィットするべきもの
  • 過去データを元に係数を出しその日の予測に当てはめてもあまり意味がない?
  • その日のトレンドのような値を元に算出したら調整できるかも

などなど気づき、いったん取りやめ。過去5日平均を元に算出しようと思ったのですが、
たぶんこの場合は平均ではないですね。何かしらリアルタイムやトレンドのような概念
が必要かもです。

その他にやってみたこととしては為替と世界株式の指数を取り入れてみました。
ですが、為替を目的変数に加え過去データで予測と実績で試算し、上記同様に平均二乗
誤差でモデルを評価しましたが、むしろ予測精度は下がる結果に。こちらもいったん
採用は見送り。世界株式の指数は取得したデータにNaN値が多いのと、データ型の問題
が発生しうまくLassoに組み込めなかったので、こちらも採用見送り。

ということで、結果として今日はいくつかの細かいバグは修正したものもほぼ前日と
変わらない機械学習モデルで抽出した日本株式に投資していくこととします。

株価予測2日目(2021年2月24日[水])

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

Lasso, ラッソ回帰
前回から引き続きLasso(ラッソ)回帰を使用します。Lassoのscikit-learnによる実装です。
前回の記事でLightGBMは精度が悪く不採用と書きましたが、結構色々とバグを含んで
いましたので、もう一度、LightGBMを試してみたいと思っています。

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

主な説明変数と目的変数

機械学習では当てたい、予測したい値を目的変数yとして設定します。
それを説明するための変数を説明変数Xとして複数設定し過去データから学習を繰り返す
のが機械学習の基本となります。
冒頭でも書きましたように為替データを組み込んでみましたが、予測精度としてはむしろ
下げる結果となりましたので、前回と変わっていません。

[本日の対象銘柄]

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

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

基本戦略

「安値で買って高値で売る」という当たり前の理論を元に予測安値で買って予測高値で
売ることを目標にします。ただ冒頭でも申し上げました通り、何かしらの妥当な調整値
で調整しないとピタリといかない限り買えないという現象になります。

他に買いフラグを出す条件として、「予測高値 > 予測安値 == True」、
「予測高値 - 予測安値 >= 40円以上」などです。少なくとも40円くらいはないと
手数料負けしてしまうためざっくり決めたものです。

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

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

code prd_翌日高値 prd_翌日高値_adj prd_翌日安値 prd_翌日安値_adj prd_翌日終値 act_当日終値 スコア 買いフラグ
2413.T 9024 9024 8681 8681 8863 8800 0.9986250517 1
6920.T 14897 14897 14357 14357 14699 14580 0.9986226806 1
3635.T 6441 6441 6313 6313 6377 6370 0.9982105992 1
4568.T 3315 3315 3233 3233 3270 3261 0.9980236494 1
4684.T 19591 19591 19252 19252 19431 19350 0.9979731154 1
3563.T 4363 4363 4230 4230 4310 4275 0.99787799 1
8304.T 2330 2330 2288 2288 2309 2301 0.997780351 1
6753.T 2195 2195 2107 2107 2159 2140 0.9977265499 1
9697.T 6827 6827 6608 6608 6741 6700 0.9976980312 1
7780.T 6912 6912 6720 6720 6818 6810 0.9974700641 1
6845.T 5106 5106 4937 4937 5035 5010 0.9974241301 1
6857.T 9801 9801 9507 9507 9681 9670 0.9973348464 1
7741.T 13238 13238 12926 12926 13121 13060 0.9971863493 1
8111.T 7508 7508 7335 7335 7448 7380 0.9969833774 1
4307.T 3612 3612 3532 3532 3573 3565 0.9969748945 1
3769.T 16164 16164 15661 15661 15937 15830 0.9969055631 1
6701.T 6364 6364 6228 6228 6302 6290 0.9966913354 1
8035.T 47484 47484 45948 45948 46781 46300 0.9965030654 1
8001.T 3283 3283 3227 3227 3259 3250 0.9964705271 1
7751.T 2375 2375 2326 2326 2354 2338 0.9963819888 1
3064.T 7028 7028 6774 6774 6929 6860 0.9962865738 1
9983.T 106090 106090 103470 103470 104986 104900 0.9962512793 1
2579.T 1855 1855 1807 1807 1833 1832 0.9961773436 1
6367.T 22505 22505 21987 21987 22264 22100 0.9961699703 1
4921.T 4129 4129 4031 4031 4099 4080 0.9961682584 1
7013.T 1920 1920 1844 1844 1903 1899 0.9961163102 1
2412.T 2971 2971 2897 2897 2940 2931 0.9961032907 1
6758.T 12185 12185 11891 11891 12058 11980 0.9960213141 1
6594.T 14829 14829 14494 14494 14673 14650 0.9959185201 1
3141.T 3663 3663 3575 3575 3617 3615 0.9958087354 1
7747.T 3323 3323 3217 3217 3283 3280 0.9957378873 1
7532.T 2582 2582 2525 2525 2560 2550 0.9955535101 1
3626.T 2299 2299 2252 2252 2272 2264 0.9955526511 1
7733.T 2278 2278 2227 2227 2255 2240 0.9955059276 1
4581.T 7012 7012 6853 6853 6944 6920 0.995467078 1
9435.T 21453 21453 20912 20912 21266 21200 0.995407565 1
6976.T 5967 5967 5729 5729 5866 5840 0.9953030265 1
7518.T 3363 3363 3260 3260 3327 3300 0.9952559493 1
5938.T 3065 3065 2976 2976 3028 3025 0.9950252419 1
6988.T 9556 9556 9361 9361 9455 9430 0.9949580936 1
7974.T 68968 68968 67259 67259 68143 68030 0.9946688494 1
6406.T 2583 2583 2518 2518 2548 2536 0.9946605873 1
9533.T 6577 6577 6400 6400 6480 6470 0.9946523896 1
9045.T 4988 4988 4848 4848 4932 4910 0.9945442703 1
5901.T 1381 1381 1333 1333 1362 1361 0.9944534678 1
4543.T 4348 4348 4251 4251 4305 4278 0.9943030937 1
9024.T 1333 1333 1282 1282 1306 1298 0.9942536487 1
4063.T 19023 19023 18566 18566 18796 18740 0.99422366 1
9008.T 8537 8537 8279 8279 8423 8380 0.9939213697 1
7616.T 2044 2044 1975 1975 2020 1994 0.993809521 1
6981.T 10011 10011 9763 9763 9905 9882 0.993662322 1
4118.T 4340 4340 4238 4238 4302 4275 0.993649028 1
2175.T 3750 3750 3636 3636 3706 3700 0.9935342869 1
6723.T 1281 1281 1233 1233 1263 1255 0.9934358448 1
5021.T 2526 2526 2451 2451 2495 2485 0.9934355637 1
4530.T 7180 7180 7003 7003 7103 7070 0.9933668148 1
2492.T 1085 1085 1033 1033 1064 1048 0.9933116433 1
3360.T 5929 5929 5810 5810 5882 5880 0.9932987972 1
6098.T 5546 5546 5421 5421 5482 5475 0.993251397 1
8056.T 3300 3300 3215 3215 3274 3245 0.9931036358 1
6762.T 16516 16516 16120 16120 16310 16260 0.9930950706 1
7270.T 2067 2067 2023 2023 2049 2035 0.9930520245 1
5019.T 2765 2765 2709 2709 2745 2742 0.9929464263 1
4911.T 8310 8310 8118 8118 8212 8150 0.9928683938 1
4403.T 5937 5937 5751 5751 5861 5850 0.9927828838 1
5301.T 1540 1540 1498 1498 1531 1515 0.9927803361 1
6965.T 6917 6917 6769 6769 6839 6820 0.9926575187 1
2801.T 7513 7513 7325 7325 7424 7400 0.9925927732 1
9064.T 2890 2890 2817 2817 2858 2854 0.9923456739 1
7988.T 3852 3852 3727 3727 3803 3795 0.9922633994 1
4919.T 6569 6569 6377 6377 6473 6400 0.9921432783 1
1959.T 3427 3427 3359 3359 3393 3390 0.9919759664 1
8354.T 2061 2061 2006 2006 2034 2028 0.9919647537 1
6417.T 2996 2996 2933 2933 2964 2954 0.9919525274 1
9989.T 4096 4096 4034 4034 4064 4060 0.9918352945 1
6674.T 3417 3417 3320 3320 3380 3370 0.9917409397 1
4185.T 3427 3427 3358 3358 3405 3390 0.9915798698 1
7309.T 25762 25762 25178 25178 25419 25405 0.991572038 1
2371.T 3575 3575 3465 3465 3538 3530 0.9915087769 1
4021.T 6327 6327 6160 6160 6241 6240 0.991437391 1
9101.T 3132 3132 3026 3026 3083 3055 0.9914227547 1
7701.T 4434 4434 4325 4325 4375 4365 0.9913988261 1
3436.T 2574 2574 2487 2487 2530 2520 0.9913362024 1
4151.T 3134 3134 3042 3042 3086 3085 0.991231044 1
9984.T 10759 10759 10461 10461 10618 10530 0.9909177521 1
9005.T 1477 1477 1433 1433 1455 1453 0.9908022089 1
5713.T 5700 5700 5511 5511 5614 5578 0.9907477952 1
4751.T 7081 7081 6887 6887 6993 6990 0.9907165451 1
9065.T 4534 4534 4425 4425 4471 4470 0.9905533035 1
9684.T 6582 6582 6382 6382 6525 6510 0.9905141722 1
4666.T 2274 2274 2202 2202 2235 2234 0.9904434111 1
8473.T 3194 3194 3106 3106 3158 3120 0.9903464109 1
1820.T 2625 2625 2570 2570 2597 2596 0.9903288253 1
7276.T 7874 7874 7664 7664 7772 7750 0.990316573 1
3092.T 3676 3676 3534 3534 3614 3590 0.9901713225 1
9766.T 7577 7577 7371 7371 7492 7460 0.9900564588 1

上のテーブルで

  • 機械学習モデルスコア順にソート
  • 1名柄あたり投資金額が30万円であること
  • 元手資金100万円内に収まるよう上から順に

として買ったところ以下となりました。

あまり業種に偏りや特徴は見られません。前日は空運業が目立ちましたけどね。
投資金額は合計で976,300円となりました。(買いが成立した場合)
楽天証券で開場前に指値で買い、セット売り予約しております。

[本日の結果と反省]

本日は予約注文していた4銘柄中の2名柄を買うことが出来ました。
損益は堂々のマイナス13,900円!売買手数料を合わせるとマイナス15,000円!

code 会社名 買値 売値 1株損益 手数料 税金 1単元損益
8304.T あおぞら銀行
7751.T キヤノン
2412.T ベネフィット・ワン 2881 2758 -123 -550 0 -12300
3626.T TIS 2232 2216 -16 -550 0 -1600
合計 5113 4974 -139 -1100 0 -13900

反省点としては色々あるのですが、今後の改善ポイントとしては以下となります。

  • NASDAQ(ナスダック総合指数)というアメリカの株式指数がマイナスで返ってきた
  • NASDAQに連動するかたちで日経平均(日経225)も落ち込んだ
  • NASDAQやその他世界株式指数を取り込んでいないこの機械学習モデルは
    うまく値動きを推測出来なかった

となります。なので今後の改善ポイントとしては

  • せめてNASDAQは説明変数に入れる。
  • ドルも説明変数に入れることを検討する。

その他の気づきとしては

  • 安値で買って高値で売るのは儲かって当然だが時系列で安値→高値が成立する
    場合のみのため、やはり始値で買って高値、もしくは終値で売る方が良いかも
  • 前日夜間の海外取引に連動することが多いため、営業日の朝にそれを考慮し
    機械学習モデルを再生成、推論し直すことが必要
  • やはり±1%の範囲で機械学習による推論を行うことは難しい

上記で特に3点目なのですが、通常の機械学習モデルによる推論では±1%の範囲で
推論が出来ればそれはかなり上出来な方だと思います。
例えば売り上げ予測において、今日の売り上げを100万円と予測して99万円だった
としたら、それは皆んなパチパチパチパチよくあたりましたねーとなると思います。
ですが、株式株価予測においては±1%ではほぼ役に立たないんですね。しかも符号
が重要になりますので実質1方向となります。

今日の負けでかなり改善しないと使い物にならないことが判明しましたので、
明日挑戦するかは微妙なところです。買ったつもりでシミュレーションするかな。

収支

[前日(2021年02月22日)]
¥1,000,000

[本日(2021年02月24日)]
¥985,000
-¥15,000

 *当ブログに掲載している情報はあくまで個人的な株式運用の記録であり、これらの
 情報を用いていかなる損失が発生しても責任は負いません。投資は自己責任で。