You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于timestamp获取对应candle的closed price及指定回溯K线收盘价

K线收盘价查询方案

1. 根据指定时间戳查询对应K线收盘价

  • 第一步:先确定你使用的K线时间粒度(如1分钟、5分钟、日线等),将输入的目标时间戳对齐到对应粒度的K线起始时间。
    举个例子:如果使用1小时粒度K线,目标时间戳为1718001234(对应北京时间2024-06-10 14:33:54),对齐到小时级起始时间的结果为1718000800(对应北京时间2024-06-10 14:00:00),这个值就是对应K线的唯一匹配标识。
  • 第二步:用对齐后的时间戳匹配K线数据集中的start_time(或其他对应K线起始时间的字段),匹配成功即可直接读取该条K线的收盘价字段。
  • 本地K线数组查询参考代码(JavaScript):
// 按时间从旧到新排序的K线数组,单条结构:{startTime: 时间戳, close: 收盘价}
function getCloseByTimestamp(candleList, granularity, targetTimestamp) {
  // granularity单位为秒,如1小时粒度传入3600
  const alignedTs = Math.floor(targetTimestamp / granularity) * granularity
  return candleList.find(item => item.startTime === alignedTs)?.close
}

2. 获取当前K线向前回溯第5根K线的收盘价

  • 第一步:确认K线序列规则:首先排除当前未完成收盘的在生成K线,仅使用完全收盘的历史K线数组,同时确认数组排序方向。
  • 第二步:按排序规则直接取值即可,无需额外处理时间戳:
    • 若数组按时间从旧到新排序,取数组末尾向前数第5个元素的收盘价
    • 若数组按时间从新到旧排序,直接取下标为4的元素即可(数组索引从0开始)
  • 参考代码(JavaScript,数组按从旧到新排序):
function get5thPrevCandleClose(candleList) {
  // 数组长度不足5时返回空,可根据业务需求调整异常处理逻辑
  if (candleList.length < 5) return null
  return candleList.at(-5).close
}

内容的提问来源于stack exchange,提问作者Javafuel B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 16:36:04