PythonでbitFlyerのBTCFXのローソク足を取得してみた
bitFlyerで動くbotの開発にあたり、移動平均を計算するためにローソク足が必要になりました。
調べたところ、bitFlyerのAPIではローソク足を取得することができないようです。
そのため、CryptowatchのAPIを利用しました。
Public Market REST API - Cryptowatch
ソースコード
Python3系です。
import requests import json if __name__ == "__main__": #ローソク足の時間を指定 periods = ["60","300"] #クエリパラメータを指定 query = {"periods":','.join(periods)} #ローソク足取得 res = json.loads(requests.get("https://api.cryptowat.ch/markets/bitflyer/btcfxjpy/ohlc",params=query).text)["result"] #表示 for period in periods: print("period = "+period) row = res[period] length = len(row) for column in row[:length-8:-1]: print (column)
実行結果
period = 60 [1511242680, 928400, 928800, 927153, 927670, 150.75642] [1511242620, 927000, 929390, 926251, 928090, 448.1895] [1511242560, 924000, 927386, 923222, 927001, 261.65695] [1511242500, 922286, 924563, 921521, 924098, 151.61089] [1511242440, 922761, 922761, 921800, 922414, 49.688206] [1511242380, 922295, 922945, 921004, 922544, 141.00052] [1511242320, 923613, 923613, 921350, 922300, 95.51899] period = 300 [1511242800, 924000, 929390, 923222, 927670, 860.60345] [1511242500, 921743, 924563, 921004, 924098, 632.33167] [1511242200, 923495, 923991, 920200, 921743, 684.47925] [1511241900, 919135, 924794, 915890, 923496, 888.816] [1511241600, 914736, 922536, 914736, 919537, 909.10284] [1511241300, 921021, 921107, 912210, 914980, 853.9754] [1511241000, 917500, 921377, 916061, 921001, 964.6998]
解説
period = 60 が1分足、period = 300 が5分足です。
それぞれ直近の7件を表示しました。
表示したリストの要素は
[UNIX timestamp, 始値, 高値, 安値, 終値, 出来高]
です。
クエリパラメータのbeforeにUNIX timestamp形式で時間を指定すればその時間以前のデータ、afterに時間を指定すればその時間以後のデータのみを取得することができます。
URLの/btcfxjpyの部分を/btcjpyに変更することでビットコイン現物価格、/ethbtcにすることでETH/BTC価格、/bchbtcにすることでBCH/BTC価格を取得することができます。