基于 TradingView 进行交易策略回测
TradingView 大略是最业余、最弱小的图片工具, 不仅能够很不便的查看行情, 还能够图形化的查看策略回测后果。
首先看一下 TradingView 的界面(网页版)
左上部为 K 线图, 能够随便调整工夫周期以及增加各种指标, 除了内置指标, 还能够增加网友分享的指标、策略
左下部为编辑区, 能够编辑自定义的 Pine 脚本, 相干文档可参见:Pine 脚本语言参考手册
右上部为自选列表, 能够按不同的市场 (美股、港股、A 股) 增加自选
右下部为详情页面, 入选中某个标的时会显示相干详情
此外左侧边栏为画图工具, 右侧边栏为性能列表, 能够查看新闻、与网友交换等
交易策略
这里应用与后面在通达信中进行回测时雷同的策略:当 MACD 指标连涨三天且起涨点为近 20 天的最低值时买入; 当 MACD 指标连跌三天时卖出
交易评测
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © GreedyAlpha
// 1. 申明 Pine 脚本的版本
//@version=5
// 2. 定义策略, 包含策略名称、初始资金等, 残缺的参数列表能够在界面内按下 ⌘ 键后再用鼠标点击某个函数的形式跳转到文档页
strategy("MACD", overlay=true, initial_capital=10000, max_labels_count = 500)
// 3. 设置用于回测的工夫窗口
// 为与后面通达信回测时的工夫范畴雷同进行了相干设置
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)
// 4. 获取 MACD 指标
[_, _, histLine] = ta.macd(close, 12, 26, 9)
// 5. 在 TV 中没有通达信中的 upnday 函数, 因而这里自行实现
upnday(a, n) =>
bool flag = true
for i = 1 to n
if a[i] >= a[i-1]
flag := false
break
flag
// 6. 在 TV 中也没有通达信中的 downnday 函数, 因而也要自行实现
downnday(a, n) =>
bool flag = true
for i = 1 to n
if a[i] <= a[i-1]
flag := false
break
flag
// 7. 同样在 TV 中实现获取 N 天内最小值的函数
llv(a, n) =>
float minV = a[0]
for i = 1 to n
if a[i] < minV
minV := a[i]
minV
// 8. 依照策略判断交易机会
longCondition = upnday(histLine, 3) and histLine[3] == llv(histLine, 20)
shortCondition = downnday(histLine, 3)
// 9. 设定初始资金为一万元
total = 10000
if windowFlag
if longCondition
// A 股中一手为一百股
n = int(total/close/100)*100
strategy.entry("MACD", strategy.long, n)
if shortCondition
// A 股中不能做空所以调用 close 平仓
strategy.close("MACD")
评测报告
编辑实现后点击“增加到图表”即可看到策略的回测后果
左上部原来的 K 线图中会主动显示在指定工夫范畴内的策略交易点
右下部会显示策略的各种指标: 净利润、胜率、回撤、净值等
点击“交易清单”能够看到每一次建仓、平仓的执行工夫和仓位状况, 能够联合 K 线图以及 MACD 指标进行后续的优化