SAND(SANDBOX) binanceのOHLCVゲットしてチャートをPLOT

# ライブラリのインストール
import requests
import json
from datetime import datetime
import time
import pandas as pd
# 価格データを取得する
import requests

In [ ]:

period = '3600' #60*60 1時間足
exchange = 'binance'
pair = 'sandusdt'
# 取得開始日時をtimestampで作る
after = str(int(datetime.timestamp(datetime.strptime('2021-10-15','%Y-%m-%d'))))
url = 'https://api.cryptowat.ch/markets/'
que = f"{url}{exchange}/{pair}/ohlc?periods={period}&after={after}"
que

Out[ ]:

# リクエストする文字列の合成結果を確認
'https://api.cryptowat.ch/markets/binance/sandusdt/ohlc?periods=3600&after=1634223600'

In [ ]:

r = requests.get(que)#取れたデータをjsonに変換する
r2=json.loads(r.text)# 更にテキストに変換
#r2

In [ ]:

cw_data=r2['result'][period]
cw_data[:2]

Out[ ]:

[[1634223600, 0.7521, 0.7974, 0.7518, 0.7765, 4856277, 3786487.4044],
 [1634227200, 0.7762, 0.7807, 0.7604, 0.7776, 1780635, 1371828.337]]

In [ ]:

# DataFrameに突っ込む各列のデータを切り出す
bitcoindate=[] #日付(timestamp)
open=[]
high=[]
low=[]
close=[]
volume = []

In [ ]:

for i in cw_data:
    date=int(i[0])
    lct =datetime.utcfromtimestamp(date)# UTC(Unix標準時)に変換
    bitcoindate.append(lct)
    open.append(i[1])
    high.append(i[2])
    low.append(i[3])
    close.append(i[4])
    volume.append(i[5])
# DataFrameの作成
df=pd.DataFrame({"date":bitcoindate, "open":open, "high":high, "low":low, "close":close, 'volume':volume})

df['date'] = pd.to_datetime(df['date'])#dataをdatetimeに変換して置き換え
print(df['date'].dtype)
df.set_index('date', inplace=True)# indexをdateに設定

df

Out[ ]:

openhighlowclosevolume
date
2021-10-14 15:00:000.75210.79740.75180.77654856277.0
2021-10-14 16:00:000.77620.78070.76040.77761780635.0
2021-10-14 17:00:000.77700.77900.76220.76851136074.0
2021-10-14 18:00:000.76840.77800.76480.77261131613.0
2021-10-14 19:00:000.77140.77430.76360.7737508169.0
2021-11-25 00:00:007.70877.74277.30007.470810599016.0
2021-11-25 01:00:007.47007.49816.85356.887525090984.0
2021-11-25 02:00:006.88747.49256.87987.385219163103.0
2021-11-25 03:00:007.38397.52827.14647.184210905073.0
2021-11-25 04:00:007.18487.23007.08007.11311161806.0

998 rows × 5 columnsIn [ ]:

# ローソク足の描画
# 2020年5月 mplfinanceという新たなパッケージが作られている
# https://note.nkmk.me/python-pandas-matplotlib-candlestick-chart/
import mplfinance as mpf
%matplotlib inline
#mpf.plot(df)
mpf.plot(df, type='candle',  volume=True, mav=(50, 168),  style='yahoo')

コメント

タイトルとURLをコピーしました