Запрос исторических данных за периоды с более чем 350 точками

Я пытаюсь получить исторические данные о ценах на данный продукт за определенный период из GDAX API. Я понимаю следующее примечание:

Максимальное количество точек данных для одного запроса — 350 свечей. Если ваш выбор времени начала/окончания и детализации приведет к более чем 350 точкам данных, ваш запрос будет отклонен. Если вы хотите получить данные с высокой степенью детализации за более широкий временной диапазон, вам нужно будет сделать несколько запросов с новыми начальными и конечными диапазонами.

Однако, если бы я хотел получить дневное значение за 1 год со следующим кодом:

const Gdax = require('gdax');
const publicClient = new Gdax.PublicClient();

publicClient.getProductHistoricRates(
    'BTC-USD',
    { granularity: 60,
    start: '2017-01-01', end: '2018-01-01' }
).then((res) => {
    console.log(res)
});

то я получаю следующее сообщение об ошибке:

{ сообщение: 'детализация слишком мала для запрошенного диапазона времени' }

что имеет смысл, потому что будет 365 результатов, что превышает лимит в 350. Думаю, я мог бы сделать запрос на 1 января -> 16 декабря и второй запрос на 16 декабря -> 31 декабря. Однако следующее замечание:

Исторические данные о курсах могут быть неполными. Для интервалов, где нет тиков, данные не публикуются.

Предполагает, что, особенно на меньших интервалах, эта логика может быть ошибочной. Есть ли более интеллектуальный способ перечисления за период более 350 точек данных?


person George Edwards    schedule 10.02.2018    source источник


Ответы (1)


если вы хотите получить только дневное значение, вы должны изменить granularity на 86400, так как степень детализации - это сколько временных срезов в секунду вы хотите, 1 день = 86400 секунд, поэтому вы получаете 1 точку данных в день.

Итак, теперь, когда вы получаете 1 точку данных в день, вы можете запрашивать данные с 1 января по 16 декабря, а затем с 17 декабря по 31 декабря.

person SunriseM    schedule 10.02.2018
comment
Да, но, как я уже упоминал, проблема в том, что данные не гарантируют возврат значения для каждого периода, поэтому, если в течение нескольких дней в течение периода не было сделок, эти два запроса будут перекрываться/иметь повторяющиеся данные. . - person George Edwards; 11.02.2018
comment
ну, это не похоже на то, что gdax api дает лучший способ сделать это. Таким образом, вы можете получить первый период, а затем во втором вы проверяете, что время начала каждого ковша соответствует указанному интервалу (после 17 декабря). - person SunriseM; 11.02.2018