Pythonでできる!株価データ分析 – 森北出版
「Pythonでできる! 株価データ分析」という本を読んだので、ここでレビューする。私自身、Pythonと株価データ解析については初歩的な知識を持っていたため、この本は私にとってはサクサクと読み進めることができた。ただ、未経験者向けのPythonの入門書ではなく、Pythonの基本的な知識は省かれているため、Pythonが初めての方には入りにくいかもしれない。プログラミングが初めてという方は、不厚くない入門書か入門サイトを読んだ方が良いかもしれないが、Pythonは公式サイトが充実しているので、別の言語の経験があれば、公式サイトを都度引きながら本書を読み進めることもできると思う。
本書は、特に、株価データ解析に関するテクニカル指標やグラフの描画方法などをわかりやすく解説している。実際に株価データを使って解析するプログラムのサンプルコードも豊富に掲載されているため、自分でコードを書いて実践的な学びができる。株価の読み解き方は基礎から紹介してあるため、株価のテクニカル分析についての知識がなくても、本書で学びながら読み進めることができる。また、株価に関する知識が豊富な方にとっても、テクニカル分析の用語の厳密な意味や定義を、コンピュータが理解できるプログラミングコードで書くことができるようになり、より高度なデータ解析にも応用できる内容となっている。逆に、Pythonができてデータ解析を学びたい人にもオススメできる。
総じて、Pythonと株価データ解析に興味がある方には、初歩的な知識があれば理解できる内容であり、高度なデータ解析を目指す方にも応用できる本だと思う。
この本は「Pythonで株価データ解析をするための実践的な手法」というテーマで書かれた本で、株価のテクニカル解析についても詳しく解説されている。そのため、プログラミング初心者でも株式投資初心者でも、両方の分野に興味がある方には特に役立つ内容になっている。株式投資の基本を学び、Pythonを使って株価データを収集して、分析して、可視化するまでの手順が紹介されている。特に、株価のテクニカル指標をPythonで計算する方法については、かなり詳しく説明されているので、株式投資初心者でも理解しやすい。
本書では、プログラミングをGoogle Colaboratory上で実行している。Google Colaboratoryを使うことで、プログラミングの初心者でも簡単に始めることができ、同時に最新のサービスを学ぶことができる。Google Colaboratoryを使用すると、ブラウザ上で簡単にPythonを動かすことができる。その上、Colaboratoryの実行環境では、GPUを用いた高速演算を行う事もできる。これが無料で使えるのはとてもお得だ。
本書では「売買シミュレーション」までしか紹介されていないが、GPUを用いた高速演算の話が出たので脱線させて貰うと、この書籍で紹介されているテクニカル分析と売買シミュレーションの延長線上には、アルゴリズム自動売買が念頭にあるように思う。特に、Pythonは、最近注目されているAI(深層学習)技術との相性が抜群に良い。私の理解では、AI技術単独では、テクニカル分析から株価の予想を行うよりも、多くの指標と組み合わせることによりファンダメンタルズ分析を可能にし、複雑な戦略を学習から導く手法だと思う。脱線が続くが、私が考える自動売買の利点には、次の3つがある。
1番目に、自動売買による戦略のパフォーマンスは、過去のデータを使ってシミュレーションで評価できる。この方法により、将来的に実際に取引を行った場合のリスクやリターンを予測することができる。また、過去のデータを使ってシミュレーションを行うため、人間の感情や誤った判断によるトレードのミスを避けることができる。
2番目については、自動売買システムはプログラムに従って取引を行うため、人間の感情的な判断やトレードのミスを回避することができる。また、プログラムが失敗した場合にも、その原因を特定し改善することで、自分の戦略を系統的に強化し続ける事ができる。
3番目については、含み益を得ることよりも含み益を確定することが難しいという問題に対して、自動売買システムは機械的に売買判断を行うため、含み益を確定するタイミングを逃さない。
これらの利点は、もちろん本書で紹介されている「アルゴリズム売買のシミュレーション」にも共通する。そして、このような利点があるため、自動売買は現在、投資家やトレーダーの間で広く使用されている。
言うまでもなく、自動売買にはリスクがあることを理解し、慎重に取り組む必要があるが、適切な戦略を構築し、細心の注意を払いながらプログラムを作成することで、自動売買によって利益を生むことも可能である。プログラミングには熟練が必要だが、実践を重ねながら学習することで、自分にとって最適な戦略を見つけ、自動売買によって損失を避け、利益を生み出すことができるようになるだろう。
本書では、AIや自動売買については紹介されていないが、自動売買に繋がる基本的な知識や技術を紹介しており、自動売買に興味のある方にとっても、導入として役立つ情報が詰まっている。
この本は技術サイトに連載されていた記事を書籍化したようだ。そのおかげで、各章節ごとに話が完結していて、小さな目標を達成しながら読み進められるようになっている。コードも詳細に解説されており、初心者でも理解しやすいようになっている。
最終的には、ローソク足と5日・25日平均線のグラフを自分で描くことができるようになる。また、pythonには多くのライブラリがあり、それらを使うことで、本書で紹介されている手法より高度な分析を行うことも可能だ。
本書で紹介されているフレームワークやライブラリは、現在のPythonの主要ライブラリであるため、実践的にまとめて習得することは非常に有益だ。NumPyは数値計算用のライブラリであり、高速な行列演算などの数値計算を行うことができる。Pandasはデータ分析用のライブラリ(フレームワーク)であり、データの読み込み、整形、集計などを簡単に行うことができる。TA-LIBは、ローソク足を含むさまざまな種類のグラフをブラウザ上で描画することができるライブラリである。このTA-LIBは王道とは少し外れたライブラリかも知れないが、株価データのプロットにはとても便利だ。このほかに、データの可視化に便利なライブラリとしてMatplotlibなどがある。これらのライブラリを組み合わせることで、かなり強力な株価データ分析や機械売買戦略を組むためのグラフを自在に描画することができる。この延長線上にあるのはPyTorchやTensorflowといった深層学習ライブラリであろう。これらとの組み合わせには、より高度なスキルが必要になるため、本書で基礎を学んでから、挑戦してみることをおすすめする。
TA-LIBで可視化したNTTの株価推移と平均移動線
この図を描くためのPythonコードはGitHubで公開 しておく。
本書ではGoogle Colaboratoryを利用することで、Windowsでも簡単にpythonの開発環境を構築することができた。Google Colaboratoryはクラウド上のPython実行環境で、ブラウザ上でPythonコードを実行できるため、自分のパソコンにPythonをインストールする必要がない。Google Colaboratoryを使うためにはGoogleアカウントが必要だが、無料で利用できる。
もちろん、このGoogle Colaboratory も大変便利なのだが、より本格的にプログラミングを学習していくには、手元のパソコン上にプログラミングに特化した環境を整えた方が良いかもしれない。Visual Studio Code (以下、VSCode)は、マイクロソフトが開発した、オープンソースかつ高機能なコードエディタである。VSCodeは、シンタックスハイライトや自動補完・デバッグ支援など、プログラミングを効率よく行うための基本的な機能を備えているだけでなく、拡張機能を導入することで、様々な言語に対応した高機能プログラミング環境として使うことができる。
また、VSCodeはリアルタイムにプレビューを確認できるLive Serverという拡張機能があるため、HTMLやCSSを書く際にも非常に便利である。こうした技術と組み合わせることで、グラフや文字などを高度に組み合わせたり、あるいは、独自のアプリを構築することも可能になる。これも本書の範囲外だが、本書で紹介したTA-LIBは、こうした応用にも便利なようだ。
さらに、VSCodeはGitやGitHubとの連携も非常に簡単にできるため、バージョン管理やチーム開発にも向いている。これらの機能は、パソコンでのプログラミングにおいては必須であるため、VSCodeを利用することでより便利に、効率的にプログラミングを行うことができる。
もちろん、初めての人にとっては、VSCodeの使い方を覚えるまで少し手間がかかるかもしれない。ここに時間を掛けるぐらいなら、本書で紹介されているGoogle Colaboratoryをブラウザから利用して今日からプログラミングを始める方が良いだろう。しかし、VSCodeは使い方を覚えることで、長期的なプログラミング学習や開発において非常に大きな利益をもたらすと思う。私も長年emacsという伝統のエディタ(環境)を愛用してきたが、最近はすっかりVSCodeの便利さに浸ってしまった。このVSCodeからGoogle Colaboratoryを使うこともできるし、パソコン上に(ローカルに)開発環境を構築することも可能だ。ただ、Windows での TA-Lib 導入は若干面倒だ。このサイト から Python のバージョンを調べて、該当する whl ファイルをダウンロードし、pip install でダウンロードしたファイルをインストールする。ただし、最新の Python 用のパッケージは出ていないかもしれない。
このような理由で、Pythonのバージョンをこまめに調整したいことは多い。Pythonのバージョン管理を行うのに便利な pyenv だが、Windowsで利用するには多少面倒だ。
GitHub から pyenv-win をダウンロードしインストールするには、以下のコマンドを PowerShell で実行する。
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"
このコマンドが about_Execution_Policies の制約で実行出来ない場合、一時的にポリシーを緩和する必要がある。上のコマンドの前に
Set-ExecutionPolicy RemoteSigned -Scope Process
を実行すると良い。もちろん、ご利用は自己責任で。
Pythonでできる!株価データ分析 – 森北出版