▶ Pythonで株の分析をするための環境構築がまだの方は以下の記事をどうぞ
▶ PythonでWebページサービスから株価データを取得する方法は以下をどうぞ
はじめに
今回は週足チャートと移動平均線の描画方法を基本から解説します。陽線や陰線が続くと上昇傾向・下降傾向を判断できます。一般的には3日連続する場合で傾向を判断することが多いので、数日分をまとめたローソク足チャートが描けると便利です。今回は1週間分をまとめたローソク足である「週足チャート」と傾向をもっと簡単に見ることができる移動平均線の描き方をお伝えします。
環境
- Windows11
- Python 3.9.7
- pandas 1.5.0
- numpy: 1.23.3
- matplotlib: 3.6.1
週足チャートの描き方
週足チャートは1週間の価格データを1本のローソク足で表したものです。Pythonでは集計単位を変えた演算を簡単におこなうことができます。数日分をまとめることもできますし、週単位、月単位も簡単です。早速やってみましょう。
時系列データフレームの時間間隔を変更する操作をリサンプリングといいます。例えば、今回おこなう日次データを週次データに集約する操作もリサンプリングです。この操作は、金融データ、気象データ、センサーデータなどの時系列データの分析や可視化において重要です。
pandasでは次の所式で簡単にリサンプリングの期間を指定することができます。
[期間の指定]の部分は次の指定ができます。
‘M’:月単位。月末区切りとなります。
‘W’:週単位。日曜区切りとなります。
‘D’:日単位。0時区切りとなります。
‘H’:時単位。0分区切りとなります。
‘T’:分単位。0秒区切りとなります。
またリサンプリングの結果に適用するメソッドも確認しておきましょう。
first():Openを取り出す
max():Highを取り出す
min():Lowを取り出す
last():Closeを取り出す
sum():Volumeを取り出す
集計した結果は別々のデータフレームとなるので、1つのデータフレームに結合する処理が必要となります。この処理をaggregate()メソッドでおこないます。書式の確認をしておきましょう。
やってみましょう。
▶ 株価データの取得を解説する記事は以下をどうぞ
# ライブラリのインポート
import japanize_matplotlib
import mplfinance as mpf
import pandas as pd
import pandas_datareader.data as pdr
import datetime as dt
# データの取得(ここでは銘柄コード3397 トリドールホールディングスの株価を取得しています)
df_3397 = pdr.DataReader('3397.JP','stooq').sort_index()
df_3397.head()
# 週単位でリサンプリング
resampled = df_3397.resample('W')
# 集計
wdf = resampled.aggregate({'Open':'first','High':'max','Low':'min','Close':'last','Volume':'sum'})
# 描画
cs = mpf.make_mpf_style(rc={"font.family":'IPAexGothic'},base_mpf_style='yahoo')
mpf.plot(wdf[dt.datetime(2023,4,1):dt.datetime(2024,2,22)],type='candle',figratio=(2,1),style=cs,
title='トリドールホールディングス:週足チャート',
xrotation=90,
volume=True)
週足チャートが描けました!傾向が見やすくなった気がしますよね。日足チャートと週足チャートを並べて表示してみましょう。
傾向を見るのであれば、ある程度の期間でリサンプリングした方がみやすそうですね。実際の分析では週・月など期間をいろいろ変えてみてみるとよいでしょう。
移動平均線
傾向を知るのであれば、移動平均線を表示するとよりわかりやすいでしょう。こちらもリサンプリングの期間はいろいろ考えられます。まずは5日でリサンプリングした移動平均線「5日線」を描画してみましょう。plot()のmavにリサンプリングの期間を指定するだけです。
# 描画:移動平均線(5日線)を追加
cs = mpf.make_mpf_style(rc={"font.family":'IPAexGothic'},base_mpf_style='yahoo')
mpf.plot(wdf[dt.datetime(2023,4,1):dt.datetime(2024,2,22)],type='candle',figratio=(2,1),style=cs,
title='トリドールホールディングス:週足チャート',
xrotation=90,
volume=True,
mav=5)
簡単ですね。リサンプリングの期間を変えてみることで、いろんな見え方となります。間隔が短い場合は当然、上下の変化が激しく、長ければ緩やかになります。次に、複数の移動平均線を表示してみることにしましょう。実はmavの値に、複数のリサンプリング期間を追加するだけです。(5日線:1週間の終値の平均、25日線:1か月の終値の平均、75日線:3か月の終値の平均となります。これは営業日ベースで数えるためです。)
cs = mpf.make_mpf_style(rc={"font.family":'IPAexGothic'},base_mpf_style='yahoo')
mpf.plot(df_3397[dt.datetime(2023,4,1):dt.datetime(2024,2,22)],type='candle',figratio=(2,1),style=cs,
title='トリドールホールディングス:日足チャートと移動平均線',
xrotation=90,
volume=True,
mav=(5,25,75))
まとめ
今回はリサンプリングについて扱いました。特に週単位でリサンプリングした週足チャートの描画方法を解説した後、トレンドをつかむための移動平均線についても解説しました。移動平均線もいろんな期間の移動平均線が考えられるのでした。期間が短いと激しく上下するのに対して、期間を長くとると緩やかな変化となります。これらを組み合わせて傾向を見るとよいでしょう。
コメント