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

PineScript编译错误疑问:为何无法嵌套解构request.security返回值?

PineScript嵌套解构赋值报错的原因及解决方法

你的代码报错核心原因是:PineScript不支持嵌套数组的直接解构赋值,编译器无法识别左侧[[supertrend, direction], [middle, upper, lower]]这种嵌套方括号的语法结构,它期望的是单层变量列表或单个变量名(ID),因此抛出“意外输入'[',预期为ID”的错误。

问题代码分析

request.security返回的是一个包含两个元素的数组:

  • 第一个元素是ta.supertrend(3, 10)返回的二元数组(包含超级趋势值和方向值)
  • 第二个元素是ta.bb(close, 20, 2)返回的三元数组(包含布林带中轨、上轨、下轨值)

但PineScript的解构语法只能处理单层数组,不能直接对嵌套数组进行一次性解构。

可行的解决方法

方法1:分两步解构

先解构外层数组,再分别处理内层数组:

// 先获取外层数组的两个元素
[supertrend_arr, bb_arr] = request.security('BA', 'D', [ta.supertrend(3, 10), ta.bb(close, 20, 2)])
// 再分别解构内层数组
[supertrend, direction] = supertrend_arr
[middle, upper, lower] = bb_arr

方法2:平铺返回值后单层解构

直接在request.security内部将所有需要的值平铺为单层数组,再一次性解构:

[supertrend, direction, middle, upper, lower] = request.security('BA', 'D', [
    ta.supertrend(3, 10)[0], 
    ta.supertrend(3, 10)[1], 
    ta.bb(close, 20, 2)[0], 
    ta.bb(close, 20, 2)[1], 
    ta.bb(close, 20, 2)[2]
])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:25:22