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

跨时间框架绘制特定3分钟K线开盘价水平线技术问询

解决方案:跨时间框架绘制特定3分钟K线的开盘价水平线

原代码失效的核心原因是:它直接在当前时间框架下判断hour==9 and minute==33,但15分钟、30分钟这类非3分钟K线的时间戳不会精确对应9:33,因此无法捕获到目标价格。要解决这个问题,我们需要主动获取3分钟时间框架下9:33的开盘价,再在当前框架中持续绘制这条水平线。

以下是修复后的完整代码:

//@version=5
indicator("9:33 3min Open Level", overlay=true)

// 定义目标时间:9点33分
target_hour = 9
target_minute = 33

// 获取3分钟时间框架下,对应9:33的开盘价
var float target_open = na
three_min_open = request.security(syminfo.tickerid, "3", open)
three_min_time = request.security(syminfo.tickerid, "3", time)

// 检查当前3分钟K线是否是目标时间,更新价格
if ta.time(three_min_time) == timestamp(year, month, dayofmonth, target_hour, target_minute)
    target_open := three_min_open

// 每个交易日重置价格,避免跨日残留
if session.isfirstbar
    target_open := na

// 绘制水平线,仅在获取到目标价格后显示
plot(target_open, color=color.new(color.blue, 0), linewidth=2, title="9:33 3min Open")

关键逻辑说明:

  • 跨框架数据获取:通过request.security()调用3分钟时间框架的开盘价和时间戳,精准定位9:33的K线。
  • 变量持久化:用var float定义target_open,确保价格在获取后不会被后续K线覆盖,持续保留至交易日结束。
  • 交易日重置:利用session.isfirstbar在每个交易日开始时清空存储的价格,避免上一日的价格影响当前交易日。
  • 精准时间匹配:用ta.time()将时间戳转换为可比较的格式,确保准确捕获9:33的3分钟K线。

你可以在15分钟、30分钟等任意时间框架下测试这段代码,它都会稳定绘制出对应3分钟K线9:33的开盘价水平线,直到当前交易时段结束。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:52:34