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

如何在Pine Script中根据输入的回测起止时间计算回测天数

在Pine Script中计算起止时间之间的天数

嘿,这事儿好办!你已经用input.time定义了回测的起始和结束时间戳,要算出两者之间的天数其实很简单——核心就是利用时间戳的单位转换来实现。

实现思路

Pine Script里的timestamp()返回的是毫秒级的时间戳,所以我们只需要两步:

  1. 计算结束时间与起始时间的毫秒差
  2. 将毫秒差转换为天数(1天 = 24小时 × 60分钟 × 60秒 × 1000毫秒 = 86400000毫秒)

完整代码示例

//@version=5
indicator("计算起止时间天数差", overlay=true)

// 定义你的时间输入参数
start_time = input(defval=timestamp("1 May 2021 06:00"), title="Start Time", type=input.time)
end_time = input(defval=timestamp("31 Dec 2021 20:00"), title="End Time", type=input.time)

// 计算时间差(单位:毫秒)
time_difference = end_time - start_time

// 转换为天数:用毫秒差除以一天的毫秒数
total_days = time_difference / 86400000.0

// 可选:获取完整天数(舍去小数部分)
full_days_count = math.floor(total_days)

// 在图表最后一根K线显示结果
var label result_display = label.new(bar_index, high, "", style=label.style_label_down)
if barstate.islast
    label.set_text(result_display, str.format("总天数(含小时/分钟): %.2f\n完整天数: %d", total_days, full_days_count))

关键细节说明

  • 用86400000.0而不是整数,是为了避免Pine Script的整数除法自动舍去小数的问题,这样能保留包含小时/分钟的部分天数
  • 如果需要四舍五入的完整天数,可以把math.floor()换成math.round()
  • 最后用label把结果显示在图表上,方便你直接查看计算结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 20:49:07