回测时如何在Pine Script代码中调用公开或自定义指标
Pine Script 调用自定义/公共库指标实现方法
调用自行创建的自定义指标
Pine Script v5及以上版本支持通过export+import的方式复用自己写的指标逻辑,操作步骤如下:
- 编写自定义指标时,给需要对外暴露的函数加上
export关键字,示例:
//@version=5 indicator("我的自定义RSI", shorttitle="MyRSI", overlay=false) // 加export关键字声明该函数可被外部代码调用 export myRsi(series float source, int length) => // 这里写你自己的指标逻辑 ta.rsi(source, length) * 0.9 + ta.sma(source, length) * 0.1 // 指标本身的绘图逻辑(可选,仅用于指标单独展示时使用) plot(myRsi(close, 14), color=color.blue)
- 写完指标后点击发布,选择「发布为库」,权限可设为私有(仅自己可用)或公开。
- 在你的策略代码中导入该库,即可像调用内置函数一样使用导出的方法,示例:
//@version=5 strategy("回测策略", overlay=true) // 导入格式:import 你的用户名/库名/版本号 as 自定义别名 import testUser/MyRSILib/1 as myLib // 调用自定义指标函数 customRsi = myLib.myRsi(close, 14) // 策略逻辑示例 if customRsi < 30 strategy.entry("多单", strategy.long) if customRsi > 70 strategy.close("多单")
调用TradingView公共库指标
公共库的调用逻辑和自定义私有库完全一致:
- 先确认你要使用的指标已经被作者发布为公共库,且公开了导出的函数名和参数说明
- 直接用
import语句导入对应公共库,即可调用导出的函数,示例:
//@version=5 strategy("公共库MACD策略", overlay=true) // 导入公共库,格式为:import 库作者用户名/库名/版本号 as 别名 import publicUser/CustomMACD/2 as pubMacd // 调用公共库导出的MACD函数,返回值对应函数定义的输出 [macdLine, signalLine, hist] = pubMacd.getMacd(close, 12, 26, 9) // 策略逻辑 if macdLine > signalLine and hist > 0 strategy.entry("多", strategy.long) if macdLine < signalLine and hist < 0 strategy.close("多")
补充说明
- 仅Pine Script v5及以上版本支持
import/export语法,低版本用户可以直接把目标指标的源代码复制到你的策略代码中,直接调用其内部函数即可 - 如果公共库作者没有导出可调用的函数,也可以用上述复制源码的方式实现调用
- 私有库仅你自己账号下的代码可导入调用,公开库所有TradingView用户都可使用
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

