为TradingView指标添加符号组时出现语法错误求助
修复TradingView指标中的三元运算符语法错误
问题根源
添加第三组符号后出现语法错误,核心原因是Pine Script的三元条件运算符仅支持二元分支,标准格式为条件 ? 真值 : 假值,不能直接用条件?值1:值2:值3这种多冒号写法,这不符合语法规范。
你的需求是根据symGrp的三个取值(Group1/Group2/Group3)返回对应变量,需要通过嵌套三元表达式实现多分支判断。
修复后的代码
替换原代码中// SHOW THE SYMBOLS下方的变量定义部分:
// SHOW THE SYMBOLS u01 = symGrp == 'Group1' ? v01 : symGrp == 'Group2' ? v21 : v41 u02 = symGrp == 'Group1' ? v02 : symGrp == 'Group2' ? v22 : v42 u03 = symGrp == 'Group1' ? v03 : symGrp == 'Group2' ? v23 : v43 u04 = symGrp == 'Group1' ? v04 : symGrp == 'Group2' ? v24 : v44 u05 = symGrp == 'Group1' ? v05 : symGrp == 'Group2' ? v25 : v45 u06 = symGrp == 'Group1' ? v06 : symGrp == 'Group2' ? v26 : v46 u07 = symGrp == 'Group1' ? v07 : symGrp == 'Group2' ? v27 : v47 u08 = symGrp == 'Group1' ? v08 : symGrp == 'Group2' ? v28 : v48 u09 = symGrp == 'Group1' ? v09 : symGrp == 'Group2' ? v29 : v49 u10 = symGrp == 'Group1' ? v10 : symGrp == 'Group2' ? v30 : v50 u11 = symGrp == 'Group1' ? v11 : symGrp == 'Group2' ? v31 : v51 u12 = symGrp == 'Group1' ? v12 : symGrp == 'Group2' ? v32 : v52 u13 = symGrp == 'Group1' ? v13 : symGrp == 'Group2' ? v33 : v53 u14 = symGrp == 'Group1' ? v14 : symGrp == 'Group2' ? v34 : v54 u15 = symGrp == 'Group1' ? v15 : symGrp == 'Group2' ? v35 : v55 u16 = symGrp == 'Group1' ? v16 : symGrp == 'Group2' ? v36 : v56 u17 = symGrp == 'Group1' ? v17 : symGrp == 'Group2' ? v37 : v57 u18 = symGrp == 'Group1' ? v18 : symGrp == 'Group2' ? v38 : v58 u19 = symGrp == 'Group1' ? v19 : symGrp == 'Group2' ? v39 : v59 u20 = symGrp == 'Group1' ? v20 : symGrp == 'Group2' ? v40 : v60
逻辑说明
- 优先判断
symGrp是否为Group1,满足则返回对应v0x变量 - 若不为
Group1,则判断是否为Group2,满足则返回对应v2x变量 - 剩余情况(即
Group3)自动返回对应v4x/v5x/v6x变量
内容的提问来源于stack exchange,提问作者Montier Kess
相关产品推荐
相关产品推荐

