用 Pine Script 创建自定义指标和策略
Pine Script 是 TradingView 内置的编程语言,让每一位交易者都能轻松创建个性化的技术指标和自动化交易策略。无需复杂的开发环境,打开浏览器即可开始编写。
开始使用 Pine Script →什么是 Pine Script?
Pine Script 是 TradingView 专为交易者设计的轻量级编程语言。它的语法简洁直观,即使你没有编程背景,也能在几分钟内上手编写第一个自定义指标。Pine Script 运行在 TradingView 的云端服务器上,无需安装任何开发环境或配置复杂的依赖库——只需打开浏览器,在图表下方的 Pine Script 编辑器中编写代码,即可实时预览指标效果。
作为 Pine Script 教程的核心内容,你将学习到如何使用这门语言创建各类自定义指标,包括移动平均线、RSI、MACD 等技术分析工具。更重要的是,Pine Script 支持编写自动交易策略,你可以通过简单的条件语句定义买入和卖出信号,利用策略测试器对历史数据进行回测,验证策略的有效性。
Pine Script 的设计哲学是"让交易者成为开发者"。它内置了丰富的函数库,涵盖数学运算、统计分析、绘图渲染等多个领域。无论你希望实现简单的价格提醒,还是构建复杂的多因子量化模型,Pine Script 都能满足你的需求。目前,TradingView 社区中已有超过 10 万个由用户创建的 Pine Script 脚本,涵盖趋势跟踪、均值回归、动量分析等多种交易思路,为全球交易者提供了丰富的灵感和工具。
Pine Script 入门教程
按照以下 6 个步骤,从零开始掌握 Pine Script 编程,创建属于你的第一个自定义指标和交易策略。
打开 Pine Script 编辑器
在 TradingView 图表界面的底部,找到并点击"Pine Script 编辑器"标签。编辑器提供了完整的代码编辑功能,包括语法高亮、智能自动补全和实时错误提示。你可以在编辑器中直接编写代码,也可以导入已有的脚本模板进行修改,非常适合初学者快速上手学习 Pine Script 的基本语法和结构。
编写第一个指标
从最简单的移动平均线指标开始你的 Pine Script 编程之旅。学习如何声明变量、调用内置函数、设置指标参数以及使用 plot() 函数在图表上绘制线条。Pine Script 的语法接近自然语言,例如 close、open、high、low 等内置变量直接对应K线数据。通过编写第一个指标,你将掌握 Pine Script 的核心概念和编程模式。
添加到图表
编写完成后,点击编辑器上方的"添加到图表"按钮,你的自定义指标将立即显示在当前K线图表上。你可以实时观察指标的计算结果和可视化效果,调整参数设置以获得最佳显示效果。如果指标包含多条线或颜色变化,可以在图表上直观地看到不同数据系列的表现,帮助你更好地理解市场走势。
测试和调试
对于策略类型的 Pine Script 脚本,使用内置的"策略测试器"功能进行历史回测。策略测试器会自动计算并展示你的交易策略在历史数据上的表现,包括总盈亏、胜率、最大回撤等关键指标。如果脚本运行不符合预期,可以利用编辑器提供的调试工具逐步排查代码中的逻辑错误,确保策略信号在正确的时机触发。
发布到社区
当你对自己的脚本感到满意时,可以将其发布到 TradingView 社区脚本库中。发布前,为脚本撰写清晰的说明文档,描述指标的计算逻辑和使用方法。社区中的其他交易者可以使用你的脚本、留下评论和点赞。通过社区反馈,你可以了解其他交易者的使用体验和改进建议,这将帮助你进一步完善脚本。
持续迭代优化
交易策略的优化是一个持续的过程。根据社区反馈和实际交易中的表现数据,不断调整参数、改进逻辑、增加新的过滤条件。Pine Script 支持版本管理,你可以保存脚本的多个版本,方便对比不同版本的回测结果。关注 Pine Script 的版本更新,及时了解新功能和语法改进,让你的脚本始终保持最佳状态。
Pine Script 核心功能
Pine Script 提供了一系列强大的功能,让交易者能够轻松创建、测试和分享自定义技术指标与交易策略。
简单的语法设计
Pine Script 采用类似 Python 的简洁语法,专为交易者设计。无需深厚的编程知识,只需几行代码即可创建功能强大的技术指标。变量声明直观,函数调用简单,让初学者也能快速上手。
丰富的内置函数
内置超过 500 个函数,涵盖数学运算、统计分析、字符串处理、绘图渲染等领域。包括 ta.sma()、ta.rsi()、ta.macd() 等经典技术指标函数,以及 request.security() 等多时间周期数据获取函数。
实时回测能力
使用策略测试器对交易策略进行快速回测,支持逐笔撮合模式。自动计算盈亏比、胜率、最大回撤等关键绩效指标,帮助你在投入真实资金之前充分验证策略的历史表现和可靠性。
策略自动化执行
通过 Pine Script 编写的策略可以设置自动化交易信号,结合 Webhook 和 Alert 功能,实现从信号触发到订单执行的自动化流程。让你的交易策略 7×24 小时不间断运行,不错过任何交易机会。
社区脚本共享
TradingView 社区拥有超过 10 万个公开的 Pine Script 脚本,涵盖各种交易思路和分析方法。你可以免费使用社区脚本,也可以发布自己的作品,与全球数百万交易者交流分享交易智慧。
版本持续更新
Pine Script 持续迭代升级,目前已发展到 v6 版本。每个新版本都会引入新的语法特性、函数库和性能优化。TradingView 团队积极听取社区反馈,不断改进和完善 Pine Script 的功能和开发体验。
Pine Script 示例代码
以下示例展示了 Pine Script 的常见用法,从基础指标到交易策略,帮助你快速理解 Pine Script 的编程模式。
示例 1:简单移动平均线(SMA)指标
指标// 简单移动平均线指标
indicator("SMA 移动平均线", overlay=true)
// 定义输入参数
length = input.int(20, title="周期", minval=1)
source = input.source(close, title="数据源")
// 计算简单移动平均线
smaValue = ta.sma(source, length)
// 绘制均线
plot(smaValue, title="SMA", color=color.blue, linewidth=2)
// 添加价格穿越信号
crossUp = ta.crossover(close, smaValue)
crossDown = ta.crossunder(close, smaValue)
plotshape(crossUp, title="上穿信号", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(crossDown, title="下穿信号", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
input.int() 定义可调参数,ta.sma() 计算移动平均值,plot() 将均线绘制在图表上。同时添加了价格穿越均线的买卖信号标记,帮助交易者识别趋势变化。
示例 2:RSI 超买超卖交易策略
策略// RSI 超买超卖策略
strategy("RSI 交易策略", overlay=true, initial_capital=100000)
// 定义参数
rsiLength = input.int(14, title="RSI 周期")
overbought = input.int(70, title="超买线")
oversold = input.int(30, title="超卖线")
// 计算 RSI
rsiValue = ta.rsi(close, rsiLength)
// 定义交易条件
buyCondition = ta.crossover(rsiValue, oversold)
sellCondition = ta.crossunder(rsiValue, overbought)
// 执行交易
if buyCondition
strategy.entry("买入", strategy.long)
if sellCondition
strategy.close("买入")
// 在图表上显示 RSI 信息
plotshape(buyCondition, title="买入", style=shape.labelup, location=location.belowbar, color=color.green, text="买入")
plotshape(sellCondition, title="卖出", style=shape.labeldown, location=location.abovebar, color=color.red, text="卖出")
strategy() 声明策略类型,可以通过策略测试器进行历史回测,评估策略的盈利能力和风险水平。
示例 3:自定义价格警报条件
警报// 自定义价格警报条件
indicator("价格突破警报", overlay=true)
// 定义参数
lookback = input.int(20, title="回看周期")
threshold = input.float(0.02, title="突破阈值", step=0.005)
// 计算近期最高价和最低价
highestHigh = ta.highest(high, lookback)
lowestLow = ta.lowest(low, lookback)
// 定义突破条件
breakoutUp = close > highestHigh[1] * (1 + threshold)
breakoutDown = close < lowestLow[1] * (1 - threshold)
// 绘制通道
plot(highestHigh, title="上轨", color=color.new(color.green, 50))
plot(lowestLow, title="下轨", color=color.new(color.red, 50))
// 设置警报条件
alertcondition(breakoutUp, title="向上突破", message="价格向上突破 {{interval}} 高点!当前价格: {{close}}")
alertcondition(breakoutDown, title="向下突破", message="价格向下突破 {{interval}} 低点!当前价格: {{close}}")
alertcondition(breakoutUp or breakoutDown, title="任意突破", message="价格发生突破!方向: {{plot_0}}")
alertcondition() 函数定义警报条件,可以配合 Webhook 实现自动化通知。警报消息中支持使用模板变量(如 {{close}}),自动填充实时价格数据。
热门社区脚本
探索 TradingView 社区中最受欢迎的 Pine Script 脚本,涵盖趋势跟踪、动量分析、波动率等多种交易策略类型。
MACD 趋势跟踪策略
基于 MACD 指标的经典趋势跟踪策略,结合零线交叉和信号线交叉双重确认机制,有效过滤虚假信号,适合中长线交易者使用。
趋势 MACD 策略布林带波动率突破
利用布林带宽度变化识别市场波动率收缩与扩张,在带宽收窄后寻找突破方向进行交易。适用于震荡行情和趋势启动阶段的捕捉。
波动率 布林带 突破多重移动平均线系统
整合 EMA 5/13/34/89 四条指数移动平均线,通过均线排列判断市场趋势方向。金叉做多、死叉做空,配合颜色变化直观展示多空转换。
均线 趋势 指标成交量加权分析
结合成交量与价格变化进行综合分析,通过成交量异常放大识别关键支撑/阻力位的突破有效性,帮助交易者确认趋势的可靠性。
成交量 分析 指标RSI 背离检测器
自动检测价格与 RSI 指标之间的顶背离和底背离信号,帮助交易者提前识别趋势反转点。支持常规背离和隐藏背离两种模式。
RSI 背离 反转SuperTrend 通道指标
基于 ATR(平均真实波幅)构建的 SuperTrend 通道指标,自动跟踪趋势方向并动态调整支撑阻力位。颜色随趋势变化,一目了然。
SuperTrend ATR 通道斐波那契回调工具
自动识别近期高低点并绘制斐波那契回调位,标注 23.6%、38.2%、50%、61.8% 等关键回调水平。支持多时间周期显示和自定义颜色。
斐波那契 回调 支撑阻力日内交易仪表盘
集成多种技术指标的综合仪表盘,在同一图表上展示 RSI、MACD、成交量等多个维度的分析结果,帮助日内交易者快速做出决策。
日内 仪表盘 多指标开始编写你的 Pine Script
下载 TradingView 桌面应用,获得更流畅的 Pine Script 编辑体验。内置代码编辑器、实时预览和策略测试器,让你高效开发自定义指标和交易策略。
免费下载 TradingView →