株価分析に使えるPythonモジュール・ライブラリ一覧!システムトレードの第一歩

12月 18, 2021

株価分析に使える、便利なPythonモジュールを紹介します。
色々なモジュールやライブラリを組み合わせて、手軽に高機能な株価分析をしましょう!

ただし、機械学習系を含めると多すぎるので、今回は省きます。

データ取得系

データが無いと株価分析は始まらないですよね。

pandas-datareader

様々なAPIから株価や株式投資に必要な指標を取得できるモジュールです。

ドキュメント:pandas-datareader — pandas-datareader 0.10.0 documentation

使い方:Pythonのpandas datareaderをインストールして株価データを取得する方法【日本株・米国株】 | FIRE Analytics (optrip.xyz)

yfinance

pandas-datareaderのYahoo Finance API限定版。pandas-datareaderを使うことが多いので、こちらはあまり使ってないです。

ドキュメント:fix-yahoo-finance · PyPI

requests

Webスクレイピングするときによく使われる、HTMLやXMLファイルのデータを取得するときに使用されるHTTP通信用ライブラリ。

ドキュメント:Requests: HTTP for Humans™ — Requests 2.26.0 documentation (python-requests.org)

スクレイピングとは

スクレイピングとは、Webサイトから情報を取得すること。

urllib

できることはrequestsとほぼ同じで、HTMLデータの取得、加工ができるライブラリ。スクレイピング向き。

ドキュメント:urllib — URL handling modules — Python 3.10.0 documentation

データ加工系

TA-Lib

手持ちのデータから、移動平均線、MACD、ボリンジャーバンドなどのテクニカル指標をお手軽に計算できるライブラリです。

ただし、インストールに一癖あります。

ドキュメント:TA-Lib (mrjbq7.github.io)

使い方:PythonライブラリTA-Libで色々なテクニカル指標を使ってみる | FIRE Analytics (optrip.xyz)

BeautifulSoup, Scrapy, Selenium

BeautifulSoupはHTMLやXMLから狙ったデータを抽出するためのライブラリで、上述のrequestsと一緒に使われることが多いです。つまり、スクレイピングをしたいときに使われます。

ドキュメント:Beautiful Soup Documentation — Beautiful Soup 4.4.0 documentation (beautiful-soup-4.readthedocs.io)

ScrapyはBeautifulSoupよりも広い意味でクローラー(スクレイピング→データ加工→保管)を実装するためのライブラリです。

ドキュメント:Scrapy | A Fast and Powerful Scraping and Web Crawling Framework

Seleniumも同じくWeb ブラウザの操作を自動化するためのフレームワークで、タスクの自動化や Web サイトのクローリングなどで使われます。

ドキュメント:Selenium

もちろん、データの加工には標準モジュールであるpandasもよく使います。

データ描画系

mplfinance

データさえあれば、お手軽にローソク足や移動平均線,ボリュームなどがそれっぽく描画できるライブラリです。

ドキュメント:mplfinance · PyPI

使い方:Pythonのmplfinanceで簡単に株価ローソク足,移動平均線およびボリュームを描画する方法 | FIRE Analytics (optrip.xyz)

Plotly

こちらも比較的お手軽に株価チャートがそれっぽく表示できるライブラリで、カーソルで動的にデータを拡大・縮小したり値を表示できるようなグラフを出力することができます。株価だけでなく、色々なグラフを美しく作ることができます。

ドキュメント:Plotly Python Graphing Library | Python | Plotly

使い方:Python描画ライブラリPlotlyでローソク足を表示 | FIRE Analytics (optrip.xyz)

もちろん、標準モジュールであるmatplotlibでも株価チャートは描画できます。

私は、結局のところmatplotlibを使うことが多いです。

株価予測系

Backtesting.py

トレード戦略やその他の条件を入力することでトレードをバックテストできるライブラリです。株式投資に限らず、あらゆるトレードに使用可能です。

これを使いこなすには少し理解が必要なので、公式ドキュメントを見ながら実行することをおすすめします。

ドキュメント:Backtesting.py – Backtest trading strategies in Python (kernc.github.io)

使い方:【Python】Backtesting.pyで株取引をバックテストして戦略を最適化 | FIRE Analytics (optrip.xyz)

Prophet

(元)Facebook社が開発した、時系列解析ライブラリです。

ドキュメントを見ても予測アルゴリズムが見えにくいので、イマイチ結果に信頼性を持たせることはできませんが、難しいソースコード書かなくても実行できる手軽さがあります。

ただし、環境によってはインストールが厄介な場合があります。

ドキュメント:Quick Start | Prophet (facebook.github.io)

使い方:Facebook製時系列予測「Prophet」で株価を予測してみました【Python】 | FIRE Analytics (optrip.xyz)

ちなみに、以下はPythonでシステムトレードをしようとしているひとにおすすめの書籍です!