如何从策略中获取自定义研究值?如何免引入源码调用公共研究/指标?
从策略中获取自定义研究的值
如果你想在策略里读取自己编写的自定义研究(指标)的计算值,按以下步骤操作:
- 步骤1:配置自定义研究
在你的自定义研究脚本中,确保要暴露的值被明确定义为输出变量,可选通过plot()可视化以便验证。例如://@version=5 indicator("我的自定义研究") // 定义要传递给策略的计算值 my_custom_value = close * 2 // 可选:将值可视化 plot(my_custom_value, title="自定义输出值") - 步骤2:在策略中获取值
在策略脚本中,使用request.security()函数读取自定义研究的输出变量。因为研究和策略属于同一标的、同一时间周期,直接传入当前标的和周期参数即可://@version=5 strategy("我的策略") // 获取自定义研究的计算值 custom_value = request.security(syminfo.tickerid, timeframe.period, my_custom_value) // 示例:用该值触发交易 if custom_value > close strategy.entry("多单", strategy.long)
在策略中调用公共研究/指标(无需嵌入源代码)
Trading Pine Script没有直接的ta.externalstudy()函数,但可以通过两种方式实现类似效果:
1. 调用内置公共指标
对于TradingView官方内置的指标(如RSI、MACD、SMA等),直接使用ta命名空间下的函数即可,无需复制源代码:
//@version=5 strategy("我的策略") // 直接调用内置RSI指标 rsi_value = ta.rsi(close, 14) // 用RSI值做交易判断 if rsi_value < 30 strategy.entry("多单", strategy.long)
2. 调用社区发布的公共指标
如果你想用社区分享的第三方公共指标,按以下方式操作:
- 获取指标脚本ID:打开该指标的TradingView页面,从URL中提取脚本ID(例如
https://www.tradingview.com/script/ABC123-第三方指标/中的ABC123-第三方指标)。 - 在策略中加载指标:使用
indicator()函数直接加载该指标,然后读取其输出值://@version=5 strategy("我的策略") // 加载第三方公共指标,无需复制源代码 third_party_ind = indicator("ABC123-第三方指标", overlay=false) // 获取指标的最新输出值 ind_value = third_party_ind[0] // 使用指标值执行策略逻辑 if ind_value > ta.sma(close, 20) strategy.exit("平仓多单") - 若需跨周期调用,可使用
request.security()函数://@version=5 strategy("我的策略") // 读取1小时周期的第三方指标值 ind_value_h1 = request.security(syminfo.tickerid, "60", third_party_ind[0])
内容的提问来源于stack exchange,提问作者cilerler
相关产品推荐
相关产品推荐

