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

Pine Script如何检测图表时间周期并格式化警报中的timeframe.period值

Pine Script 时间周期格式化解决方案

原代码错误点

  • timeframe.period 为字符串类型,无法直接进行数值比较、取模/除法运算
  • 自定义变量名timeframe与Pine内置的timeframe命名空间冲突,会触发编译报错
  • 转换逻辑错误:将分钟级的周期值转换为小时数需要做除以60运算,你写的取模逻辑会得到120%60=0的错误结果,同时Pine不支持直接用1D作为数值参与比较

可直接运行的实现代码

// 格式化时间周期为易读格式
var string readableTimeframe = na
tfTotalSeconds = timeframe.in_seconds()

if tfTotalSeconds < 86400 // 小于1天的周期做转换
    if timeframe.ishours
        // 小时级周期直接取乘数,可按需添加H后缀,不需要直接删即可
        readableTimeframe := str.tostring(timeframe.multiplier) + "H"
    else
        // 分钟/秒级周期直接输出原乘数,可按需加M/S后缀
        readableTimeframe := str.tostring(timeframe.multiplier)
else
    // 天及以上周期直接用原值
    readableTimeframe := timeframe.period

msgr1 = syminfo.ticker + ',' + readableTimeframe + ', Crossed Resistance 1'

if srLines == true and close > h10
    alert(msgr1)

逻辑说明

  • 用内置函数timeframe.in_seconds()获取当前周期对应的总秒数,和86400(1天对应的秒数)做比较,判断逻辑严谨无歧义
  • 内置变量timeframe.ishours、timeframe.multiplier可以直接获取周期的类型和数值部分,不需要手动做单位转换,避免计算错误
  • 输出添加了H后缀便于识别,不需要可以直接删除+ "H"部分,就会只输出纯数字的小时值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:54:04