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

能否通过单次request.security调用获取多个变量?求正确实现方式

request.security 单次调用获取多变量的正确实现方式

request.security完全可以通过单次调用获取多个变量,并非只能返回单个值。你之前把high存到根作用域的方式不可靠,核心原因是Pine Script的执行机制:request.security的闭包代码会在目标周期的bar上下文里运行,直接修改根作用域变量会因bar执行顺序混乱,导致拿到的是当前周期的值而非目标周期的。

正确实现方式:返回元组并解构赋值

最直接的做法是在request.security的闭包内返回一个元组(tuple),再将元组解构赋值给多个变量,确保拿到的是目标周期的正确数据。

示例代码:

//@version=5
indicator("多变量获取示例", overlay=true)

// 目标周期设为5分钟
target_tf = "5"

// 单次调用同时获取目标周期的bar_index、high、low
[sec_bar_index, sec_high, sec_low] = request.security(syminfo.tickerid, target_tf, [bar_index, high, low])

// 验证输出
plot(sec_high, color=color.blue, title="5分钟周期高点")
plot(sec_low, color=color.red, title="5分钟周期低点")
label.new(bar_index, sec_high, str.tostring(sec_bar_index), color=color.yellow)

关键说明

  • 闭包内的[bar_index, high, low]会在5分钟周期的bar上下文执行,获取的是该周期的对应变量
  • 解构赋值时,变量数量要和闭包返回的元组元素数量一致
  • 若需要更多变量,直接在闭包的数组里添加即可,比如[bar_index, high, low, close, volume]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 05:22:07