こちらの記事で紹介した1分足のOHLCVデータをローソク足に可視化する作業を紹介します。
【Python】Coincheck APIからビットコイン1分ローソク足データを自動取得 | 素人がデータサイエンスを始める (datascience-beginer.com)
OHLCVデータの可視化
データの読み込みと前処理
こちらにテストデータを置いておきます。1日未満のデータですが、Coincheck APIから取得したBTC/JPYの1分足OHLCVです。
pandasでcsvファイルを読み込み、’date’カラムをpandasのdatetime形式でインデックスに設定します。
# data 読み込み
file = '1min_20230812.csv'
columns = ['date', 'open', 'high', 'low', 'close', 'volume', 'missing']
df = pd.read_csv(file, header=None, names=columns)
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
# dataの範囲を確認
start = df.index.tolist()[0].strftime('%Y-%m-%d %H:%M')
end = df.index.tolist()[-1].strftime('%Y-%m-%d %H:%M')
print(f'data range: {start} to {end}')
>> data range: 2023-08-11 22:09 to 2023-08-12 18:34
# missingの数を確認
print(len(df[df['missing']=='data missing']))
>> 5
1日未満の短いデータ期間ですがmissingのフラグが立っているデータがありますね。全データの取得方法を改良する必要がありそうです・・・
mplfinanceでOHLCVデータを可視化
ここまで加工できればあとはmplfinanceで簡単に可視化できます。mplfinanceは株、FX、仮想通貨のローソク足グラフを描画してくれるとても便利なライブラリです。
ローソク足は件数が多すぎると肝心のローソクが見えなくなってしまうので、多くても100件程度にしましょう。
data = df.tail(150)
mpf.plot(data, type='candle', figratio=(12,4), volume=True)
移動平均線を追加したいときは引数mavで指定できます。またボリンジャーバンドなどを追加したいときは、mpf.make_addplotメソッドで別途作成したオブジェクトをmpf.plotのaddplot引数にリスト形式で渡します。
bb_upper = mpf.make_addplot(data['close'].rolling(window=20).mean() + 2 * data['close'].rolling(window=20).std(), color='red')
bb_lower = mpf.make_addplot(data['close'].rolling(window=20).mean() - 2 * data['close'].rolling(window=20).std(), color='red')
mpf.plot(data, type='candle', ylabel='Price', figratio=(12,4), mav=(5,20), addplot=[bb_upper, bb_lower])
今回は簡単ですが以上です!
コメント