AIによる投資
近頃AIが流行っています。ディープラーニングや画像認識・自動運転などなど。
ではAIを使った株式の投資というのはあまり聞かないような気がするなと調べたところ、ありました。
アメリカでは、AIを使ってデイトレードよりももっと細かい時間で株の取引をするというもの、買ってちょっとでも上がったら売るという事です。
もちろん下がっても売る。トータル上がるようにするということです。
しかし、これをしようとすると自動で売買できないといけませんし手数料の問題もあります。ちょっと難しそうです。
日本ではロボットアドバイザーやロボット投資というものもあるようです。
またベンチャーで開発しているところもあるようです。
株投資のAIを作る
では自前で株投資のAIを作れないか?自分自身の株の知識はあまりないので考えたのは外部のオーソリティが発信する情報です。
Yahooファイナンスなどで著名な方々がお勧めする株を自動で収集して上がりそうなのをピックアップする。そんなプログラムを考えました。
よさそうなアイデアにも思えますがイマイチにも思えます。結局人の意見を総合して買うのをおすすめするだけなので自動というより自分で調べて買っても大差ない気がします。
マンスリートレード
アメリカの短い期間でちょっとした利益が出れば売ってしまうというのは私にとっておもしろいヒントでした。
それをヒントに1ヶ月単位ぐらいでちょっとの利益を出すようなプログラムを考えられないか検討することにしました。
例えば1ヶ月に1パーセントの利益があれば100万投資で年間だと12万円の利益になります。投資信託など年間1パーセントとかなので、月1%はかなりのものです。
コンセプトは決まりました。あとは1ヶ月程度の期間上昇する株を見つけるプログラムを書けばいいことになります。
過去のデータを分析する
ひとまず過去のデータを分析することにしました。2014年からの株価をひとまず手に入れました。
このデータには取引日、銘柄コード、市場区分、始値、終値、安値、高値、出来高が入っています。
このデータを[前日からの値上がり幅]、[安値と高値の差]、[出来高]に分類しました。
3つの項目に注目して例えば[安値と高値の差]が激しいのはしばらくしたら株価が上がるとか下がるとか、
[安値と高値の差]と[出来高]の関連性などなんらかの共通点を探そうということです。
株価の値動きを絵にする
上の3つのデータをヒートマップのように色付けして一覧表示してみまることにしました。
色をつけることによって何か共通点がわからないかという実験です。
結果は見事にバラバラ。共通点もなにもよくわかりません。でもこういうのは予想していました。
似た値動きをするお友達株を見つける
企業というのは密接に関連していて値動きの似た株価があります。例えば出版業界が好調なら紙屋さんや製本屋さんも景気が良くなります。
自動車がよければ関連した下請け工場なども景気がよくなります。そんなお友達の値動きをする株価をならべてみます。
さきほどまでバラバラだったヒートマップにも少し共通点が出てきました。
パターンを解析する
前日比、高低差、出来高のあらゆるパターンを調べて、この値動きをすると上がる可能性はこれぐらいとかをプログラムします。
大げさに言えばビッグデータのディープラーニングということです。
テストしてみる
いちおう思ったプログラムはかけたので2014年のテストをしてみます。
例えば2014の2月頭にAIがお勧めの株が3月にどうなるか?そういうテストをしてみます。
結果は・・・大成功!見事に株価は上がりました。では3月4月とテストします。その結果は「・・・」
結果的にうまくいったりいかなかったりです。これではちょっと投資しにくいです。
株投資のAIを作る2
株の指標もデータにする
PER、PBR、ROA、ROEなどその株価が割安かなどの指標がいくつかあります。上で単純な値動きパターンだけではうまくいかなかったので
この部分で堅実な株を探します。大きく上がることはないでしょうが堅い投資になるようプログラムの変更です。
こちらは上でダウンロードしたデータにはなかったので別のところから買いました。2015年からのデータしか買えなかったのですが、しかたがないとします。
ほかにも配当利回りを考慮に入れたり、決算期は値動きがわからなくなるので避けるなどのプログラムを追加しました。
テストしてみる2
テストしたところさっきより良くなりましたがまだもう一息。まだ下がる株を選んでいます。
その下がる株が上がる株の足を引っ張っています。
設定を考える
売る設定
AIプログラムでお勧め株を出しているのになかなかうまくいかない、それは売る設定にあるということに気がつきました。
株を買って、1ヶ月経って結果がどうなったか見ていただけだったので損きり設定をすることにしました。
5%下がったら売る、また上も10%上がったら以降は下がった瞬間売る。どちらにも該当しなければ1ヶ月後に売る。その設定をAIに入れました。
買う設定
株を買うときにもAIのお勧めする株で高価なのはとても買えません。リスクを考えて分散投資したいので安い株をいくつも買うそういう設定も必要です。
具体的には500円以下、1000円以下、1万円以下で試すことにしました。
テストしてみる3
今度はうまくいきました。いろんな時期で試しましたがおおむね3%伸びるようになりました。
シミュレーションする
3年分の本格的シミュレーション
2015年からのデータしかありませんので2015年1月から毎日お勧めする株を出して、上の売り方でシミュレーションします。
500円以下、1000円以下、1万円以下で、オススメ度の点数も3段階で考えました。点数が高い方がより堅実となります。
結果は良好で特に500円以下の一番堅実よりもひとつ点数の少ない株がだいたい100万円ぐらいの投資で3%アップします。
もしや500円以下ならどんな株を買っても上がるのかなと一応、500円以下の株を全部買った場合と比べましたがそれよりも良い結果を出すことができるようになりました。
プログラムの評価は値動きや堅実さなどに点数付けするのですが、あまりにも高得点の株は堅実すぎて逆に上がりにくいということも判明しました。
買ったつもりシミュレーション
プログラムが完成したのが2017年の10月。ここで買ったつもりでリアルに100万円分の銘柄を選んで実際どうなるかためしました。
Yahooファイナンスで500円で買ったのに突然株価が2000円とか5000円とかに増えるのがあります。おそらく株の単位を変更したりとかそういうことなのでしょう。
こういうのはひとまず無視して、残った株の上昇した株と値下がりした株がありましたが、トータルではばっちり3%の利益は確保しました。
おおむね3%の利益は出せますので月100万円投資なら年間36万円の利益になります。月300万円なら100万円。これはかなり嬉しい金額です。
投資する
いよいよ本番運用
本番運用しようとすると日経平均は2万円を上回ってしまいました。どうも今がMAXらしいとのことなので様子を見ますが、さらに上がっていきます。
ということで下がるのを待ってもどんどん上がってしまいますので、もう買うことにしました。
2018年1月から100万円ほどです、いまのところ順調に上がっていますがさてどうなるでしょう。また後日レポートします。
AI株投資
さて出来上がったプログラムはいちおう株価というビッグデータを読み込ませてパターンを学習させることにより賢くなっていくので、いちおうAIプログラムという分類になると思います。
投資結果をアップしてければと思っていますが、これがうまくいけばお勧めする株を公開するなど考えていきたいと思います。
途中経過
1週:889922円投資。1週間で1万5000円ぐらい伸びました
2週:8999グランディハウスが5%下がって途中リタイヤ。-6324円の損きりです。ほか4750ダイサンも3%ほど下がっていますが、他の4銘柄は伸び。1%ぐらいの利益になっています。株の動きはお昼ごろが一番高いと判明。3時の取引終了時には少し下がります。
3週:タウンニュースが一時10%越え。売ったらよかったかも。利益確定も難しい。月曜日のお昼は1.7%の利益だったが3週目は結局0.01%。ほぼプラマイゼロでした。
4週:2018/2/5に日米などの株式市場で株価が急落。買った株も全部下がって損きり設定していたのでほとんど損きりされていました。-4.69%で-41722円です。タウンニュースがまだ利益があったのが不幸中の幸いでした。
会社 | 注文 | 売り | 損益 | 損益% | 評価損益 |
---|---|---|---|---|---|
2481(タウンニュ) | 422.47 | 433 | 11 | 2.49% | 2106 |
4750(ダイサン) | 870.9 | 820 | -51 | -5.84% | -10180 |
6262(ペガサス) | 786.81 | 732 | -55 | -6.97% | -10962 |
8860(フジ住宅) | 884.91 | 846 | -39 | -4.40% | -7782 |
8869(明和地所) | 880.9 | 838 | -43 | -4.87% | -8580 |
8999(グランデH) | 603.62 | 572 | -32 | -5.24% | -6324 |
合計 | 4449.61 | 4241 | -4.69% | -41722 |
こういうことがあるとAIには難しいですね。今回売り時を間違えなければ1.7%ぐらいの利益はあったので、そのあたりは経験のなさが露呈しました。ただし損きりラインだけは設定していたのでなんとかマイナス4万程度ですみました。そして次に考えていることがあるのでチャレンジします!
途中経過2
ちょっと方針を変えました。前日の終値よりも始値が5%下がった企業をターゲットにします。
事前に条件を絞ってビックアップしてすべてお気に入りに入れておきます。(これはめんどうなのでプログラムを書きました)
いよいよ当日の朝、お気に入りの銘柄を見て下がっている企業を7つピックアップ。それぞれ200株ぐらい買いました。
同様に下がったら売るようにしておきます。(3%?ちょっと忘れました)するとどうでしょう。どんどん自動で売られて行きます。
(実は終値と始値の値段の見方をまちがえていたようなのですが)
会社 | 注文 | 売り | 損益 | 損益% | 評価損益 |
---|---|---|---|---|---|
3679(じげん) | 1,046.80 | 1,066.00 | 19.2 | 1.83% | 1920 |
2193(クックパッド) | 633 | 620 | -13.0 | -2.05% | -2600 |
2931(ユーグレナ) | 1,001.00 | 980.2 | -20.8 | -2.08% | -4160 |
3782(ディー・ディー・エス) | 527 | 516.4 | -10.6 | -2.01% | -2120 |
4588(オンコリスバイオファーマ) | 907 | 886 | -21.0 | -2.32% | -4200 |
4814(ネクストウェア) | 422.6 | 409.4 | -13.2 | -3.12% | -2640 |
2492(インフォマート) | 799.8 | 866 | 66.2 | 8.28% | 13240 |
合計 | 5,337.20 | 5,344.00 | -0.01 | -560 |
とりあえず2つだけ上がった株があってマイナス560円程度ですみました。(実際には源泉されて-1,868円・じげんはなぜか100しか買わなかった。)
インフォマートが上がってくれたから助かったのですが、どんどん売られていくのは心臓に悪い・・・ということで別の方法を考えるのでした。