如何在TradingView Pine Script中直接引用外部指标的指定输入?
TradingView 硬编码引用已有指标输入参数的实现方案
核心结论:可以实现硬编码引用,分两种场景处理
场景1:目标指标可查看源码(自研或开源)
如果目标指标是你自己编写的或者能看到源码,直接在目标指标中暴露需要的参数变量,然后在你的指标里直接引用:
- 在目标指标(比如名为
HPDR的指标)中,确保参数变量全局可访问:// HPDR指标中的代码 HPDRUpperRangeInput = input(close, title="HPDRUpperRange") // 保留原输入定义 - 在你的新指标中,直接调用该变量(同图表加载时无需额外函数):
// 你的指标代码 HPDRUpperRange = HPDRUpperRangeInput // 直接引用目标指标的参数变量
如果目标指标在不同时间周期或品种,用request.security()跨周期/品种调用:
HPDRUpperRange = request.security(syminfo.tickerid, timeframe.period, HPDRUpperRangeInput)
场景2:目标指标无源码权限(内置/加密第三方指标)
这种情况无法直接引用输入参数,替代方案是复制目标指标的核心计算逻辑,将参数硬编码为你需要的值:
比如目标指标的HPDRUpperRange是基于20周期EMA计算的,直接把逻辑写到你的指标里:
// 硬编码替代input,固定参数为20周期EMA HPDRUpperRange = ta.ema(close, 20)
顺便解决参数丢失问题
你当前用input()每次更新丢失选择,是因为TradingView默认不自动保存临时参数。如果不想硬编码,也可以保存指标模板:选好参数后,点击指标设置面板的「保存模板」,下次直接加载模板即可跳过手动选择。
内容的提问来源于stack exchange,提问作者Quadz Crypto
相关产品推荐
相关产品推荐

