株価
感情分析

日経新聞(web)の記事の感情分析し、株式取引した場合どうなるか

More than 1 year has passed since last update.

やること

日経新聞(web)に掲載されている上場企業の記事を記事を感情分析して、
株価の取引をした場合、どの程度の利回りになるか検証する!
(結果的にできていません。)

手順

上場企業に関する記事の感情分析結果と、株価の相関関係を計算、記録する。

  1. 日経新聞の記事から、上場企業に関する記事を取得し記事の内容を感情分析(ポジティブ or ネガティブ)する。
  2. 特定の会社に紐づく記事の感情分析結果と、株価の値動きに相関関係があるか計算(相関係数を1.0から-1.0で計算)してDBに保存。

企業別の記事:
https://www.nikkei.com/nkd/company/news/?scode=7203&ba=1

株価と、日経新聞の記事の感情分析結果に強い相関関係がある企業の株を仮想取引した場合の利回りを検証する。

  1. 相関係数が0.5以上の企業の速報ニュースから、株の仮想取引処理をして利回りを記録する。
    ポジティブな記事なら「買い」、ネガティブな記事なら「売り」。24時間後に反対取引を記録する。
    あくまで株価を記録して利回りを計算するだけで、実際の売買はしない。

  2. 一定期間、仮想取引を繰り返した場合の利回りを検証する。

速報ニュース:
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を使用

https://www.quandl.com/data/TSE-Tokyo-Stock-Exchange:

日経新聞の記事と、株価の相関関係の検証結果

  • 日経新聞(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以下)の場合、
それぞれ買い、売りとして仮想取引しようとしましたが、そんな記事が少ない。

  1. 対象の企業数が25社と少ないため、対象となる記事が少ない。

結果的に、この方法で株式を取引した場合、どの程度の利回りなのか分かっていません。

もう少し、条件を緩くして再チャレンジしようと思います。

そもそも、3739社中25社しか対象とならないやり方は間違っているような気もしますが。。。。