やること
日経新聞(web)に掲載されている上場企業の記事を記事を感情分析して、
株価の取引をした場合、どの程度の利回りになるか検証する!
(結果的にできていません。)
手順
上場企業に関する記事の感情分析結果と、株価の相関関係を計算、記録する。
- 日経新聞の記事から、上場企業に関する記事を取得し記事の内容を感情分析(ポジティブ or ネガティブ)する。
- 特定の会社に紐づく記事の感情分析結果と、株価の値動きに相関関係があるか計算(相関係数を1.0から-1.0で計算)してDBに保存。
企業別の記事:
https://www.nikkei.com/nkd/company/news/?scode=7203&ba=1
株価と、日経新聞の記事の感情分析結果に強い相関関係がある企業の株を仮想取引した場合の利回りを検証する。
相関係数が0.5以上の企業の速報ニュースから、株の仮想取引処理をして利回りを記録する。
ポジティブな記事なら「買い」、ネガティブな記事なら「売り」。24時間後に反対取引を記録する。
あくまで株価を記録して利回りを計算するだけで、実際の売買はしない。一定期間、仮想取引を繰り返した場合の利回りを検証する。
速報ニュース:
https://www.nikkei.com/news/category/company/
技術的なところ
感情分析API
記事内容の感情分析はGoogleのAPIを利用しています。文章を与えると、感情分析結果を1.0から-1.0の間で返します。
https://cloud.google.com/natural-language/docs/analyzing-sentiment?hl=ja
相関関係の計算処理
記事の感情分析結果と株価の値動きの相関係数の計算は、
「ゼロからはじめるデータサイエンス ―Pythonで学ぶ基本と実践」(オライリー)の74Pの処理をコピペしています。
https://github.com/joelgrus/data-science-from-scratch/blob/master/code-python3/states.txt
株価の取得
1日単位の株価取得にQuandlを使用
日経新聞の記事と、株価の相関関係の検証結果
日経新聞(web)の上場企業に紐づく全ての記事を取得し感情分析結果を記録し、株価の値動きとの相関関係を計算しました。
1つの企業に対し1日に複数の記事があることを想定し、1日に公開された記事の感情分析結果の平均値と、
1日の株価の値動きの相関係数を計算しました。取得した記事数は約33000記事でした。
日経新聞の記事と、株価に強い正の相関関係がある(相関係数 0.5以上)の企業
- 計算対象は過去2年間です。
計算対象の上場企業数は3739社。その内、25社でした。
これらの企業の株価は日経新聞の記事と強い相関関係がありそう?です。
証券コード | 企業名 | 市場 | 記事の感情分析結果と株価変動の相関係数 |
---|---|---|---|
8876 | (株)リログループ | 東証1部 | 0.797528717991886 |
6627 | (株)テラプローブ | マザーズ | 0.784256852802332 |
5195 | バンドー化学(株) | 東証1部 | 0.691354389747135 |
2001 | 日本製粉(株) | 東証1部 | 0.683619801985038 |
4978 | (株)リプロセル | 東証JQG | 0.652835959528794 |
3686 | (株)ディー・エル・イー | 東証1部 | 0.614525081805451 |
6505 | 東洋電機製造(株) | 東証1部 | 0.61361469964872 |
7280 | (株)ミツバ | 東証1部 | 0.610410562405695 |
6176 | (株)ブランジスタ | マザーズ | 0.599923032041581 |
3069 | (株)アスラポート・ダイニング | 東証JQS | 0.587528945001933 |
2440 | (株)ぐるなび | 東証1部 | 0.571951779996269 |
6537 | WASHハウス(株) | マザーズ | 0.564046872692687 |
6591 | 西芝電機(株) | 東証2部 | 0.563963007617656 |
2788 | アップルインターナショナル(株) | 東証2部 | 0.563422976229906 |
2692 | 伊藤忠食品(株) | 東証1部 | 0.55537592428196 |
4800 | オリコン(株) | 東証JQS | 0.537013593249629 |
7298 | 八千代工業(株) | 東証JQS | 0.534355967403926 |
4681 | リゾートトラスト(株) | 東証1部 | 0.532854031601563 |
2127 | (株)日本M&Aセンター | 東証1部 | 0.527132120553049 |
6534 | D.A.コンソーシアムホールディングス(株) | 東証2部 | 0.517179635411255 |
4536 | 参天製薬(株) | 東証1部 | 0.512324530213677 |
6058 | (株)ベクトル | 東証1部 | 0.512312624739171 |
6651 | 日東工業(株) | 東証1部 | 0.510589889763407 |
3053 | (株)ペッパーフードサービス | 東証2部 | 0.504080378468654 |
7915 | 日本写真印刷(株) | 東証1部 | 0.5004307798635 |
相関関係の強い25社の速報ニュースから仮想取引しようとした結果
1週間くらい、速報ニュースから仮想取引するプログラムを起動していますが1件も仮想取引できる条件を満たせませんでした。
要因として次のものがありそうです。
1. 記事の感情分析結果が強いポジティブ(0.5以上)、強いネガティブ(-0.5以下)の場合、
それぞれ買い、売りとして仮想取引しようとしましたが、そんな記事が少ない。
- 対象の企業数が25社と少ないため、対象となる記事が少ない。
結果的に、この方法で株式を取引した場合、どの程度の利回りなのか分かっていません。
もう少し、条件を緩くして再チャレンジしようと思います。
そもそも、3739社中25社しか対象とならないやり方は間違っているような気もしますが。。。。