見出し画像

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()


画像1

補足

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




この記事が気に入ったらサポートをしてみませんか?