如何修正Pine Script中个股与SPX比率计算结果恒为1的问题
个股与SPX收盘价比率计算修正
你的代码问题出在SPX数据的获取方式:input.source(close, "SPX")并没有实际调用SPX的收盘价,它只是将当前个股的收盘价作为输入源,所以close / SPX本质是当前个股收盘价除以自身,结果必然始终为1。
要正确获取SPX的收盘价,必须使用Pine Script的request.security()函数,这是跨标的调用数据的标准方法。修改后的完整代码如下:
//@version=5 indicator("个股/SPX 收盘价比率", overlay=false) // 跨标的获取SPX在当前周期的收盘价 spx_close = request.security("SPX", timeframe.period, close) // 计算个股与SPX的收盘价比率 ratio = close / spx_close // 绘制比率曲线 plot(ratio, title="个股/SPX 比率", color=color.blue)
关键修改说明
- 移除错误的
input.source语句,改用request.security("SPX", timeframe.period, close)直接拉取SPX的收盘价 timeframe.period表示使用当前图表的时间周期,若需要固定周期(比如日线),可替换为"D"、"W"等周期标识- 建议将指标设为非叠加模式(
overlay=false),更便于观察比率走势
注意事项
- 首次运行时需等待TradingView完成SPX数据的加载,否则可能出现临时的计算异常
- 确保你的TradingView账号有权限访问SPX的行情数据
内容的提问来源于stack exchange,提问作者MemphisRain
相关产品推荐
相关产品推荐

