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

TradingView Pine Script自定义指数security函数报错问题

错误原因

报错由字符串引号格式错误导致:你的代码中使用了中文全角双引号作为字符串闭合符,Pine Script 仅支持英文半角双引号识别字符串边界。
定位到你代码第6行:BP_close=security(symbol="NYSE:BP”, resolution=timeframe.period, expression=close) 中NYSE:BP后的闭合引号是中文全角的”,解析器匹配不到对应的英文半角闭合引号,读取到换行符时就抛出了mismatched character '\n' expecting '"'的错误。
你注释掉的其余3行security调用也存在同样的全角引号问题,取消注释后会触发同类报错。
另外补充:Pine Script v5版本中,跨周期/跨品种调用函数已更新为request.security(),旧的security()写法存在兼容风险,建议替换为标准写法。

修正后完整可运行代码
//@version=5
indicator("Oil_Majors_Index", overlay=false)

// 调用各成分股收盘价
BP_close = request.security(symbol="NYSE:BP", timeframe=timeframe.period, expression=close, gaps=gaps.fill)
COP_close = request.security(symbol="NYSE:COP", timeframe=timeframe.period, expression=close, gaps=gaps.fill)
CVX_close = request.security(symbol="NYSE:CVX", timeframe=timeframe.period, expression=close, gaps=gaps.fill)
XOM_close = request.security(symbol="NYSE:XOM", timeframe=timeframe.period, expression=close, gaps=gaps.fill)

// 计算等权重石油巨头指数
OIL_Majors_Close = (BP_close + COP_close + CVX_close + XOM_close) / 4

// 绘图,可按需注释/取消注释切换展示内容
plot(BP_close, color=color.new(color.blue, 0), title="BP收盘价")
plot(OIL_Majors_Close, color=color.new(color.red, 0), title="石油巨头等权指数", linewidth=2)

代码中额外添加的gaps=gaps.fill参数用于自动填充不同品种交易时间差异导致的数据缺口,避免指数线出现断档。

避坑提示
  • 编写Pine Script代码时,所有语法符号(引号、括号、逗号、等号)都需要切换到英文半角输入法输入,中文全角符号会直接触发语法错误
  • 你当前使用的等权平均计算逻辑是成立的,如果要做更贴近实际指数的计算,后续可以加入价格复权、权重动态调整、成分股调整等逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 02:42:28