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

遵循PineCoders最佳实践时Pine脚本time类型变量声明报错的解决方案咨询

解决Pine Script中time类型声明的报错问题

我来帮你搞定这个Pine Script的类型声明问题!你遇到的'time' is not a valid type keyword in variable declaration报错,核心原因是Pine Script的类型系统里根本没有time这个类型关键字——时间戳(包括input.time组件返回的值)本质上是Unix时间格式的整数,所以正确的类型应该是int。

具体修改方案

你只需要把变量声明里的time换成int,就能解决报错,同时完全符合PineCoders的最佳实践,和你提到的LucF的脚本写法保持一致:

修改后的完整代码如下:

var string START_TIME = "2018-01-01T00:00"
var string END_TIME = "2030-01-01T00:00"
var string GP12 = "Date range filtering"
bool i_dateFilter = input(false, "Date Range Filtering", group = GP12)
int i_startDateTime = input(timestamp(START_TIME), "Start Date/Time", type = input.time, group = GP12)
int i_endDateTime = input(timestamp(END_TIME), "End Date/Time", type = input.time, group = GP12)
f_tradeDateIsAllowed() => i_dateFilter ? (time >= i_startDateTime and time <= i_endDateTime) : true

额外说明

  • input.time组件虽然提供了可视化的时间选择器,但它返回的是整数类型的Unix时间戳,所以用int类型声明变量是完全正确的。
  • 你不需要修改f_tradeDateIsAllowed()函数里的逻辑:Pine Script内置的time变量本身也是整数类型的时间戳,和你声明的i_startDateTime、i_endDateTime类型匹配,直接做大小比较完全合法。
  • 你提到的LucF的脚本中,也是用int类型来存储时间输入值的,这个写法完全符合Pine Script的类型规范和最佳实践。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 17:52:37