TradingView利差品种报错Cannot get a 'ticker' of a spread symbol求助
错误原因
利差(spread)类型标的不支持syminfo.ticker属性调用,你当前代码无论标的类型,都会先执行syminfo.prefix+":"+syminfo.ticker的拼接逻辑,所以遇到利差品种时直接触发报错,和后续的条件判断逻辑无关。
修复方案
利用Pine Script三元运算符的惰性求值特性,仅在非利差标的时执行标的代码拼接和security请求,利差品种直接返回当前图表的OHLC数据即可,完全规避对syminfo.ticker的无效调用。
修复后完整代码
//@version=4 study("spread", overlay=true) var float close_lock = na var float open_lock = na var float high_lock = na var float low_lock = na // 仅非利差标的时执行security请求,利差标的直接取当前OHLC [o, h, l, c] = syminfo.type != 'spread' ? security(syminfo.prefix+":"+syminfo.ticker , timeframe.period , [open, high, low, close] ,barmerge.gaps_off, barmerge.lookahead_on) : [open, high, low, close] if (syminfo.type != 'spread') close_lock := c open_lock := o high_lock := h low_lock := l else close_lock := close open_lock := open high_lock := high low_lock := low plot(close_lock)
验证效果
- 普通标的切换至HA、Renko、Kagi等特殊图表类型时,仍可正常获取原生K线的OHLC数据
- 利差品种运行时无报错,直接调用当前图表自带的OHLC数据,符合需求
内容的提问来源于stack exchange,提问作者rohan sawant
相关产品推荐
相关产品推荐

