Pine Script如何在日线K线画线并在更低时间周期保留显示
跨周期显示日线级别绘制线条实现方案
首先纠正一个常见认知偏差:Security函数完全可以满足该需求,它的核心作用是拉取指定品种、指定周期的指标/价格数据,你之前的用法大概率是没有拆分计算逻辑和绘图逻辑,或者参数设置错误导致的低周期不显示。以下是两种可落地的实现方案:
方案1:使用Security函数实现(最简便,适合TradingView、通达信等支持跨周期函数的平台)
操作逻辑如下:
- 先在
Security函数的参数中指定请求日线周期,写入你需要绘制线条的计算逻辑,同时关闭未来函数参数、开启缺口对齐,避免数据漂移 - 在当前图表任意周期下直接调用Security函数返回的数值绘图,低周期所有K线会自动匹配所属交易日对应的日线计算结果,实现和日线级别完全一致的线条显示效果
以下是Pine Script v5的示例代码:
//@version=5 indicator("日线线条跨周期显示", overlay=true) // 替换此处为你自己的日线级别线条计算逻辑,示例为日线20日均线 daily_line_value = request.security(syminfo.tickerid, "D", ta.sma(close, 20), gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off) // 直接绘图,切换到1小时、1分钟等低周期时线条仍会完整显示 plot(daily_line_value, color=color.blue, linewidth=2, title="日线自定义线条")
方案2:手动时间匹配实现(适合不支持跨周期函数的平台)
如果所用平台不支持Security类跨周期函数,可以用时间标记映射法实现:
- 先给每个交易日生成唯一的日期标记,在日线级别计算得到每个交易日对应的线条数值,存入数组或变量组
- 低周期运行脚本时,先获取当前K线所属的交易日日期标记,匹配到对应交易日的线条数值后直接绘图即可
注意事项
- 所有线条的计算逻辑必须完全基于日线级别数据,不能混入低周期的计算参数,否则低周期显示的线条会和日线显示效果不一致
- 如果绘制的是日线级别固定点位(如压力位、支撑位),可以直接将点位数值存为全局变量,所有周期直接调用该变量绘图即可
内容的提问来源于stack exchange,提问作者feliks
相关产品推荐
相关产品推荐

