未分類

Pythonによる株価テクニカル分析_チャート作成

目的

今回は、Pythonによる株価分析を行います。
『mplfinance』を使用することにより簡単にチャートを作成することができます。
まずは、基礎的な下記の3つのチャートを作成したいと思います。

・キャンドル(ローソク)チャート
・ボリューム(出来高)
・移動平均

実行結果

ソースコード

下記のソースコードをコピーすることで簡単にチャートを作成することができます。

準備&株価の取得

ライブラリインストール

インストールするライブラリは、下記の3つです。

pip install pandas
pip install pandas_datareade
pip install mplfinance

ライブラリインポート

各種ライブラリをインポートします。

#データ構造を作成するライブラリ
import pandas as pd
#日付を指定するライブラリ
import datetime as dt
#経済データや金融商品の価格データを取得できるライブラリ
import pandas_datareader.data as web
#グラフを作成するライブラリ
import mplfinance as mpf

株価の取得方法

関数の作成

下記の関数を使用することで、株価の取得を行います。
設定するのは下記の2つです。

・株式銘柄名
・取得期間(〜最新日)

def df_stock(stock_name,day):
    end = dt.date.today()
    start = end - dt.timedelta(days=day)
    stock = web.DataReader(stock_name,'stooq',start,end)
    df_stock = stock.sort_index(ascending=True)
    return df_stock
"""
最新の日付から設定日数までの株価を表示する関数
stock_name :株式銘柄  day:表示日数
"""

株式銘柄の変更方法

株式銘柄は、ティッカー(米国株) または コード(日本株)を使用します。
下記のサイトを参考にしてください。

例えば、
Googleの場合、『GOOGL』になります。
トヨタ自動車の場合、『7203.JP』となります。日本株の場合『.JP』が末尾に必要です。

ティッカー(米国株)参考サイト
https://search.sbisec.co.jp/v2/popwin/info/stock/pop6040_usequity_list.html
コード(日本株)参考サイト
https://portal.morningstarjp.com/StockInfo/sec/list?code=1000

具体的な関数の使用方法

実際に関数を使用していきます。
Googleの株価を最新日から150日間のデータを取得します。
文字列での入力のため、’銘柄名’または”銘柄名”とします。

df_stock_data = df_stock('GOOGL',150)

株価テクニカル分析

キャンドルチャート

チャートの基本となるのが、キャンドルチャートです。
キャンドル(日本語ではローソク)は、一本一本が一定の値動きを表しています。

日足(ひあし):1日の値動き
週足(しゅうあし):1週間の値動き

mpf.plot(df_stock_data, type='candle')

ボリューム・出来高

どの程度の取引量があったかを示す「ボリューム」も重要です。
特に、ボリュームが大きかった日に何が起きていたのかを知ることは、
トレンドを読むうえでも非常に重要です。

mpf.plot(df_stock_data, type='candle', volume=True)

移動平均

移動平均とは、ある一定の期間の平均価格であり、これを繋いだ線を移動平均線と言います。
例えば、100日平均であれば、過去100日の平均価格を繋いでラインが描かれています。

mpf.plot(df_stock_data, type='candle', mav=(5, 25, 75))

一般的な分析方法

デットクロス

短期の移動平均線(5日移動平均線)が、長期の移動平均線(25日移動平均線)を
下に突き抜けている場合、ここから下落のトレンドが始まるサインだと考えられています。
特に75日移動平均線も突き抜けれていれば、よりトレンドの傾向は強いと考えられています。

ゴールデンクロス

5日移動線平均線と25日移動平均線がいずれも上昇しており、
5日移動線平均線が、25日移動平均線を上に突き抜ける場合、
上昇のトレンドが始まるサインだと考えられています。
75日移動平均線も突き抜けれていれば、よりトレンドの傾向は強いということです。

グラフスタイルの変更

下記のように、「style=’yahoo’」を追加することで、グラフのスタイルを変更可能です。

mpf.plot(df_stock_data, type='candle', style='yahoo', mav=(5, 25, 75))

参考にした本

株価に対するテクニカル分析の方法だけでなく、
投資について、わかりやすく書かれているので、大変参考になると思います。
電子書籍の方が半額で購入できるので、そちらをオススメします。


おすすめのPython学習方法

ABOUT ME
チェルシー
【プロフィール】  年齢:30代前半  性別:オス 【主な職歴】  メーカー勤務  製品設計開発_メカ設計:7年  開発業務自動化:1年半 元々、メカ設計エンジニアとして、製品設計開発に携わっていました。新しいスキルを身につけたいと独学でPythonを勉強し始め、現在、本業でソフトエンジニアとして働いています。具体的には、Pythonを使った製品評価業務の自動化を推進しています。 また、製品市場データ分析業務など可視化なども実施しています。 【2023年度目標】 1. 副業収入:月5,000円 2. 塩漬けにしていたブログをChatGPTなどを活用して執筆の効率化し、1年半前に開設した本サイトを改善する 3. 定期的に株式投資おすすめ成長株の紹介記事を投稿 4. 自作中の米国成長株の分析ツールのコーディング紹介 5. 株式投資の本で学んだ情報をアウトプットする