この記事では、PythonモジュールPandasで、株価の移動平均線を求める方法をソースコード付きで紹介します。
移動平均線
移動平均とは、時系列データを決められた区間でずらしながら平均値を求めていく手法です。
株価の移動平均線は、過去〇〇日間の終値の平均値を取ります。
例えば、移動平均25日線ならば、過去25日間の終値の平均となります。
【参考】移動平均線とは
Pandasでは株の移動平均をrolling.meanメソッドで計算できます。
| – | – |
|---|---|
| 書式 | df.rolling(window=日数).mean() |
| 返り値 | 移動平均線 |
前記事では、株価データを自動収集するプログラムを作成しました。
【参考】【Python/jsm】日本企業の株価データを銘柄ごとに取得
今回は、自動で取得した株価の移動平均線をグラフに描いてみました。
ソースコード
サンプルプログラムのソースコードです。
#-*- coding:utf-8 -*-
import pandas as pd
import jsm
import datetime
# 株価のデータ取得(銘柄コード, 開始日, 終了日)
def get_stock(code, start_date, end_date):
# 期間設定
year, month, day = start_date.split("-")
start = datetime.date(int(year), int(month), int(day))
year, month, day = end_date.split("-")
end = datetime.date(int(year), int(month), int(day))
# 株価データ取得
q = jsm.Quotes()
target = q.get_historical_prices(code, jsm.DAILY, start_date = start, end_date = end)
# 項目ごとにリストに格納して返す
date = [data.date for data in target]
open = [data.open for data in target]
close = [data.close for data in target]
high = [data.high for data in target]
low = [data.low for data in target]
# 日付が古い順に並び替えて返す
return Sat, 29 Jun 2024 23:54:07 +0000, open[::-1], close[::-1], high[::-1], low[::-1]]
def main():
# 株価の取得(銘柄コード, 開始日, 終了日)
code = 7203 # トヨタ自動車の銘柄コード
data = get_stock(code, '2016-1-1', '2016-12-31')
# データフレームの作成
df = pd.DataFrame({'始値':data[1], '終値':data[2], '高値':data[3], '安値':data[4]}, index = data[0])
# 移動平均線の計算
ma_25d = df['終値'].rolling(window=25).mean()
ma_75d = df['終値'].rolling(window=75).mean()
# グラフにプロット
ax = df['終値'].plot(color="blue", label="Close")
ma_25d.columns = ["MA 25d"]
ma_25d.plot(ax=ax, ls="--", color="red", label="MA 25d")
ma_75d.columns = ["MA 75d"]
ma_75d.plot(ax=ax, ls="--", color="green", label="MA 75d")
ax.grid()
ax.legend()
if __name__ == "__main__":
main()
実行結果
サンプルプログラムの実行結果です。

75日移動平均線だと過去75日分のデータが必要なので、足りない部分は描画されていません。
(25日も同様)
関連ページ

Pythonで株・投資信託のデータ分析【超入門】
Pythonを用いて株・投資信託のデータを分析し、値動きを予測する方法をソースコード付きで解説します。

コメント