Pine Script如何设置input.time的defval默认值为当日日期
Pine Script input.time配置项设置当日为默认值实现方案
核心实现
直接通过Pine Script内置时间函数动态生成当日时间戳,替换原本写死的固定日期字符串即可,修正后可正常运行的代码如下:
// 默认值为UTC时区当日0点 starttime = input.time(title = "starttime", defval = timestamp(year(timenow), month(timenow), dayofmonth(timenow), 0, 0, 0))
可选调整
- 如果需要匹配交易对所属交易所时区的当日时间,给
timestamp传入时区参数即可:
// 默认值为交易所时区当日0点 starttime = input.time(title = "starttime", defval = timestamp(syminfo.timezone, year(timenow), month(timenow), dayofmonth(timenow), 0, 0, 0))
- 如果需要指定固定时区,直接替换第一个参数为时区字符串即可,比如东八区传
"Asia/Shanghai"。 - 如果需要默认当日的指定时间而非0点,调整
timestamp最后三个时分秒参数即可,例如要默认当日9点30分,就把最后三个参数改为9, 30, 0。
注意事项
input.time的默认值仅在脚本首次加载到图表、脚本重新编译时生成,不会随着交易日切换自动更新为最新的当日日期。如果策略逻辑需要始终锚定最新交易日的时间节点做判断,不需要放在input配置项中,直接在逻辑层定义当日时间变量即可。
原示例代码存在语法问题:函数调用末尾缺少一个闭合右括号,复制使用时需要注意补全。
内容的提问来源于stack exchange,提问作者rr1050
相关产品推荐
相关产品推荐

