Bitfinex 数据 API

Mus*_*ger 2 python api rest python-requests

我正在尝试使用 bitfinex REST api 获取历史 OHLC 数据,文档如下:https ://bitfinex.readme.io/v2/reference#rest-public-candles

我有以下代码:

try: 
     url = 'https://api.bitfinex.com/v2/candles/trade:1m:tBTCUSD/hist'
     params = { 'start': 1506816000, 'end': 1509674567 }
     r = requests.get(url, params = params)
     data = r.json()
     print(json.dumps(data, indent=2))

 except Exception, e:
     print e
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,我得到一个仅包含 100 个元素的列表,而不是给定时间段内的所有柱形图,我尝试更改“限制”参数,但它的最大值为 1000,这比 1 分钟柱形图的一天还少。

我还尝试使用来自 cryptowatch 的市场数据 API,使用以下网址: https: //api.cryptowat.ch/markets/gdax/btcusd/ohlc ,但无论我为开始和结束时间传递什么参数,它都会返回最后 500 个小节。(但是我希望能够指定时间范围并获取多个月的数据,就像大多数其他 API 一样)

有没有办法从 Bitfinex 获取历史数据?他们的 API 大部分都有详细的文档记录,所以我很惊讶仅仅获取历史数据是如此困难。

小智 5

Bitfinex API 需要 unix 时间 * 1000,意思是:

 params = { 'start': 1506816000000, 'end': 1509674567000 }
Run Code Online (Sandbox Code Playgroud)

您还可以添加“sort=”参数以按升序或降序对响应进行排序,也使您能够仅提供“start”参数或“end”参数示例:

https://api.bitfinex.com/v2/trades/tBTCUSD/hist?end=1509674567000&limit=1000&sort=-1
Run Code Online (Sandbox Code Playgroud)

将返回一个响应,其中第一行是距“1509674567000”时间戳最近的交易(常规 unix 时间为“1509674567”),最后一行只是“1509674567000”之前的 999 笔交易(应位于“1509673162000”)。