【RPA】Pythonで株価のデータ収集の勉強をしてみよう(データサイエンス入門)

【RPA】Pythonで株価のデータ収集の勉強をしてみよう(データサイエンス入門)

はじめに

Pythonはデータサイエンスの領域で使われることもあるプログラミング言語なのでデータ収集が得意です。ということで今回は株価のデータ収集を自動化について学習してみましょう。

Pythonの環境構築をしてみよう

AnacondaとはPythonの実行環境で、データサイエンスに必要とされる各種ツールやライブラリを提供するプラットフォームです。Anacondaには数値計算やデータ解析に必要なライブラリがセットで組み込まれており、とても利便性が高いです。Anacondaの利用者は1,500万人以上とも言われています。
こちらの公式ページからダウンロードしてインストールするだけで完了です。

Anaconda Navigatorでは予め次の代表的なアプリケーションが利用可能な状態となっています。

Pythonで使える便利なライブラリ

Pythonのライブラリとは、クラスや関数などがまとめられたものです。 ライブラリを使うことで、一から自分で実装しなくても、簡単に様々なプログラムを使うことができます。
下記に分かりやすくまとまった画像があります。

JupyterLab(ブラウザ上でコードを試しながら開発できるので便利)


 Jupyter Notebookの後継となるウェブベース統合開発環境(IDE)ブラウザ上でインタラクティブにプログラムを実行するツールです。
JupyterLabのショートカットキー
・Ctrl/command + Enter>セル内のプログラムを実行
・Shift + Enter>下にセルを追加
・セルをダブルクリック>セルを再度編集可能にする

Spyder

 データサイエンス用統合開発環境(IDE)

Pandas


 データ解析を支援する機能を提供するライブラリで、数表や時系列データを操作するデータ構造と演算を行います。

PyCharm

 Python用統合開発環境(IDE)

ファイナンスデータ収集自動化の流れ

データ活用の例として株価データを元にデータ収集、加工、予測まで行ってみます。

POINT

ファイナンスデータ収集自動化の流れは次の4つのステップで構成されます。

  • STEP.01

    python環境準備
    pandas_datareaderをインストール
  • STEP.02

    データ分析
    pythonによるデータ分析
  • STEP.03

    データ加工
    株価のデータ取得から、データ加工
  • STEP.04

    ライブラリの活用
    ファイナンスに特化したライブラリの使い方
  • STEP.05

    データ予測
    株価のデータから将来予測

【各ステップの具体的な内容】

データの読み込み

今回はTahoo!ファイナンスから株価情報を読み込みます。
import yfinance as yf

start = ‘2019-06-01’
end = ‘2020-06-01’

yf.pdr_override()
df = data.get_data_yahoo(‘^N225’, start, end)

matplotlibで可視化

matplotlibでX軸とY軸を指定してグラフ化します。
plt.plot(date,price)

単純移動平均を追加

pandasのrollingメソッドを使用して過去5日分の平均から単純移動平均のグラフを追加

ゴールデンクロス・・・株価の動きを示すグラフ(チャート)において、中期線が長期線を下から突き抜けること。 上昇相場に入ったことを示すシグナルとして利用されている。
デッドクロス・・・株価の動きを示すグラフ(チャート)において、株価の上昇が止まり下降に入る過程で、中期線が長期線を上から下に突き抜けること。 上昇相場の終わりを示すといわれている。

個別銘柄のデータをグラフ化

個別の銘柄の株価を簡単に呼び出せるように関数化
#リクルートホールディングス
df = data.DataReader(‘6098.JP’, ‘stooq’)

テクニカル分析

Ta-libのインスールもしくはdockerを使ってテクニカル分析を行います。

株価の予測

LSTMを使用して株価の予測を行う。また、予測精度を確認します。
特微量・・・特徴量とは、一言で表すと、分析対象データの中の、予測の手掛かりとなる変数のことです。

月曜から木曜日までのデータを元に金曜日の株価が上がるか下がるかを予測する
交差検証・・・交差検証(クロスバリデーション)は汎化性能を改善する時に用いられる手法の一つです。交差検証を行う目的は、過学習(オーバーフィッティング)を防ぎ汎化性能を向上させるために行います。

約2週間程度

学習サイト

Top