币安价格历史记录到最近的秒

时间:2021-04-19 10:29:53

标签: api price binance

我想获取币安的历史价格,例如特定时间的 BTC/USDT 精确到秒,例如2021-01-12 14:44:32 或 1610462672000。

这是为了对我从 Binance 下载的历史交易启用额外计算。

使用以下不允许我指定特定时间,它只返回当前价格: https://api1.binance.com/api/v3/ticker/price?symbol=BTCUSDT

结果:{"symbol":"BTCUSDT","price":"56647.67000000"}

第二个最好的方法是在特定时间到最接近的分钟获取 1 分钟间隔的蜡烛信息,但这将是不准确的,因为蜡烛的高低可以明显分开,不能代表当时的价格具体交易好不好。以下确实为我提供了特定时间到最近分钟的 1 分钟间隔的蜡烛信息。 https://api.binance.com/api/v1/klines?symbol=BTCUSDT&interval=1m&limit=1&startTime=1610462672000

结果:[[1610462700000,"33236.78000000","33457.76000000","33226.43000000","33429.99000000","226.79694600",1610462759999,"7557664.59062870",3318,"146.99868600","4897805.74883424","0"]]

理想情况如下,将特定时间的价格精确到最接近的秒,但这不起作用。 https://api1.binance.com/api/v3/ticker/price?symbol=BTCUSDT&startTime=1610462672000

任何有关这方面的帮助都会很棒,谢谢。

1 个答案:

答案 0 :(得分:1)

Binance REST API 支持的最低粒度(用于 kline 历史记录)是 1 分钟蜡烛图。

您需要使用 WSS API,实时接收每笔交易的消息并每秒汇总它们。

伪代码中的示例:

/*
 * example: [1618829431 => 50000.01, 1618829432 => 50001.05, 1618829433 => 50002.23]
 */
array closeTimeToPrice = [];

function handleNewTradeMessage(message) {
    closeTimeToPrice[message.tradeTimeInSeconds] = message.price;
}

binanceWssApi.subscribe('BTCUSDT@aggTrade', handleNewTradeMessage);