Python Colaboratory
mplfinance を使用
mplfinance モジュ-ルを使用してロ-ソク足チャ-トを表示してみます。
豪ドル/円 の約100日分の CSV デ-タを用意しました。
このデ-タは
ここ
をクリックするとダウンロードすることができますのでご利用ください。
Google ドライブをブラウザで開き、\Colab Notebooks の中に \my_data を作成し
このダウンロードしたデ-タ
colab_mane_chart_go.csv ファイル
をアップロ-ド(右クリックで可能)で、フォルダ my_data に送出します。
これで、必要なモジュ-ルとデ-タが準備できました。
ライブラリ取込み
取込む必要があるライブラリは4つです。
import pandas as pd
import matplotlib.pyplot as plt
from mplfinance.original_flavor import candlestick_ohlc
必要な CSV ファイル colab_mane_chart_go.csv を取込みます。
CSV の保存場所は絶対パスで表記する必要があります。
xl_df = pd.read_csv(
"drive/MyDrive/Colab Notebooks/my_data/colab_mane_chart_go.csv", encoding="cp932"
)
豪ドル/円 CSV デ-タでロ-ソク足表示
colab_mane_chart_go.csv デ-タをロ-ソク足表示していきます。
ロ-ソク足表示に必要なデ-タは
Open = xl_df["始値(売り)"].values
High = xl_df["高値(売り)"].values
Low = xl_df["安値(売り)"].values
Close = xl_df["終値(売り)"].values
Date = xl_df["日付"].values
Idx = xl_df.index
の6列です。
X 軸日付処理
mane_chart_go.csv デ-タの中の日付は
2020/10/20 00:00:00
のようになっており、そのまま X 軸日付表示をさせるには文字列が長すぎます。
よってこれを 10/20 のように短縮します。
- 型変換
Pandas で抜き取った Date は リスト型になっています。
これを str 型 に変換します。
変換しても CSV 書式がそのまま残っていますので、
2020/10/20 00:00:00
のように変換されます。
余計な文字列が沢山ありますので、これを削除していきます。
必要なのは、月日の /10/20 です。
左から 0~3 の 4 文字と10文字以降は必要ないので
e4 = str(Date[i])[4:10]
とすると、6文字が取得され
e4 には /10/20 が入ります。 - 月日が1桁の時
月日が1桁の時は、/01 のような形をしています。
0 は余計なのでこれを削除します。
Python 組込関数 replace()を使って、一旦 /0 を / に置き換えます。
第一引数に置換元文字列、第二引数に置換先文字列を指定します。
e6 = e4.replace("/0", "/")
e6 には /10/20 が入りました。 もし /01/20 だったら /1/20 が e6 に入ります。 - 左端の / を削除
Python 組込関数 lstrip() で、左端の / を削除します。
e8 = e6.lstrip("/")
e8 には 1/20 が入りました。 - 繰返して X 軸日付処理
xData は X 軸の目盛り日付です。
そして、Python 組込関数 enumerate()を使って Date デ-タがある限り、i = 0 から 順番に for 分で処理を繰り返します。
Date の中に 101個のデ-タが存在するとすれば、i は 0~100 まで変化します。
今回は 10日ごとに X 軸日付を付けたいので、
if(i % 10 == 0):
として 10日ごとに日付を作成します。
また、xD は日付表示位置となります。
まとめると以下のようになります。
xDate = [] xD = [] for i, key in enumerate(Date): if(i % 10 == 0): e4 = str(key)[4:10] e6 = e4.replace("/0", "/") e8 = e6.lstrip("/") xDate.append(e8) xD.append(i)
以上でロ-ソク足表示の準備ができました。
引き続き、Google Colaboratory で動く、ロ-ソク足本体の表示方法について説明していきます。