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

Pine Script调用security函数报错:参数类型不匹配问题咨询

Pine Script中security函数调用错误的原因与解决方法

这个问题我碰到过不少次,咱们一步步拆解原因和解决办法:

错误原因

你触发这个错误的核心问题是参数类型不匹配:

  • 旧版security()函数的第一个ticker参数要求是常量字符串(const string),也就是不会随K线(bar)变化的固定字符串。
  • 但你的代码里,yr = tostring(year,"NSE:X####")中的year是一个序列(series)变量,随每个K线的年份变化,所以yr和最终的vol3_ticker都是series[string]类型(随K线变化的字符串序列),完全不符合security()的参数要求,因此触发了重载匹配失败的错误。

你的问题代码:

yr = tostring(year,"NSE:X####")
vol3_ticker = ticker+yr
vol3 = security(vol3_ticker, timeframe.period, volume, lookahead=barmerge.lookahead_on)

解决方法

要实现动态切换ticker的需求,你需要用Pine Script v5引入的request.security()函数——它专门支持series[string]类型的动态ticker参数,完美适配你的场景。

修改后的代码如下:

//@version=5
indicator("Dynamic Ticker Volume")
yr = tostring(year, "NSE:X####")
vol3_ticker = ticker + yr
// 用request.security替代旧版security,支持动态ticker
vol3 = request.security(vol3_ticker, timeframe.period, volume, lookahead=barmerge.lookahead_on)
plot(vol3, title="Dynamic Volume")

额外说明

如果你还在使用Pine Script v4,很遗憾v4没有原生支持动态ticker的security替代函数,你只能通过提前枚举所有可能的ticker,再用条件判断来切换(比如if year == 2023 then security("NSE:X2023", ...)),但这种方法扩展性很差,建议升级到v5来使用request.security。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 08:57:30