You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于Pine Script中指标间数据访问功能受限及替代方案的咨询

Pine Script 跨指标数据访问问题解答

Hey there! Let's clear up your confusion about accessing other indicator values in Pine Script.

关于GUI选项的限制:不是近期功能受限

首先要明确:GUI里的“指标应用于指标”下拉菜单只能选择Pine Script内置的默认指标模板,而你手动添加到图表的SMA/EMA实例(比如自己调整过参数的),确实没法通过这个菜单直接选中。这是Pine Script一直以来的设计逻辑,不是近期新增的限制哦。

访问跨指标数据的可行方法

如果你需要获取已应用到图表的其他指标的值,有几种可靠的方法:

1. 直接在当前脚本内计算所需指标值

这是最简单也最稳定的方式。不需要依赖外部指标,直接在你的指标代码里调用对应的函数计算:

//@version=5
indicator("My Custom Indicator")
// 直接计算20周期SMA,和图表上的SMA效果一致
mySma = ta.sma(close, 20)
// 计算14周期EMA
myEma = ta.ema(close, 14)
plot(mySma, color=color.blue)
plot(myEma, color=color.orange)

2. 使用request.indicator()引用已应用的指标实例

如果你确实需要引用图表上已存在的特定指标实例(比如参数已经调好的自定义SMA),可以用这个方法:

  • 第一步:找到目标指标的ID。打开目标指标的设置面板,在“信息”标签页里可以看到它的指标ID(比如类似SMA_1这样的标识)。同时要确保目标指标的“安全性”设置里勾选了允许其他脚本访问此指标的数据
  • 第二步:在你的新指标里调用request.indicator()获取数据:
//@version=5
indicator("Reference External Indicator")
// 引用ID为"SMA_1"的指标,第二个参数是该指标输出线的名称(要和目标指标的输出名称一致)
externalSma = request.indicator("SMA_1", "SMA Line")
plot(externalSma, color=color.red, title="Referenced SMA")

3. 合并指标脚本

如果两个指标是配套使用的,直接把它们的代码合并到同一个脚本里,内部直接传递数据,完全不需要跨指标引用。这种方法避免了依赖图表上的外部指标,代码独立性更强。

总结

GUI的指标选择限制是设计使然,不是功能缩水。优先推荐直接在脚本内计算指标值,或者合并脚本;如果必须引用外部指标实例,就用request.indicator()配合指标ID和权限设置来实现。

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

火山引擎 最新活动