如何用Pine Script绘制9:30K线指定属性的阶梯式水平线?
解决每日9:30开盘价阶梯水平线问题
原代码的核心问题是仅在0930-0931时段输出开盘价,其余时段无有效数据,无法实现持续显示到次日9:30的效果。以下是修改后的代码,通过缓存目标时段的开盘价来实现需求:
//@version=5 indicator("每日9:30开盘价阶梯线", overlay=true) show1 = input(true, "显示阶梯线", inline="LINE ONE") color1 = input(#ff0000, "线条颜色", inline="LINE ONE") // 设定目标时段为每日9:30-09:31 target_session = input.session("0930-0931", "目标时段") // 判断当前K线是否处于目标时段内 is_target_bar = ta.sessionismarket(target_session) // 用var定义缓存变量,保持值跨K线不重置 var float cached_open = na // 仅在目标时段更新缓存的开盘价 if is_target_bar cached_open = open // 绘制阶梯线:仅当开启显示且缓存值有效时输出 plot(show1 and not na(cached_open) ? cached_open : na, color=color1, linewidth=4, title="9:30开盘价阶梯线")
关键修改说明
var float cached_open = na:使用var关键字确保变量在脚本运行全程保留值,不会随每根K线重置。is_target_bar:通过ta.sessionismarket检测当前K线是否落在目标时段内,精准触发开盘价更新。- 缓存逻辑:仅在每日9:30时段将
cached_open更新为当日开盘价,后续所有K线持续使用该值,直到次日9:30时段到来时自动更新。
内容的提问来源于stack exchange,提问作者Bor Maszyna
相关产品推荐
相关产品推荐

