如何在Pine Script中计算以天或小时为单位的时间差?
在Pine Script中计算时间差值的方法
在Pine Script里,所有时间相关变量(比如time、timestamp()的返回值)都是毫秒级Unix时间戳,计算两个时间的差值只需先求时间戳的差,再转换为你需要的单位即可。
核心转换逻辑
- 1小时 = 3600000毫秒(60分钟×60秒×1000毫秒)
- 1天 = 86400000毫秒(24小时×3600秒×1000毫秒)
代码示例(匹配你的需求)
下面的脚本会计算当前K线时间time与timestamp(2020,12,1,0,0)的小时/天级差值:
//@version=5 indicator("时间差计算示例", overlay=true) // 定义目标时间戳(2020年12月1日0点) target_timestamp = timestamp(2020, 12, 1, 0, 0) // 计算毫秒级时间差 ms_difference = time - target_timestamp // 转换为小时 hour_difference = ms_difference / 3600000.0 // 转换为天 day_difference = ms_difference / 86400000.0 // 在图表上显示结果 label.new(bar_index, high, str.format("与目标时间差:\n%.2f小时\n%.2f天", hour_difference, day_difference), color=color.new(color.blue, 0), textcolor=color.white, style=label.style_label_down)
注意事项
- 如果当前时间
time早于目标时间,差值会是负数,代表当前在目标时间之前;可以用math.abs(ms_difference)获取绝对值,得到纯粹的间隔长度 timestamp()和time默认都使用图表的时区,无需额外做时区转换- 保留小数位可以让结果更精确,比如示例中的
%.2f会保留两位小数
内容的提问来源于stack exchange,提问作者sey eeet
相关产品推荐
相关产品推荐

