如何用Pine Script在K线图右上角显示跨周期前一日ATR及30%ATR数值
Pine Script 实现方案
你的需求完全可以实现,核心是通过Pine Script内置的request.security()函数调用独立的日线周期ATR数据,不受当前图表的时间周期切换影响。
实现思路
- 调用日线周期的ATR指标,固定绑定前一交易日已收盘的ATR数值,避免当日盘中K线波动导致数值变动
- 计算该日线ATR的30%对应数值
- 用固定标签将两个数值展示在K线图右上角位置
完整可运行代码
//@version=5 indicator("固定日线ATR展示", overlay=true) // 自定义ATR计算周期,默认14,可按需修改 atr_length = input.int(14, title="ATR计算周期", minval=1) // 调用日线级别已收盘的前一根K线ATR数据 daily_atr = request.security(syminfo.tickerid, "D", ta.atr(atr_length)[1]) // 计算30%ATR数值 atr_30per = daily_atr * 0.3 // 固定在右上角生成展示标签 var label atr_show_label = label.new(bar_index, high, "", style=label.style_label_left_up, color=color.new(color.gray, 90), textcolor=color.white, size=size.small) if barstate.islast // 标签位置绑定最近20根K线的最高点,避免被K线遮挡 label.set_xy(atr_show_label, bar_index, ta.highest(high, 20)) label.set_text(atr_show_label, "前收盘日线ATR: " + str.tostring(daily_atr, "0.000") + "\nATR 30%值: " + str.tostring(atr_30per, "0.000"))
参数调整说明
- 如需修改ATR的计算周期,直接修改指标面板里的「ATR计算周期」参数即可
- 如需调整展示的小数位数,可修改
str.tostring方法里的0.000格式,比如保留2位小数就改为0.00 - 如需修改标签颜色、字体大小,调整
label.new里的对应参数即可
内容的提问来源于stack exchange,提问作者Fabrim
相关产品推荐
相关产品推荐

