株価予測(二値分類)に関する論文を読んでみた

はじめに

この記事は、翻訳記事ではありません。

私は英語が苦手です。

深層学習に関しても専門家ではありませんのでご了承ください。

論文について

こちらが対象の論文です。

https://arxiv.org/pdf/1903.12258.pdf

2019/02/16に書かれたものだそうです。

Abstract

株式市場の予測はニュースや業績、投資家の感情、ソーシャルメディアの感情など様々な要因が影響するため予測が難しい。

この論文では様々な手法とロウソク足を使用して、予測をしている。

台湾とインドネシアの株式市場のデータで試したところ、accuracyが約92%になったらしい。

1. Introduction

この研究ではいくつかの手法を比較している。

 - Convolutional Neural Network(CNN)
 - Residual Network(ResNet)
 - Visual  Geometry Group Network(VGG)
 - k-nearest neighborhood(k近傍法)
 - random forest(ランダムフォレスト)

またその他に、50×50と20×20のロウソクチャートを使用する。

この研究のゴールは、期間や画像サイズ、その他のパラメータを調整して、相関関係をみることです。

また、翌日を予測します。

2. Related Work

株の予測に関する、関連した研究が書いてあります。

3. Dataset

3-1. Data Collection

データの取得について書かれています。

台湾とインドネシアの株式市場を対象にしていて、

台湾は50社分、インドネシアでは10社分取得しています。

収集の際、YahooファイナンスAPIを利用しているようです。

3-2. Data Preprocessing

データの前処理についてです。

時系列データからMatplotlib(Pythonのライブラリ)を使用して、ロウソク足チャートに変換しています。

この論文では、学習データに以下を用いて比較しています。

 - 5日分(出来高無し)
 - 10日分(出来高無し)
 - 20日分(出来高無し)
 - 5日分(出来高有り)
 - 10日分(出来高有り)
 - 20日分(出来高有り)

4. Methodology

YahooファイナンスAPIからロウソク足チャートに変換し、画像を生成します。

それらの画像をCNNにかけ、株価が上昇or下降の2値に分類されます。

以下の画像は論文の画像を引用したものです。

f:id:a_shiba:20190430135711p:plain
http://140.138.155.216/deepcandle/ より引用

4-1. Candlestick Chart

ロウソク足チャートの説明が書かれています。

始値終値、安値、高値の4つから構成される株取引では一般的なものです。

4-2. Learning Algorithm

この論文では1. Introductionに記述した以下の5つの手法を使用しています。

※それぞれの手法の詳しい説明はしません。

 - Convolutional Neural Network(CNN)
 - Residual Network(ResNet)
 - Visual  Geometry Group Network(VGG)
 - k-nearest neighborhood(k近傍法)
 - random forest(ランダムフォレスト)
4-2-1. Convolutional Neural Network

CNNの説明が書かれています。

モデルは、4層の畳み込み、4層のプーリング、3つのドロップアウトを使用しています。

4-2-2. Residual Network

2015年に開発されたResNetです。

層をスキップするためにショートカットできるようになっています。

これにより、層が深くても、誤差逆伝搬を可能にします。

4-2-3. VGG Network

2014年に開発されたVGGです。

学習が非常に遅いことが欠点らしいです。

4-2-4. Random Forest

多くの決定木からなる分類器。

詳しい説明はこちら

mathwords.net

4-2-5. K-Nearest Neighbors

詳しい説明はこちら qiita.com

4-3. Performance Evaluation

評価の計算方法は以下の通りです。

f:id:a_shiba:20190430151847p:plain
評価方法

Sensitivity:ポジティブ率
Specificity:ネガティブ率
Acccuracy:正確度
MCC:マシューズ相関係数
※MCCは-1から1の値を取る。

5. Experimental Results and Discussion

実験結果です。

5-1. Classification for Taiwan 50 Dataset

まずは台湾の50社の結果です。

最も精度がよかったものは、20日を対象にしたデータで、かつ出来高無しのものでした。

出来高有りのときも20日を対象にしたデータが最も精度が良いです。

(詳しい結果は論文を読んでください)

5-2. Classification for Indonesia 10 Dataset

次にインドネシアの10社の結果です。

こちらも、台湾と同様に、20日を対象で、かつ出来高なしのものが最も精度が良いそうです。

5-3. Independent Testing Result

20日分の学習データで50×50の画像、が最も良い結果が得られました。

5-4. Comparison

関連する論文と精度を比較しても、良い結果を得られたということが書かれています。

6. Conclusions and Future Works

結論と今後の課題です。

CNNは長期の取引日数を用いたモデルが最も良い精度が出ることを証明しました。

以下のサイトは、このモデルを使用して株価市場を予測するものです。

140.138.155.216

ユーザーは目標日を入力するだけで、予測結果を得られます。

コンピューターに詳しくない人でも、簡単に使えるように構築されています。

感想

次の日を予測する場合、

「昨日の終値=今日の始値」でないと予測したとしても、あまり効果は得られないのではないかと考えます。

今回紹介した論文にあるモデルを使って、3日後や1週間後を予測してみるも良さそうな気がしたので、試そうと思います。