Pine Script是TradingView的原生编程语言,用于在平台上创建自定义指标、策略和警报。TradingView在全球拥有庞大的用户群;由于平台公布的用户规模会变化,使用时应以其最新官方“About”页面为准。
与通用编程语言相比,Pine Script较为轻量,目标是用较少代码直接处理TradingView图表数据。它在部分语法上容易让人联想到Python,但仍有自己的执行模型、时间序列规则和限制。代码通过TradingView平台内置的Pine Editor编写。
| 优点 | 缺点 |
|---|---|
| TradingView不仅是交易和图表平台,也包含大型交易者社区。许多用户会把Pine脚本发布到公共脚本库;在许可和发布规则允许的范围内,其他用户可以使用或修改开源脚本。浏览开源库也有助于熟悉Pine Script。 | Pine Script主要运行在TradingView的平台和数据环境中。虽然TradingView覆盖大量市场,但某些小众市场或特定价格数据可能不可用。 |
| TradingView提供平台内的数据访问能力。创建指标或回测策略时,用户通常不必自行采集和整理全部行情数据,而可通过Pine代码直接引用图表及受支持的数据序列,从而更快测试想法。 | Pine策略不会因为回测代码本身就自动连接任何外部账户执行交易。自动化通常需要警报、Webhook、受支持的经纪商或第三方系统,并受平台、账户和经纪商功能限制;原文“完全不支持自动执行”的说法过于绝对。 |
| Pine Script比许多通用语言更聚焦于图表计算。Pine Editor能够检查语法错误并提供提示,对编程经验较少的交易者较友好。 | Pine Script无法提供所有市场微观结构数据。历史逐笔成交、完整订单簿以及精确的买卖盘成交量是否可用,取决于数据源、产品和账户;依赖这些数据的指标会受到限制。 |
只需几个步骤即可开始使用Pine Script。
前往tradingview.com/chart并打开图表;Pine Editor通常位于图表下方的面板中,界面位置可能随版本变化
如需连接经纪商,可打开Trading Panel,从可用列表中选择支持的经纪商并登录真实或模拟账户;可用经纪商因地区和账户而异
随后即可使用Pine Script创建自定义指标和策略。下文介绍基本创建方法。
如果需要FOREX.com账户,可通过其官方开户页面查看所在地可用的账户类型和条款。
如果只想使用预设的TradingView指标和图表,可在支持TradingView图表的FOREX.com网页或移动平台中选择集成指标。可用数量和功能会随平台、地区及版本变化。
创建Pine脚本时,先使用indicator()或strategy()声明它是指标还是策略。接着定义输入项,例如移动平均周期或指标阈值,然后根据所用指标建立交易信号或警报条件。
例如,脚本可以在某项指标向上穿越阈值时生成买入信号,在向下穿越阈值时生成卖出信号。实施之前,可用TradingView的策略测试器查看脚本策略在历史市场条件下的模拟表现。
下面分别给出使用Pine Script创建指标和策略的示例。

打开新的Pine脚本时会看到初始配置。以Pine Script v6模板为例,以两个正斜杠开头的行是注释;以//@version=6开头的行则是编译器指令,用于指定Pine版本,不是普通注释。
下一行是声明语句,可以指定编写指标还是策略,并为其命名。plot()语句则指定要绘制的序列;示例中的close是包含每根K线收盘价的内置时间序列变量。

indicator()声明可接收多种参数。例如,如果希望把收盘价绘制在主价格图表上,可以写成:
indicator(“My script”, overlay=true)
将overlay设为false会把绘图显示在价格图下方的独立窗格中。false是常见默认值,因此在不需要覆盖主图时可以省略该参数。
如果希望在价格图表上叠加50周期简单移动平均线,可以使用Pine Script v6写法:indicator(“50-period SMA”, overlay=true);ma = ta.sma(close, 50);plot(ma, color=color.blue)

要运行脚本,请点击“Add to chart”。脚本保存后会添加到图表,相关控制项通常显示在图表图例或设置面板中。

了解如何创建指标后,下面以移动平均线为例创建一个简单策略。该策略用20周期移动平均线与价格的交叉识别买入和卖出信号。以下代码已按当前Pine Script v6语法更新。
strategy(“Simple Moving Average Strategy”, overlay=true)
首先,用strategy()声明替换indicator()声明。
ma_length = input.int(20, title=”Moving Average Length”)
然后定义移动平均线的周期。
ma = ta.sma(close, ma_length)
plot(ma, color=color.blue)
这两行定义并绘制移动平均线:第一行计算移动平均线,第二行把它绘制到图表上。
buy_signal = ta.crossover(close, ma)
sell_signal = ta.crossunder(close, ma)
这两行根据价格与移动平均线的交叉定义买入和卖出信号。
strategy.entry(“Buy”, strategy.long)
strategy.entry(“Sell”, strategy.short)
这八行定义策略的入场和平仓条件。它们用于演示语法,并未包含交易成本、滑点、仓位规模或风险限制。

以上是完整Pine Script策略的主体。这是一个较短的示例;随着指标、条件和计算数量增加,Pine策略可能复杂得多。
系统学习Pine Script最可靠的方法是阅读TradingView官方用户手册和参考文档。当前官方文档以Pine Script v6为主,并提供从v5迁移到v6的指南。TradingView社区也提供交易思路、教育内容和视频讲解。生成式AI可以协助编写代码,但用户仍应核查语法、重绘风险、未来数据泄漏和策略假设。
在TradingView中,可通过图表下方的Strategy Tester查看Pine策略回测。它会显示所选历史区间内的净利润、已平仓交易总数、盈利交易比例等统计数据。结果依赖于K线数据、经纪商模拟器规则、手续费、滑点和订单成交假设,并不等同于真实交易表现。


在为满足所有类型的交易者的需求而设计的平台上进行交易。

从我们的四个以市场为导向的教育课程中选择其一。