如何从实时当前K线遍历至当日首根K线?附故障代码求助
解决Pine Script中回溯当日首根K线的循环问题
问题分析
你当前的代码存在两个核心问题:
time_tradingday是当日已过的分钟数(而非K线索引),不能直接作为循环的终止条件;for i to loop_here的语法不完整,Pine Script要求循环必须明确起始值。
修正方案
首先自定义判断当日6:30开盘后的首根K线,再计算当前K线到首根K线的间隔数,最后通过循环回溯:
//@version=5 indicator("回溯当日K线", overlay=true) // 标记当日6:30开盘后的首根K线 is_new_session = ta.change(time("0630-2359", session.extended)) // 计算当前K线到当日首根K线的间隔数 bars_since_session = ta.barssince(is_new_session) if barstate.islast // 从当前K线回溯至当日首根K线 for i = 0 to bars_since_session // 示例:访问i根之前的K线收盘价,替换为你的业务逻辑 target_close = ta.close[i] label.new(bar_index - i, target_close, str.tostring(target_close), color=color.blue)
关键说明
time("0630-2359", session.extended):指定交易会话从6:30开始,ta.change()会在每日首次进入该会话时返回true,精准标记当日首根K线;ta.barssince(is_new_session):返回从当前K线到最近一次is_new_session为true的K线间隔数,作为循环的终止边界;- 循环中通过
ta.close[i]可访问i根之前的K线数据,i=0对应当前K线,i=bars_since_session对应当日首根K线。
内容的提问来源于stack exchange,提问作者TheDude
相关产品推荐
相关产品推荐

