本記事は、PythonのPandasを用いてファイナンスの基本的な理論などについて学んでいきます。
今回は、江戸時代に日本で発明されたローソク足チャート(Candle Stick Chart)について学んでいきます。
Pandasとは
Pandasとは、データ分析や操作をまとめたPythonのライブラリです。
特にPanel、DataFrameおよびSeriesと呼ばれるデータ構造は使いやすく、また統計量を求めるための様々なメソッドが組み込まれています。
なお、Pandasの由来はPanel Dataから来ているそうです。
以下が公式のドキュメントになります。
ローソク足チャートとは
ローソク足チャート(Candle Stick Chart)とは、ある期間の株価(始値、高値、安値、終値)の推移を、ローソクと呼ばれる棒状の図形とそれに付随するヒゲで表現したチャートを言います。
江戸時代に本間宗久により発明され、主に米の取引価格の分析に用いられていたとされ、現在では日本のみならず世界中で利用されているチャートの一つです。
ローソク足の概要については以下になります。
Pythonでローソク足チャートを描いてみる
ローソク足チャートを描画するにあたって、mpl_financeをインストールします。
元々はmatplotlib.financeとしてMatplotlibライブラリに含まれていましたが、バージョン2.0以降からmpl_financeモジュールとして切り離されました。
> pip install mpl_finance
以下がスクリプトになります。
import pickle import pandas as pd import numpy as np import matplotlib.pyplot as plt import mpl_finance as mpf from matplotlib.dates import date2num def show_candle_stick(df, start=False, end=False): xdate = [x for x in df.index] ohlc = np.vstack((date2num(xdate), df.values.T)).T fig = plt.figure(figsize=(15,5)) ax = plt.subplot() mpf.candlestick_ohlc(ax, ohlc, width=0.7, colorup='b', colordown='r') ax.grid() if start: xmin = start else: xmin = df.index[0] if end: xmax = end else: xmax = df.index[-1] ymin = df.loc[xmin:xmax, "low"].min() - 50 ymax = df.loc[xmin:xmax, "high"].max() + 50 ax.set_xlim(xmin, xmax) ax.set_ylim(ymin, ymax) fig.autofmt_xdate() plt.show() with open('n225.pkl', 'rb') as f: n225 = pickle.load(f) show_candle_stick(n225)
動作確認
それでは、上記で作成したスクリプトを実行してみます。
事前に2017年1月~2019年2月までの日経平均株価のDataFrameをpickleとして保存しておき、それをロードして使用しています。
期間が長いとどうしても見えにくくなりますが、ちゃんと描画されていることが確認できました。
参考書籍
Python3ではじめるシステムトレード ──環境構築と売買戦略 (Modern alchemists series)