Как получить исторические данные с bitfinex.com без ограничений?

Я рисую график, используя данные, полученные с bitfinex.com с помощью простого запроса API. В результате мне нужно будет отобразить график, который покажет исторические данные BTCUSD за последние два года. Документы доступны прямо здесь: https://bitfinex.readme.io/v2/reference#rest-public-candles Все работает нормально, за исключением ограничения извлекаемых данных.

Это мой запрос: https://api.bitfinex.com/v2/candles/trade:1h:tBTCUSD/hist?start=1514764800000&sort=1

Результат можно посмотреть здесь или скопировать запрос в браузер: https://docs.google.com/document/d/1sG11Ro0X21_UFgUtdqrlitcCchoSh30NzGCgAe6M0u0/edit?usp=sharing

Проблема в том, что я получаю свечи только на 5 дней независимо от того, какие даты или параметры я использую. Я могу получить больше свечей, если добавлю в строку параметр limit. Но все равно больше 1100-1000 свечей не могу получить. Я даже получаю ошибку 500 от сервера:

Ошибка сервера: GET https://api.bitfinex.com/v2/candles/trade:1h:tBTCUSD/hist?limit=1100&start=1512086400000&end=1516233600000&sort=1 привел к ответу 500 Internal Server Error:\n ["error" ,10020,"лимит: неверный"]. Каким должен быть допустимый предел? В документах такой информации нет.

Как я могу получить желаемый объем данных за два года? Я не хочу разбивать свой запрос на более мелкие части и идти шаг за шагом. Это будет выглядеть некрасиво.

Ответы (3)

Мое предложение состоит в том, чтобы получить данные по фрагментам, например:

  • 1 января 2017 г. - 31 июля 2017 г.
  • 1 августа 2017 г. - 31 декабря 2017 г.

Затем объедините свой код

Вот один из способов сделать это: https://github.com/nateGeorge/bitfinex-ohlc-import . В основном я беру самые ранние свечи, а затем работаю дальше. Если в БД уже есть какие-то свечи, она обновляется до текущего времени.

limit=1000 — это максимум, что вы можете получить.