通达信如何回测公式
Contents
起因
写好一个选股/交易思路,最想知道的不是“讲起来有没有道理”,而是“放在历史上跑一遍到底赚不赚钱”。通达信内置的公式评测(回测)就是干这个的:把公式产生的买卖信号在历史K线上重放一遍,给出收益、胜率一类的统计。
回测的原理:为什么通达信能回测公式
通达信的公式本质是对K线序列做计算的向量语言:每条语句在每一根 bar 上求值,输出画线或信号。因为信号只依赖已走过的历史数据,引擎就能从第一根 bar 起逐根重放,遇到买入信号就按当时价格“虚拟成交”,一路统计到最新——这就是回测的全部原理。所以回测的输入必须是带交易指令的公式(什么条件买、什么条件卖),纯画线的技术指标没有买卖点,没法模拟撮合。
通达信里的两类公式
打开任何一个券商的通达信内核软件。或者自己去通达信官网下载的软件,进入软件之后:ctrl+s 打开,看看是不是有你想要的指标公式评测与回测,左侧公式指标分两部份,
一、可交易的指标公式(根据名字就知道,这个就是可以跑回测的,会写通达信公式的,可以查看源码,自己修改)
二、老版的技术指标公式(这就是原通达信公式库里面的一些,保含你自己创建的公式)
两类的区别就在“有没有交易指令”:可交易的公式带买卖点语句(如 ENTERLONG/EXITLONG 一类),评测引擎才知道何时进出;老版技术指标只输出线条,只能叠加在主图上看,做不了完整回测。想给自己的指标做回测,路径就是把它的条件改写/复制成可交易公式。
踩坑记录与注意事项
- 未来函数是“回测大赚、实盘亏损”的头号根因:公式里用了依赖未来数据的函数(如 ZIG 之类),历史信号等于偷看了后面的走势,回测自然漂亮。检查方法:确认信号只依赖当根及之前的 bar;
- 复权方式要用后复权:不复权数据在除权日有价格跳变,会制造假信号假收益,这是回测虚高的常见来源;
- 手续费滑点要设足:评测参数用默认值往往偏乐观,加上真实手续费和滑点后收益明显缩水;
- 别把参数调到历史最优:在样本内反复调参得到的“最优参数”通常过拟合,换一段行情就失效;更可信的做法是留一段没参与调参的数据做验证;
- 回测的撮合是简化的:成交量限制、涨跌停无法成交等情况常被忽略,结果只能作参考。
Author 软件开发大郭
LastMod 2022-01-29