【Python+仮想通貨】自動取得したOHLCVデータを可視化

仮想通貨

こちらの記事で紹介した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])

今回は簡単ですが以上です!

コメント