![見出し画像](https://assets.st-note.com/production/uploads/images/60606356/rectangle_large_type_2_7dacf5caa083d997defc463b157b4fab.jpg?width=800)
ccxtを使ってbybitのBTC価格を取得する
準備
python3とccxtライブラリを使用します。
pip install ccxt
必要ライブラリをインポート
import datetime
import time
import ccxt
import pandas as pd
import matplotlib.pyplot as plt
ccxtライブラリを使ってbybitのBTCUSD価格のろうそく足を取得する
# ろうそく足を取得する関数
def get_ohlcv_bybit(symbol,interval,bar):
bybit = ccxt.bybit()
data = bybit.v2_public_get_kline_list({"symbol":symbol,"interval":interval, "from":int(time.time())-bar*60*200})
pd_data = pd.DataFrame(data["result"])
timestamp = pd_data["open_time"]
pd_data["open_time"] = [datetime.datetime.fromtimestamp(int(timestamp[i])) for i in range(len(timestamp))]
pd_data[["open","high","low","close","volume"]] = pd_data[["open","high","low","close","volume"]].astype(float)
return pd_data
# BTCインバース無期限,日足
pd_BTCUSD = get_ohlcv_bybit(symbol="BTCUSD",interval="D",bar=24*60)
print(pd_BTCUSD)
(base) PS C:\Users\kyu31\Desktop\python\bybit> python sakimono.py
symbol interval open_time open high low close volume turnover
0 BTCUSD D 2021-02-16 09:00:00 47993.5 50855.0 47070.0 49235.0 7.879099e+09 160767.59090964793
1 BTCUSD D 2021-02-17 09:00:00 49235.0 52735.0 49079.5 52188.0 8.750696e+09 171799.30930976328
2 BTCUSD D 2021-02-18 09:00:00 52188.0 52667.0 50872.0 51613.5 6.046074e+09 116548.507076009
3 BTCUSD D 2021-02-19 09:00:00 51613.5 56395.5 50684.0 55850.0 8.767228e+09 163471.1582492604
4 BTCUSD D 2021-02-20 09:00:00 55850.0 57699.0 54040.0 55968.0 8.310422e+09 147725.37764111438
.. ... ... ... ... ... ... ... ... ...
195 BTCUSD D 2021-08-30 09:00:00 48815.0 48901.5 46873.0 46993.0 4.450433e+09 92732.23000090111
196 BTCUSD D 2021-08-31 09:00:00 46993.0 48323.0 46712.0 47177.0 4.812691e+09 101428.82051317676
197 BTCUSD D 2021-09-01 09:00:00 47177.0 49170.0 46576.0 48891.5 4.650844e+09 97191.89783479348
198 BTCUSD D 2021-09-02 09:00:00 48891.5 50418.0 48677.5 49330.0 4.704039e+09 94554.31360394563
199 BTCUSD D 2021-09-03 09:00:00 49330.0 49800.0 48369.0 49475.0 1.496950e+09 30476.27217180919
価格をプロットしてみる
# グラフを作成
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
ax1.plot(pd_BTCUSD["open_time"],pd_BTCUSD["close"],label='BTCUSD')
ax1.set_ylabel("price")
ax1.legend()
plt.xticks(rotation=90)
plt.tight_layout()
plt.show()
補足
get_ohlcv_bybit関数:
symbolで価格ペアを指定できる。
イーサリアムなら、symbol=ETHUSD
intervalとbarでろうそく足の期間を指定する。
intervalは文字列で以下を指定できる。
1 3 5 15 30 60 120 240 360 720 "D" "M" "W"
barは整数で、ろうそく足が何分足かを指定する。
interval="60"ならbar=60
interval="D"ならbar=24*60
↓bybitoの口座開設はこちらから
https://www.bybit.com/register?affiliate_id=22416&group_id=0&group_type=1
↓ボーナスがもらえる紹介コード
22416
この記事が気に入ったらサポートをしてみませんか?