# 如何利用 TradingView 进行交易策略回测

By [axcspnfmva](https://paragraph.com/@axcspnfmva) · 2025-04-01

---

TradingView 是一个功能强大且专业的交易分析工具，不仅能轻松查看市场行情，还能以图形化的方式展示交易策略的回测结果。本文将详细介绍如何基于 TradingView 平台进行交易策略回测，帮助您优化投资决策。

TradingView 界面概览
----------------

TradingView 的网页版界面设计直观，功能分区清晰：

*   **左上部**：K线图区域，支持自由调整时间周期，并可添加多种技术指标。除了内置指标外，用户还能使用社区分享的指标和策略。
    
*   **左下部**：编辑区，用于编写自定义的 Pine 脚本，打造个性化的交易策略。
    
*   **右上部**：自选列表，可根据不同市场（如美股、港股、A股）添加关注的标的。
    
*   **右下部**：详情页面，选中某个标的时会展示其详细信息。
    
*   **侧边栏**：左侧提供画图工具，右侧则包含新闻浏览和社区交流等功能。
    

通过这一布局，TradingView 将行情分析与策略开发无缝结合，适合各类交易者使用。

👉 [【点击查看】TradingView 30天 独享 Premium 高级会员账号（完整质保30天售后）](https://bit.ly/TradingView-Pro)

交易策略设计
------

本文以一个简单的交易策略为例：基于 MACD 指标进行买卖决策。具体规则如下：

*   **买入条件**：MACD 指标连续上涨三天，且起涨点为近 20 天的最低值。
    
*   **卖出条件**：MACD 指标连续下跌三天。
    

这一策略曾在通达信中进行过回测，现在我们将其迁移到 TradingView 上验证效果。

交易策略回测实现
--------

以下是使用 Pine 脚本实现的回测代码：

pine // Pine 脚本版本声明 //@version=5 strategy("MACD", overlay=true, initial\_capital=10000, max\_labels\_count=500)

// 设置回测时间窗口 sYear = input.int(defval=2020, title="Start Year", minval=2012) sMonth = input.int(defval=6, title="Start Month", minval=1, maxval=12) sDay = input.int(defval=1, title="Start Day", minval=1, maxval=31) eYear = input.int(defval=2022, title="End Year", minval=2012) eMonth = input.int(defval=6, title="End Month", minval=1, maxval=12) eDay = input.int(defval=1, title="End Day", minval=1, maxval=31)

windowFlag = time >= timestamp(sYear, sMonth, sDay, 00, 00) and time <= timestamp(eYear, eMonth, eDay, 23, 59)

// 获取 MACD 指标 \[\_, \_, histLine\] = ta.macd(close, 12, 26, 9)

// 自定义函数：判断连续上涨 upnday(a, n) => bool flag = true for i = 1 to n if a\[i\] >= a\[i-1\] flag := false break flag

// 自定义函数：判断连续下跌 downnday(a, n) => bool flag = true for i = 1 to n if a\[i\] <= a\[i-1\] flag := false break flag

// 自定义函数：获取 N 天内最小值 llv(a, n) => float minV = a\[0\] for i = 1 to n if a\[i\] < minV minV := a\[i\] minV

// 买卖条件判断 longCondition = upnday(histLine, 3) and histLine\[3\] == llv(histLine, 20) shortCondition = downnday(histLine, 3)

// 执行交易逻辑 total = 10000 if windowFlag if longCondition n = int(total/close/100)\*100 strategy.entry("MACD", strategy.long, n) if shortCondition strategy.close("MACD")

在 TradingView 中，Pine 脚本提供了灵活的编程能力，尽管缺少通达信中的某些内置函数（如 `upnday` 和 `downnday`），但我们可以通过自定义函数轻松实现。

回测结果分析
------

完成脚本编辑后，点击“添加到图表”，即可查看回测结果：

*   **K线图**：左上部的 K 线图会自动标注指定时间范围内的买卖点。
    
*   **策略指标**：右下部展示净利润、胜率、回撤和净值等关键数据。
    
*   **交易清单**：详细记录每次建仓和平仓的时间与仓位，便于结合 K 线图和 MACD 指标进行优化。
    

通过这些直观的结果，您可以快速评估策略的有效性，并根据数据调整参数，提升交易表现。

总结
--

TradingView 凭借其强大的功能和灵活的 Pine 脚本，成为交易策略回测的理想工具。无论是查看行情、编写策略，还是分析回测结果，它都能提供高效支持。立即尝试基于 MACD 的回测策略，优化您的交易决策吧！

---

*Originally published on [axcspnfmva](https://paragraph.com/@axcspnfmva/tradingview-4)*
