Pythonをフル活用した株式投資を徹底的に解説
株価データの取得からダッシュボード構築、生成AIによる戦略立案まで、Pythonを駆使した効率的かつ実践的な投資手法を徹底解説。テクニカル指標の算出やパターン検出など、実務に直結する分析スキルが身につく一冊。プログラミングを活かして投資精度を高めたい方に最適。更新履歴
- FAQ情報:2026年6月12日 更新
- 正誤訂正:2026年1月14日 更新
目次
- 1 株価分析入門
- 1.1 Pythonによる株価分析
- 1.1.1 株価分析とは
- 1.1.2 株価データとは
- 1.1.3 株価チャートとは
- 1.1.4 株価分析と投資判断
- 1.2 開発環境の準備
- 1.2.1 Pythonでの株価分析に必要なもの
- 1.2.2 PythonとTA-Libのインストール(Windowsの場合)
- 1.2.3 PythonとTA-Libのインストール(macOSの場合)
- 1.2.4 VSCodeのインストール
- 1.2.5 Jupyter Notebookのインストール(Windows/macOS共通)
- 1.2.6 関連ライブラリのインストール(Windows/macOS共通)
- 1.2.7 動作確認
- 1.3 Pythonでの株価データの扱い
- 1.3.1 データフレーム
- 1.3.2 株価データの取得
- 1.3.3 株価データの加工
- 1.3.4 株価データの可視化
- 2 移動平均線
- 2.1 移動平均線の概要
- 2.1.1 移動平均線とは
- 2.1.2 移動平均線の種類と算出
- 2.1.3 移動平均線の表示
- 2.1.4 移動平均線とトレンド
- 2.1.5 ゴールデンクロスとデッドクロス
- 2.1.6 移動平均線とボリンジャーバンド
- 2.2 日足,週足,月足での確認
- 2.2.1 週単位や月単位での集計
- 2.2.2 週足と月足の移動平均線の表示
- 2.2.3 経済イベントとの関連の確認
- 3 高度なテクニカル指標
- 3.1 RCI
- 3.1.1 RCIとは
- 3.1.2 RCIの算出
- 3.1.3 RCIの表示
- 3.1.4 RCIとRSI
- 3.2 パラボリック
- 3.2.1 パラボリックとは
- 3.2.2 パラボリックの表示
- 3.3 一目均衡表
- 3.3.1 一目均衡表とは
- 3.3.2 一目均衡表の各線の算出
- 3.3.3 一目均衡表の表示
- 4 データベースとの連携
- 4.1 開発環境の準備
- 4.1.1 ローカル環境での株価分析
- 4.1.2 MySQLのインストール
- 4.1.3 VSCodeからのMySQLの操作
- 4.1.4 データベースの作成
- 4.1.5 テーブルの作成
- 4.1.6 テーブルのレコードの作成
- 4.2 MySQLの利用
- 4.2.1 PythonからのMySQLの利用
- 4.2.2 ライブラリのインストール
- 4.2.3 モデルクラスの定義
- 4.2.4 データの参照
- 4.3 株価データの保存
- 4.3.1 MySQLへの保存
- 4.3.2 動的なモデルの作成
- 4.3.3 分析結果の保存
- 4.3.4 保存したデータからのチャート表示
- 4.3.5 任意の指数でのチャート描画
- 5 日々の株価分析
- 5.1 株価データの取得
- 5.1.1 株価テーブルのデータを最新にする
- 5.1.2 ライブラリのインストール
- 5.1.3 作成した処理のモジュール化
- 5.1.4 データベース接続処理をまとめる
- 5.1.5 日々の株価の取得と保存
- 5.2 複数銘柄の比較/検討
- 5.2.1 複数銘柄の株価データをまとめる
- 5.2.2 累積リターンの比較
- 5.2.3 ボラティリティの比較
- 5.2.4 シャープレシオの比較
- 6 株価が上昇するパターンの検出
- 6.1 銘柄の選び方
- 6.1.1 銘柄を選ぶにあたって
- 6.1.2 株価チャートを確認しやすい画面の作成
- 6.1.3 銘柄を追加する画面の作成
- 6.2 株価が上昇するパターンの検出
- 6.2.1 株価が上昇するパターンの確認
- 6.2.2 株価が上昇するパターンの検出
- 6.2.3 これから株価が上昇する銘柄の検出
- 6.3 分析結果をまとめる
- 6.3.1 分析結果のPDF出力
- 6.3.2 複数のPDFファイルを1つのファイルにまとめる
- 6.3.3 分析結果PDFのGoogleドライブへのアップロード
- 7 HTMLでのチャート表示
- 7.1 HTMLでチャートを表示するための準備
- 7.1.1 フレームワークFlask
- 7.2 Webページとしてのチャート表示
- 7.2.1 Highcharts Stock
- 7.2.2 株価チャートの表示
- 7.2.3 移動平均線とボリンジャーバンドの表示
- 7.2.4 オシレーターと出来高の表示
- 7.2.5 ツールチップをまとめる
- 7.3 チャートへのパターンの表示
- 7.3.1 作成した株価が上昇するパターンの表示
- 7.3.2 トレンドラインの表示
- 7.3.3 逆三尊パターンの表示
- 8 ダッシュボードの開発
- 8.1 ダッシュボード
- 8.1.1 開発するダッシュボードの概要
- 8.1.2 HTMLテンプレート
- 8.1.3 HTMLテンプレートをFlaskに組み込む
- 8.2 市場の全体の動き
- 8.2.1 株価分析で注目すべき株価指数
- 8.2.2 日本の株価指数
- 8.2.3 各株価指数の取得
- 8.2.4 日経平均とダウ平均の簡易チャートの表示
- 8.2.5 ヘッダ部分への各株価指数の表示
- 8.3 監視銘柄の管理
- 8.3.1 監視銘柄の作成
- 8.3.2 監視銘柄の更新
- 8.3.3 監視銘柄の削除
- 8.3.4 監視銘柄一覧の表示
- 8.4 銘柄詳細の表示
- 8.4.1 企業分析で利用される指標
- 8.4.2 企業の株価チャートと財務状態の表示
- 8.4.3 メモ機能の作成
- 8.4.4 サイドバーのリンク作成
- 9 投資戦略
- 9.1 個人で行う投資戦略の考え方
- 9.1.1 投資手法の種類
- 9.1.2 対話型AIを使った投資
- 9.1.3 ChatGPTの利用
- 9.2 短期売買
- 9.2.1 短期売買の概要
- 9.2.2 短期売買向けの銘柄
- 9.2.3 対話型AIを利用した銘柄選定
- 9.2.4 直近のニュースからの銘柄検索
- 9.3 高配当株投資
- 9.3.1 高配当株投資の概要
- 9.3.2 高配当株投資向けの銘柄
- 9.3.3 対話型AIを利用した銘柄選定
- 9.4 長期投資
- 9.4.1 長期投資の概要
- 9.4.2 NISA制度を利用した長期投資
- 9.4.3 対話型AIを利用したポートフォリオ作成
- 9.5 スポット的な投資
- 9.5.1 Fear & Greed Index
- 9.5.2 急に株価が下がった場合の投資
- A 付録:スクレイピング
- A.1 スクレイピングの利用
- A.2 ライブラリのインストール
- A.3 Googleファイナンスからの株価データ取得
正誤表
| 該当頁 | 該当箇所 | 修正刷 |
|---|---|---|
| 訂正箇所 | 訂正事項 | 更新日 |
| p.89 | 本文2行目 | - |
| 認証に必要なcriptography | 認証に必要なcryptography | 2026/01/14 |
| p.89 | コマンド 4.10のキャプションとコマンド | - |
| criptography | cryptography | 2026/01/14 |
FAQ
stooqがpandas_datareaderへの株価データ提供を停止したため、pandas_datareaderからの日本株のデータ取得ができなくなりました。
代わりにyfinanceを使って株価取得の処理を次のように書き換えてください。
[変更前]
import pandas as pd
import pandas_datareader.data as pdr
def get_stock_data(code: str) -> pd.DataFrame:
df = pdr.DataReader("{}.JP".format(code), "stooq").sort_index()
return df
[変更後]
import yfinance as yf
import pandas as pd
def get_stock_data(code):
df = yf.download("{}.T".format(code), period="5y").sort_index()
if isinstance(df.columns, pd.MultiIndex):
df.columns = df.columns.get_level_values(0)
return df
代わりにyfinanceを使って株価取得の処理を次のように書き換えてください。
[変更前]
import pandas as pd
import pandas_datareader.data as pdr
def get_stock_data(code: str) -> pd.DataFrame:
df = pdr.DataReader("{}.JP".format(code), "stooq").sort_index()
return df
[変更後]
import yfinance as yf
import pandas as pd
def get_stock_data(code):
df = yf.download("{}.T".format(code), period="5y").sort_index()
if isinstance(df.columns, pd.MultiIndex):
df.columns = df.columns.get_level_values(0)
return df
更新日: 2026.06.12
ダウンロード
お問い合わせ
書籍に関するご質問や誤りのご報告、ご意見・ご感想などをお寄せください。
お問い合わせの前にFAQ・正誤表をご確認ください。すでに掲載済みの内容については個別回答が難しい場合があります。