はじめに
株式予測。pythonなどで機械学習の勉強をした人なら一度は作ってみたいと思うものじゃないでしょうか?
自分も機械学習を勉強してからずっと興味があって、いつか実装してみたいと思っていました。面倒くさがって先延ばしにしていましたが、今回その実装と一ヶ月の運用を行なったのでその結果をまとめていきたいと思います!
分かりやすいように運用資産は10万スタートです。(引っ越ししたばかりで家具も全然揃ってないのに、お金掛けるところ間違えてます笑)
結果
運用期間は 2022/3/24~2022/3/22 の一ヶ月間です。
まずは日経平均株価からチェックしてみましょう。
この期間における日経平均株価の推移を見てみると、基本的には下落相場ですね。続いて自分の運用結果はこちらです。
# グラフ化
df = pd.read_csv("/content/drive/MyDrive/kabucom/AssetTransitionDay.csv", encoding="shift-jis")
df[['日付', '商品預り合計']].set_index('日付').sort_values('日付').plot()
*運用結果が直近一ヶ月分しかダウンロードできず、3/28時点で98,700と-1,300だったので、少し下からグラフはスタートしてしまっています。
最終的な預かり資産は 116,900 で、+16.9% という自分でもびっくりな勝ち方をしてしまいました。。。
(記事のネタになれば良いと思って三ヶ月ほど運用してみようと思っただけだったので。)
日経平均が全体的に下がっている中、これだけ勝てていれば上出来すぎますね。
単純に上振れた可能性も高いので、半年から一年ほどスパンを取って、今後も毎月報告して行けたらと思います。
考え方
一番知りたいのはここですよね。利益が出るにしても出ないにしても。。。
自分は投資の勉強も好きで、少しかじっていた時期もあったのですが、投資の格言に「マイルールを貫け」みたいな文言があったりするんですよね。(細かい言い回しは覚えていません。。)
自分で投資していた時もこれは感じていました。
ただ、毎日チャート見ているとこれがまた難しいんですよね。ここをシステムに任せることができたのも良かったとポイントだと思っています。
愚直に自分の決めたルールに沿って運用することが大事である。これを実行してもらうのにシステムほど便利なものはありません。
そこで、APIで株取引を行えるカブコム証券を証券口座に選んでいます。
次に・・・
自分の取った方針は、勝てる銘柄を探してもらう、という方針です。
実際に自分が銘柄を買うときも、業績情報や、直近の値動き等から買う銘柄を決定します。この部分を機械的に処理してもらえれば時短にもなるのじゃないかと考えていました。
ここをLSTMに代用してもらうといった実装をおこないました。
またもう一つの考えとして中期的に株価をみようと考えました。
個人投資家が戦うならば、なるべく長期的に見るべきと投資の世界ではよく言われていることです。そもそも種銭が少ないですし、短期ではより大きいお金動かしている人の養分にしかなれないですから。(一部例外はありますが)そこで単純に一週間後、月曜日から金曜日までの上がり幅を予測するようなモデルを構築しようと考えました。
本当はコードも載せるつもりだったのですが、下手に勝っている手前、一旦保留します。データの前処理部分は別途記事にしたいと思っています。
また、実は一ヶ月間ほど構築したモデルの検証に充てていました。今回のモデルではその時の気づきが大きかったと思います。
正直なところ、予測した結果だけではあまり良い精度は得られていませんでした。
一方でうまく予測が噛み合っている日もありました。
そこで新たに予測精度の信頼値も同時に推定するようにモデルを改良しました。
信頼値が低い時は証券を買うことはせず、信頼値が高い時のみ取引をおこなうという言わばマイルールを作成し、実行した結果が、+16.9%という数値に繋がったと思います。
おわりに
株式投資には大きく二つの分析手法があり、現状の分析はテクニカル分析寄りです。分析には大きく2種類あり、ファンダズメンタル分析、テクニカル分析の二つです。LSTMで処理している以上、どうしてもその性質はテクニカル分析になってしまいます。
AIにファンダズメンタルはまだ難しいですしね。
ただ、twitterにおける単語数の推移とかを上手にパラメータに落としこめればファンダズメンタル的な要素も組み込めるんじゃないかなと思っています。これは気が向いたら実装してみたいと思っています!
今月の結果は正直運の要素も大きかったと思うので、今後の更新も見ていただけたらと思います!
以上!!