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

如何编写Pine Script指标绘制标普500 P/D(价息比)走势图

TradingView自定义标普500价息比(P/D)指标实现

原有未完成代码存在三个核心问题:未正确调用跨数据源的股息数据、未处理月度股息数据和日频价格的时间粒度差、残留了ROC指标的无关绘图代码,无法正常输出计算结果。

可直接运行的完整代码

//@version=5
indicator(title="标普500价息比(P/D)", shorttitle="SPX P/D", format=format.price, precision=2, overlay=false, timeframe_gaps=true)
// 拉取QUANDL平台的标普500月度每股股息数据,关闭未来函数避免回测失真
div_raw = request.security("QUANDL:MULTPL/SP500_DIV_MONTH", timeframe.period, close, gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off)
// 月度数据仅在更新日有值,其余交易日用上一次公布的最新股息填充
div_latest = ta.valuewhen(not na(div_raw), div_raw, 0)
// 计算价息比:当前标普500价格 / 最新月度每股股息
pd_value = close / div_latest
// 可选:计算20年历史均值作为估值参考
pd_ma20y = ta.sma(pd_value, 252*20)
// 绘图
plot(pd_value, color=#2962FF, linewidth=2, title="P/D走势")
plot(pd_ma20y, color=#FF5252, linewidth=1, linestyle=hline.style_dashed, title="20年历史均值")

核心逻辑说明

  • 跨数据源调用:使用Pine Script原生request.security函数拉取QUANDL平台的月度股息数据,设置lookahead=barmerge.lookahead_off参数杜绝未来函数,保证回测和实盘显示结果一致
  • 时间粒度对齐:月度股息每月仅更新一次,非更新日数据为空,通过ta.valuewhen函数自动向前取最近一次公布的有效值填充,匹配日频的标普500价格计算频率
  • 计算规则:直接读取当前图表主品种的收盘价(加载指标前需将主品种切换为SPX或对应标普500标的),除以填充后的最新股息值,得到实时价息比
  • 附加参考:默认附带20年历史均值参考线,可直观对比当前估值所处的历史位置

使用提示:如果需要显示不同时间周期的P/D值,直接切换图表周期即可,指标会自动对应周期下的价格和匹配的股息数据计算结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 10:36:39