币安价格历史记录精确到秒

问题描述 投票:0回答:1

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

这是为了对我从币安下载的历史交易进行额外计算。

使用以下命令不允许我指定具体时间,它只返回当前价格:

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

任何有关此问题的帮助都会很棒。

binance cryptocurrency
1个回答
2
投票

币安 REST API 支持的最低粒度(对于 K 线历史)是 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);
© www.soinside.com 2019 - 2024. All rights reserved.