在TradingView平台上,回测是评估交易策略效果的重要工具。本文将深入讲解如何利用Pine编辑器创建自定义交易策略脚本,并通过策略测试器进行回测模拟。无论你是编程新手还是有一定经验的交易者,本文都将以“参考现有脚本并加以修改”的方式,带你快速掌握Pine Script策略编写技巧。
在之前的回测教学中,我们介绍了如何使用TradingView的内置策略进行测试。而今天,我们将聚焦于如何从零开始或基于现有脚本,编写属于自己的交易策略,并通过详细步骤和代码解析,让你轻松上手。
Pine编辑器是TradingView平台内置的编程工具,用于编写Pine Script代码。Pine Script是一种专为TradingView设计的编程语言,可以用来创建自定义技术指标和交易策略。通过Pine编辑器,你可以编写交易策略脚本,并在策略测试器中运行回测,评估策略的实际表现。
简单来说,Pine编辑器是交易者实现程序化交易的核心工具。脚本(script)则是一段保存为文件的代码,包含你的交易逻辑。接下来,我们将介绍两种简单的方法,帮助你快速创建Pine Script策略脚本。
以下是两种适合初学者的方法,帮助你快速上手Pine Script策略编写:
方法一:修改TradingView内置策略脚本
方法二:将技术指标脚本转换为策略脚本
这两种方法的好处在于,你无需从零开始编写代码,而是基于现有框架进行调整。这种方式不仅降低了学习难度,还能让你在实践中逐步熟悉Pine Script的语法和逻辑。
我们以“移动平均双线交叉(MovingAvg2Line Cross)”策略为例,教你如何修改内置脚本并进行回测。
在TradingView搜索栏输入“SPX”,选择S&P 500指数并打开图表。
点击图表下方的“Pine编辑器”(英文界面为“Pine Editor”),即可在下方看到代码编辑区域。
点击编辑器中的“未命名脚本(Untitled script)”旁的下拉箭头。
选择“创建新的(Create new)” > “内置(Built-in)”。
在搜索栏输入“移动平均”,找到“移动平均双线交叉(MovingAvg2Line Cross)”策略。
点击加载该脚本。
加载后,你将看到该策略的默认代码。
我们将默认的双向交易策略(多空均做)改为单边做多策略,即“黄金交叉时多单进场,死亡交叉时多单平仓”。
以下是默认脚本的核心逻辑解析: pine //@version=6 strategy("MovingAvg2Line Cross", overlay=true) fastLength = input(9) // 快线周期 slowLength = input(18) // 慢线周期 price = close // 使用收盘价 mafast = ta.sma(price, fastLength) // 计算快线 maslow = ta.sma(price, slowLength) // 计算慢线 if (ta.crossover(mafast, maslow)) // 黄金交叉 strategy.entry("MA2CrossLE", strategy.long) if (ta.crossunder(mafast, maslow)) // 死亡交叉 strategy.entry("MA2CrossSE", strategy.short)
改写目标:删除空单逻辑,仅保留多单进出场。改写后的代码如下: pine //@version=6 strategy("MovingAvg2Line Cross", overlay=true) fastLength = input(9) slowLength = input(18) price = close mafast = ta.sma(price, fastLength) maslow = ta.sma(price, slowLength) if (ta.crossover(mafast, maslow)) // 黄金交叉,多单进场 strategy.entry("MA2CrossLE", strategy.long) if (ta.crossunder(mafast, maslow)) // 死亡交叉,多单平仓 strategy.close("MA2CrossLE")
点击“未命名脚本”,选择保存。
输入名称,例如“移动平均双线单边做多”。
点击“保存”。
切换到“策略测试器(Strategy Tester)”。
点击“载入您的策略(Load your strategy)” > “个人的(Personal)”。
选择“移动平均双线单边做多”并加载。
回测完成后,图表将显示进出场点(蓝色箭头为多单进场,紫色箭头为多单出场),下方策略测试器会展示绩效概览和交易列表,确保策略仅包含多单交易。
假设你已有一个指标脚本,例如“避开空头风险的移动平均指标”,我们将教你如何将其转换为可回测的策略脚本。
在搜索栏输入“SPX”,打开S&P 500指数图表。
点击图表下方的“Pine编辑器”。
假设你之前保存了一个名为“MAs for risk management”的指标脚本:
点击“未命名脚本”旁的下拉箭头。
选择“打开脚本(Open script)” > “MAs for risk management”。
默认指标脚本如下: pine //@version=5 indicator("MAs for risk management", overlay=true) short = ta.sma(close, 5) long = ta.sma(close, 250) * 0.975 risky_period = ta.sma(math.sign(short-long)*0.5 - 0.5, 22)*22 risky_indicator = risky_period < 0 ? 1 : 0 plot(short, color=color.teal) plot(long, color=color.green)
将indicator
改为strategy
: pine strategy("MAs for risk management", overlay=true)
添加进出场逻辑: pine if (risky_indicator == 0 and strategy.opentrades == 0) // 无风险时进场 strategy.entry("Long", strategy.long) if (risky_indicator == 1) // 有风险时出场 strategy.close("Long")
完整改写后的策略脚本: pine //@version=5 strategy("MAs for risk management", overlay=true) short = ta.sma(close, 5) long = ta.sma(close, 250) * 0.975 risky_period = ta.sma(math.sign(short-long)*0.5 - 0.5, 22)*22 risky_indicator = risky_period < 0 ? 1 : 0 plot(short, color=color.teal) plot(long, color=color.green) if (risky_indicator == 0 and strategy.opentrades == 0) strategy.entry("Long", strategy.long) if (risky_indicator == 1) strategy.close("Long")
点击脚本名称旁的下拉箭头,选择“重新命名”。
输入新名称“MAs for risk management_strategy”。
点击“保存”。
在策略测试器中加载“MAs for risk management_strategy”,即可查看回测结果。
回测完成后,图表将显示进出场点,下方面板提供详细的绩效数据,如胜率和净利。
👉 【点击查看】TradingView 30天独享Premium高级会员账号(完整质保30天售后)
通过Pine编辑器,你可以轻松修改TradingView的内置策略,或将指标转换为可回测的交易策略。无论是“移动平均双线交叉”还是“避险策略”,自定义脚本都能帮助你更精准地测试交易想法。对于初学者来说,参考现有代码并逐步调整是快速上手的捷径。
Pine Script语法简单且功能强大,适合希望实现程序化交易的投资者。如果你对回测和策略编写感兴趣,不妨从现在开始尝试,探索更多交易可能性!