通貨×システム

FX、仮想通貨のシステムトレードなどについて書くブログ。

PythonでbitFlyerのBTCFXのローソク足を取得してみた

f:id:topical-currency:20171111193615p:plain

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価格を取得することができます。

まとめ

ローソク足が取得できました。


botを動かすならbitFlyerがおすすめです♪
【bitFlyerのアカウント作成】