如何在观察列表型多证券图表中获取当前选中主标的ticker-id
在Pine Script观察列表中获取主标的信息
当你通过request.security()加载观察列表中的多个标的时,syminfo.ticker/syminfo.title会返回当前正在处理的标的信息,而非图表选中的主标的。解决这个问题的核心是在脚本初始化时存储主标的信息,利用var关键字确保变量只赋值一次:
- 使用
var声明变量,脚本首次运行(加载到主标的时)会将主标的信息存入变量,后续切换到其他标的时该变量不会被覆盖。
代码示例
//@version=5 indicator("主标的信息获取", overlay=false) // 存储主标的代码和名称,var确保仅初始化一次 var string mainTicker = syminfo.ticker var string mainSymbolName = syminfo.title // 示例:加载观察列表中的标的(这里以AAPL为例,可替换为你的Top-10标的列表) targetTicker = "AAPL" [targetClose] = request.security(targetTicker, timeframe.period, [close]) // 打印主标的与当前处理标的的信息 var label infoLabel = label.new(bar_index, high, "", color=color.blue, textcolor=color.white) label.set_text(infoLabel, str.format("主标的: {0}\n当前处理标的: {1}", mainSymbolName, syminfo.title))
关键说明
var变量的初始化仅在脚本首次加载时执行,此时syminfo指向的是图表选中的主标的,之后即使通过request.security()切换到其他标的,变量值也不会改变。- 如果图表切换了主标的,需要重新加载脚本才能更新主标的信息。
内容的提问来源于stack exchange,提问作者user21904974
相关产品推荐
相关产品推荐

