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

如何在request.security调用的月度指标更新时绘制图形?

解决OECD领先指标在周/日线图上的月度更新标记问题

你要在周/日线图上,每次月度标的数据更新时绘制图形,原代码的问题出在两点:一是指标强制绑定了timeframe="1M",导致指标运行在月度框架下;二是plotshape的条件用错了,没有检测数据变化的信号。

修改后的代码

//@version=5
indicator(title="OECD Leading indicators", overlay=false, timeframe_gaps = false)

// 在当前图表框架(周/日)下,拉取月度标的数据
plt = request.security("FRED:USALOLITONOSTSAM", timeframe="1M", expression=close)
plot(plt, color=color.blue, linewidth=2)

// 检测数据更新信号:当指标值发生变化时触发
data_updated = ta.change(plt) != 0

// 只在数据更新的K线上绘制图形
plotshape(data_updated, style=shape.circle, location=location.absolute, 
          size=size.tiny, color=color.rgb(54, 58, 69, 40), 
          yloc=yloc.price, y=plt)

关键修改说明

  • 移除了indicator中的timeframe="1M"参数,让指标跟随当前图表的时间框架(周/日)运行,这样你就能在目标周期下查看数据。
  • 用ta.change(plt) != 0生成数据更新的信号,这个信号只会在新月度数据出现的第一根K线上为true,精准对应更新节点。
  • plotshape的条件改为data_updated,并通过y=plt让标记精准落在指标值对应的位置,避免错位。

如果需要在整个包含新数据的周期内(比如日线图里整个月的K线)都显示标记,可以把信号逻辑改成:

last_update_value = ta.valuewhen(data_updated, plt, 0)
data_updated_all = plt == last_update_value

再用data_updated_all作为plotshape的条件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 13:55:23