1

我正在尝试从 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 个限制。我相信我可以查询1st Jan -> 16th Dec和第二个查询16th Dec -> 31st Dec。但是,以下注意事项:

历史汇率数据可能不完整。对于没有刻度的区间,不会发布任何数据。

建议特别是在较小的间隔内,该逻辑可能不合理。有没有更智能的方法来枚举超过 350 个数据点?

4

1 回答 1

1

如果您只想获取每日值,则应将 更改granularity86400,因为粒度是每秒所需的时间片数,1 天 = 86400 秒,因此您每天获得 1 个数据点。

因此,现在您每天获得 1 个数据点,您可以在 1 月 1 日至 12 月 16 日以及 12 月 17 日至 12 月 31 日期间请求。

于 2018-02-10T21:51:27.240 回答