書籍詳細(Pythonでできる! 株価データ分析)

Pythonでできる! 株価データ分析 書影

ISBN: 978-4-627-85711-7

Pythonでできる! 株価データ分析

WINGSプロジェクト 片渕彼富 著

サポート終了
著者WINGSプロジェクト 片渕彼富
監修山田祥寛
出版社森北出版
価格2,700円(税別)
判形菊判・1色
ページ数256ページ
発売日2023年1月21日
シリーズ 株価分析
対象レベル初中級

改訂版が刊行されています。詳細はこちらをご覧ください。

Pythonひとつで株価データの本格的な分析ができる!

本書では、株に興味があるPythonプログラマーを対象に、Pythonを使った株価分析の手法を解説します。
株価データの収集からチャートの生成、指標を使った分析、売買ルールのテストまで、株価分析の一連の流れを具体的なサンプルと共に解説。サンプルはGoogle Colaboratoryで動作できるので、面倒な環境設定も不要です。

※本書は、@ITでの連載記事『「Python」×「株価データ」で学ぶデータ分析のいろは』を加筆修正したものです。
Pythonでできる! 株価データ分析 ロゴ

更新履歴

  • FAQ情報:2025年4月1日 更新
  • 正誤訂正:2023年6月27日 更新

目次

  • 1 株価分析を始める準備
  • 1.1 データ分析とPython
  • 1.1.1 データ分析とは
  • 1.1.2 Pythonとは
  • 1.1.3 株価分析とPythonについて
  • 1.2 Pythonの実行環境
  • 1.2.1 Python の実行環境Google Colaboratory
  • 1.2.2 Google Colaboratoryをインストールする
  • 1.2.3 Google Colaboratoryでファイルを作成して保存する
  • 1.2.4 Google ColaboratoryでPythonのコードを実行する
  • 1.2.5 Google Colaboratoryでオブジェクトの表示を確認する
  • 1.2.6 ライブラリをインストールする
  • 2 株価データの構造
  • 2.1 株価データの概要
  • 2.1.1 株価データとは
  • 2.1.2 株価チャートとは
  • 2.1.3 株価チャートからわかること
  • 2.2 株価データの取得
  • 2.2.1 株価分析で利用するライブラリについて
  • 2.2.2 ライブラリから株価データを取得する
  • 2.3 データフレーム
  • 2.3.1 データフレームとは
  • 2.3.2 データフレームの構造
  • 2.3.3 本書で分析する株価データの形式
  • 2.3.4 データをグラフで確認する
  • 2.3.5 範囲を指定してデータを抜き出す
  • 2.3.6 条件を指定してデータを抜き出す
  • 2.3.7 CSVファイルから株価データを読み込む
  • 3 株価データの可視化
  • 3.1 株価データを可視化するライブラリ
  • 3.1.1 Pythonでグラフを描画する
  • 3.1.2 株価チャートを作成するライブラリ
  • 3.2 ローソク足チャート
  • 3.2.1 ローソク足チャートを描画する
  • 3.2.2 チャートのアスペクト比を指定する
  • 3.2.3 出来高を表示する
  • 3.2.4 指定した期間でチャートを表示する
  • 3.2.5 表示スタイルを変更する
  • 3.2.6 ローソク足から株価の動きを考察する
  • 3.2.7 週足チャートの表示
  • 3.3 移動平均線
  • 3.3.1 移動平均線を表示する
  • 3.3.2 複数の移動平均線を表示する
  • 3.3.3 移動平均を算出する
  • 3.3.4 算出した移動平均線を表示する
  • 3.3.5 移動平均線のラベルを表示する
  • 3.3.6 移動平均線から株価の動きを考察する
  • 4 株価の方向性
  • 4.1 株価データの分析手法
  • 4.1.1 トレンド
  • 4.1.2 トレンドライン
  • 4.1.3 テクニカル指標
  • 4.2 テクニカル分析の準備
  • 4.2.1 TA-Libのインストール
  • 4.2.2 TA-Libを利用して移動平均線を描画する
  • 4.3 ボリンジャーバンド
  • 4.3.1 株価の変動幅の目安となるボリンジャーバンド
  • 4.3.2 ボリンジャーバンドの算出と表示
  • 4.3.3 ボリンジャーバンドから相場を判断する
  • 4.4 ボリンジャーバンド,移動平均線,ローソク足
  • 4.4.1 トレンドの転換
  • 4.4.2 跳ね返り
  • 4.4.3 平均回帰
  • 5 株価のトレンド転換
  • 5.1 株価の上昇と下降
  • 5.1.1 移動平均線が重視される理由
  • 5.1.2 上昇と下降のタイミング
  • 5.1.3 ゴールデンクロスとデッドクロスの見方
  • 5.2 ゴールデンクロスとデッドクロスの算出と表示
  • 5.2.1 ゴールデンクロスとデッドクロスをデータでもつ手順
  • 5.2.2 5日移動平均と25日移動平均の値を比較する
  • 5.2.3 ゴールデンクロスとデッドクロスの発生日を検出する
  • 5.2.4 発生日と終値をデータフレームにもつ
  • 5.2.5 発生日と移動平均をデータフレームにもつ
  • 5.2.6 ゴールデンクロスとデッドクロスをチャートに表示する
  • 5.3 売買シグナルの検出
  • 5.3.1 売買シグナルを検出するMACD
  • 5.3.2 MACDの算出
  • 5.3.3 MACDの表示
  • 5.3.4 MACDの見方
  • 5.3.5 ボリンジャーバンド,移動平均線,MACDからの考察
  • 6 株価のトレンド分析
  • 6.1 相場の強弱
  • 6.1.1 相場の強弱とは
  • 6.1.2 売られすぎと買われすぎ
  • 6.1.3 RSIの計算と表示
  • 6.1.4 ストキャスティクスの計算と表示
  • 6.1.5 RSIのダイバージェンス
  • 6.2 複数の指標を可視化する
  • 6.2.1 RSIとストキャスティクスを同時に表示
  • 6.2.2 相場の強弱とトレンドの転換
  • 6.2.3 株価の変動範囲を表示する
  • 6.3 チャートを保存する
  • 7 インタラクティブな可視化
  • 7.1 自由度の高い可視化
  • 7.1.1 高度なグラフを描画するPlotly
  • 7.1.2 ローソク足チャートを表示する
  • 7.1.3 日付の表示形式を詰める
  • 7.1.4 レイアウトを更新する
  • 7.1.5 移動平均線を表示する
  • 7.1.6 ゴールデンクロスとデッドクロスを表示する
  • 7.1.7 ボリンジャーバンドを表示する
  • 7.1.8 出来高を表示する
  • 7.1.9 MACD,RSI,ストキャスティクスを表示する
  • 7.2 分析結果の保存
  • 7.2.1 チャートの保存
  • 7.2.2 データフレームの保存
  • 7.3 さらなる可視化
  • 7.3.1 複数の銘柄の株価データを取得できるyfinance
  • 7.3.2 トレンドラインを引くplotly.express
  • 7.3.3 株価を予想するProphet
  • 8 よく利用される売買戦略
  • 8.1 移動平均線と株価の関係
  • 8.1.1 グランビルの法則
  • 8.1.2 チャートでの確認
  • 8.2 ローソク足パターン
  • 8.2.1 ローソク足のパターンとは
  • 8.2.2 TA-Libでローソク足のパターンを検出する
  • 8.2.3 1本のローソク足のパターン
  • 8.2.4 2本のローソク足のパターン
  • 8.2.5 3本のローソク足のパターン
  • 9 売買のシミュレーション
  • 9.1 過去の株価データでのトレード
  • 9.1.1 バックテストを行うbacktesting.py
  • 9.1.2 売買のルールを作成する
  • 9.1.3 バックテストを実行する
  • 9.1.4 パラメータの最適化
  • 9.1.5 任意の取引のルールでバックテストを行う
  • 9.2 デイトレード戦略
  • 9.2.1 相場で見られるアノマリー
  • 9.2.2 分足データを取得する
  • 9.2.3 15分足を利用したアノマリー戦略

正誤表

該当頁 該当箇所 修正刷
訂正箇所 訂正事項 更新日
p.60 3.3.1項 1行目 4刷
第1章で 2章で 2023/03/29
p.63 本文 1行目 4刷
引数のwindows 引数のwindowで 2023/03/29
p.97 本文 9行目 4刷
移動平均線が抵抗線の役目を果たしたともいえます。 移動平均線が支持線の役目を果たしたともいえます。 2023/03/29
p.110 本文 14行目 4刷
長期線を上回ることができませんでした。 長期線を回ることができませんでした。 2023/03/29
p.115 本文 10行目 4刷
crossの値にはNanが入ります。 crossの値にはFalseが入ります。 2023/03/29
p.129 図 5.27 キャプション 4刷
シグナルと0ライン ヒストグラムと0ライン 2023/03/29
p.165 リスト7.7 4刷
# 日付を半分に
"tickvals": df.index[::2],
# 表示形式を MM-DDに
"ticktext": ["{}-{}".format(x.split("-")[0, x.split("-")[1])
  for x in rdf.index[::2]
# 日付を半分に
"tickvals": rdf.index[::2],
# 表示形式を MM-DDに
"ticktext": ["{}-{}".format(x.split("-")[0], x.split("-")[1])
  for x in rdf.index[::2]]
2023/05/10
p.166 構文 7.8 4刷
go.Scatterk( go.Scatter( 2023/03/29
p.171 7.1.7項 本文4行目 4刷
上限と加減 上限と下限 2023/03/30
p.198 図 8.9 1行目 4刷
2022-03-22 -100 買い 2022-03-22 100 買い 2023/03/30
p.201 リスト8.8 下から4行目 5刷
name="丸坊主", name="寄付坊主/大引坊主", 2023/06/27
p.204 [リスト8.9]包み足の検出(Ch8_2.ipynb抜粋) 2行目、3行目の冒頭 3刷
df["belthold_text"] = ...

df["belthold_marker"] = ...
df["engulfing_text"] = ...

df["engulfing_marker"] = ...
2023/02/22
p.215 本文 1行目 4刷
短期(short tme) 短期(short time) 2023/03/30
p.235 図9.18の下の本文10行目 -
11:30~12:00の間は市場が昼休みなので 11:30~12:30の間は市場が昼休みなので 2023/03/30
p.238 リスト9.25の下の本文2行目 4刷
その後で hight カラムと その後で high カラムと 2023/03/30

FAQ

本書刊行後、Google Colaboratoryや周辺ライブラリのバージョンアップによって、仕様が変更され、本書の通りでは動作しない場合があります。
適宜、配布サンプルを更新しておりますので、最新の配布サンプルや以下の情報をご確認願います。
https://www.morikita.co.jp/exclusive/download/2805(PDF

※刊行から2年が経過し、周辺ライブラリへの仕様変更に対応することが難しくなって参りました。環境まわりのご質問につきましては、大変恐縮ですが、サポート対象外とさせていただきたく思います。
なお、配布サンプルを動作するには、ローカル環境で用意したPython( https://wings.web-deli.com/env/python_win )に以下バージョンのライブラリを準備してお試しください。
著者環境では、Python 3.13.2で動作確認しております。

pip install numpy==1.26.4
pip install pandas==2.2.3
pip install pandas-datareader==0.10.0
pip install matplotlib==3.10.1
pip install mplfinance ==0.12.10b0
pip install plotly==6.0.1
pip install jupyter==1.1.1

ただし、以下のライブラリについてはライブラリ自身の仕様変更とGoogle Colaboratory/Jupyter Notebookの環境に合わなくなったため、動作確認はできませんでした。

第7章 インタラクティブな可視化 yfinance
第9章 売買の趣味レーション backtesting.py, yahoo_finance_api2

Ta-libのインストールに関してはライブラリのページをご参照ください。
https://github.com/ta-lib/ta-lib-python

2025年1月の情報ですが、以下もご参照ください。
https://qiita.com/katafuchix/items/c3159e193a7d4741f117

更新日: 2025.04.01

本書刊行後、7.3.1項で扱っているyfinanceの仕様変更により、エラーが出て、動作しなくなっております。

更新日: 2025.02.21

本書刊行後、stooqの返すデータの数の変更により、紙面の図(図8.3 4 5)と同じ移動平均線が描画できなくなりました。

更新日: 2025.02.21

お問い合わせ

書籍に関するご質問や誤りのご報告、ご意見・ご感想などをお寄せください。

Powered by メールフォーム 『オレンジフォーム』