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

Pine Script如何动态设置固定open_time变量 无需每日手动修改

Pine Script 动态生成固定日期时间值实现方案

Pine Script 中input.time的默认值仅支持传入常量,timestamp()函数也不支持接收动态变量作为入参,因此无法直接通过timenow动态生成输入框的默认值,可通过以下两种方案实现需求:

方案1:全自动计算(无需手动调整,值固定不随K线变动)

直接通过时间框架函数计算前一日指定固定时间,不需要设置输入框,值一旦生成当日不会变化:

//@version=5
indicator("Day trade MA", overlay=true)

// 自定义目标时间参数,可按需修改
target_hour = 0 // 目标小时(对应+0300时区)
target_minute = 0 // 目标分钟
offset_day = 1 // 取当前日期前N天,填1对应前一日

// 计算前一日0点的基准时间
prev_day_start = ta.valuewhen(ta.change(time("D")), time, offset_day)
// 叠加固定时分偏移得到最终open_time,单位为毫秒
open_time = prev_day_start + (target_hour * 60 + target_minute) * 60 * 1000

// 测试输出验证时间是否正确
plotchar(open_time, "open_time", "⏰", location.belowbar, size = size.small)

说明:该方案计算出的open_time是固定值,只会在每日开盘时更新一次,不会随单根K线滚动变化,完全适配日内交易场景。如果使用Pine Script v4版本,将代码中的ta.valuewhen改为valuewhen,indicator改为study即可正常运行。

方案2:支持手动覆盖的混合方案

如果需要保留手动调整时间的能力,可同时保留输入框,默认优先使用自动计算的时间,需要手动调整时切换即可:

//@version=5
indicator("Day trade MA", overlay=true)

// 开关设置
use_auto_time = input.bool(true, "自动使用前一日目标时间")
manual_open_time = input.time(timestamp("10 Jul 2021 00:00 +0300"), "手动指定时间", step=1)

// 自定义目标时间参数
target_hour = 0
target_minute = 0
offset_day = 1

// 自动计算时间
prev_day_start = ta.valuewhen(ta.change(time("D")), time, offset_day)
auto_open_time = prev_day_start + (target_hour * 60 + target_minute) * 60 * 1000

// 最终取值
open_time = use_auto_time ? auto_open_time : manual_open_time

plotchar(open_time, "open_time", "⏰", location.belowbar, size = size.small)

说明:默认开启自动计算时不需要手动修改任何参数,需要临时指定特殊时间时,关闭自动开关即可使用手动输入的时间值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 12:45:02