BitMEX APIを使用したローソク足データの取得

現在BitMEXで動くbotを作成しています。

ローソク足のデータをcryptowatchから取得していたのですが、にサーバーがとまったり、BitMEXとの微妙な価格のズレがあったので、BitMexから直接価格を取得する方法に変更しました。備忘録として方法を記載します。

まずはライブラリccxtのimportと取引所オブジェクトの読み込みを行います。

import ccxt

bitmex = ccxt.bitmex()

次に現在の取引所の時刻を取得します。

timest = bitmex.fetch_ticker('BTC/USD')['timestamp']

timestという変数に現在の時刻(エポック秒)が読み込まれました。

今回の例では60分足5本を取得します。まずは先ほど取得したtimest変数を書き換えます。3600秒*5本分を現在時刻から減算します。

timest = timest - 5*3600000

ローソク足データを取得するにはfetch_ohlcvを使用します。

パラメータとしてペア、時間軸、いつから取得するかを設定します。

candles = bitmex.fetch_ohlcv('BTC/USD', timeframe = '1h', since = timest)

実行結果は以下のとおりで、60分足が過去5本分取得されます。

※一番上のローソクデータは現在動いている価格データになります。クローズされていない

[[1521162000000, 8250.5, 8339.5, 8010, 8038, 165867699], 
[1521165600000, 8038, 8075, 7873, 7985, 159297658], 
[1521169200000, 7985, 8101.5, 7946, 8080.5, 117083482],
[1521172800000, 8080.5, 8129, 7988, 8025.5, 95439733], 
[1521176400000, 8025.5, 8285.5, 8008, 8191, 143949340], 
[1521180000000, 8191, 8233, 8170, 8213, 51309621]]

ポイントとしてはローソク足データを取得する際にsinceパラメータに過去のいつからデータを取得するかという情報をあたえることが必要になります。

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!