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

切换交易币种时能否让指标自动修改输入选项?

错误原因

你的代码有两处核心问题:

  1. syminfo.tickerid是Pine Script内置只读变量,不是支持传参的自定义/内置函数,它本身的作用是返回当前图表加载品种的完整标识字符串,直接加括号传参的写法不符合语法规则。
  2. Pine Script对变量作用域有严格要求,在if/else分支内赋值的变量如果需要在分支外使用,必须提前在全局作用域声明,且分支内赋值要使用:=运算符。
可直接运行的正确代码
//@version=5
indicator("品种匹配赋值Demo", overlay = true)

// 提前声明全局变量
var string Inst = na

// 直接将当前品种的tickerid和目标值做等值判断
if syminfo.tickerid == "BINANCE:ATOMUSDT"
    Inst := "BTCUSDTPERP_OI"
else if syminfo.tickerid == "BINANCE:AVAXUSDT"
    Inst := "AVAXUSDTPERP_OI"

// 以下为调试用输出,可根据实际业务逻辑替换
if barstate.islast
    label.new(bar_index, high, str.format("当前匹配Inst值:{0}", Inst), color=color.yellow)
扩展说明
  • 若不需要严格匹配交易所,仅判断交易对名称,可将判断条件替换为syminfo.ticker == "ATOMUSDT",兼容不同交易所加载的同名交易对。
  • 新增更多品种匹配规则时,直接在现有逻辑后追加else if判断分支即可。
  • 若需要匹配所有未在分支内列明的品种,可在最后加else分支给Inst设置默认值,避免出现空值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 14:31:00