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

函数在最后bar调用时,如何获取特定日期后的首个开盘价?

获取特定时间戳后的首个开盘价(Pine Script)

正确实现代码

先定义目标时间戳,再通过精准条件定位到首个符合要求的K线,提取其开盘价:

// 定义目标时间戳(示例:2019年5月15日)
first_buy_timestamp_start = timestamp("2019-05-15")

// 获取目标时间戳后的首个开盘价
first_open_after = ta.valuewhen((time > first_buy_timestamp_start) and (time[1] <= first_buy_timestamp_start), open, 0)

// 可在最后一根K线输出结果
if barstate.islast
    label.new(bar_index, high, str.tostring(first_open_after), color=color.green)

你之前代码的问题分析

  1. 第一个代码:ta.valuewhen(time > first_buy_timestamp_start, open, 0)
    当前K线也满足time > 目标时间戳的条件,ta.valuewhen的索引0会返回**最近一次满足条件的K线(即当前K线)**的开盘价,而非历史上首个符合条件的K线。

  2. 第二个代码:
    你用if time > 目标时间戳 and testopen == 0.0赋值,但由于只在最后一根K线执行逻辑,这个条件只会在当前K线触发,自然赋值的是当前K线的收盘价,完全偏离需求。

核心逻辑说明

(time > first_buy_timestamp_start) and (time[1] <= first_buy_timestamp_start)这个条件只会匹配刚好跨过目标时间戳的那一根K线——也就是目标时间之后的第一根K线,通过ta.valuewhen提取这根K线的开盘价,就能精准得到你需要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:50:37