策略回测与图表
策略写出来后,先别急着实盘——先做历史回测,看看它在过去到底能不能赚钱、胜率多高。金字塔的两套交易引擎正好对应两种用法:图表交易天然适合回测,后台交易适合实盘执行。本章讲清两者的区别、回测怎么做、统计指标怎么看。
一、图表交易 vs 后台交易
这是用金字塔必须分清的核心概念:
| 对比项 | 图表交易 | 后台交易 |
|---|---|---|
| 持仓依据 | 历史 K 线算出的理论持仓 | 真实账户持仓 |
| 信号 | 标注在 K 线图上 | 静默执行 |
| 下单函数 | BUY/SELL/BUYSHORT/SELLSHORT | TBUY/TSELL/... |
| 资金 | ASSET(虚拟,默认 100 万) | TASSET(真实账户) |
| 回测 | 支持 | 不支持(部分函数回测无效) |
| 适用 | 策略验证、回测 | 实盘批量执行 |
图表交易的逻辑:金字塔从第一根 K 线开始,逐根执行你的公式,根据买卖信号维护一个「理论持仓」,并在图表上画出开平仓标记和资金曲线。这就是回测的基础。
二、图表交易怎么跑
- 在 K 线图上加载你的策略公式(右键 → 选择指标,或拖入策略)。
- 设置公式属性:初始资金、手续费、滑点、保证金比例等。
- 金字塔自动从历史数据开始逐根计算,画出入场出场标记、持仓和资金曲线。
- 在「测试报告」窗口查看详细统计。
一个完整的图表策略框架:
RUNMODE:0; { 逐 K 线模式 }
MA5 := MA(CLOSE, 5);
MA20 := MA(CLOSE, 20);
{ 开平仓 }
BUY(CROSS(MA5, MA20) AND HOLDING=0, 1, MARKET);
SELL(CROSS(MA20, MA5) AND HOLDING>0, 0, MARKET);
{ 输出持仓和资金便于观察 }
持仓: HOLDING, COLORGRAY, LINETHICK0;
资产: ASSET, NOAXIS, COLORGRAY;
三、交易统计函数
回测跑完后,金字塔提供丰富的统计函数,你也可以在公式里直接引用它们做动态判断:
| 函数 | 含义 |
|---|---|
PERCENTWIN | 胜率(0~1) |
TOTALTRADE | 总交易次数 |
AVGWIN / AVGLOSS | 平均盈利 / 平均亏损 |
PayoffRate | 盈亏比 = 平均盈利 ÷ 平均亏损 |
PROFITFACTOR | 总盈利 ÷ 总亏损 |
MaxDrawDown / MaxDrawDownPct | 最大回撤金额 / 百分比 |
RETURNRATE / ANNUALRETURNRATE | 收益率 / 年化收益率 |
SHARPRATE | 夏普比率 |
看期望收益 = 胜率 × 盈亏比 − 败率,正期望才有戏。胜率 90% 但亏起来很猛的系统,未必比胜率 40%、盈亏比 3:1 的好。
四、图表到后台的转换
策略在图表上验证通过后,转成后台版本有几条机械规则:
- 下单函数加
T:BUY→TBUY,SELL→TSELL。 - 委托类型改缩写:
MARKET→MKT,LIMIT→LMT。 - 持仓函数替换:
HOLDING→THOLDING,ASSET→TASSET。 - 多空分开管理:用
TBUYHOLDING(1)/TSELLHOLDING(1)分别读多头和空头。
{ 后台版 }
TBUY(CROSS(MA5,MA20) AND TBUYHOLDING(1)=0, 1, MKT);
TSELL(CROSS(MA20,MA5) AND TBUYHOLDING(1)>0, 0, MKT);
后台调试没有图表标记,用 DEBUGFILE 把变量写到日志文件:
DEBUGFILE('D:\LOG.TXT', '资产='&NUMTOSTR(TASSET,2), 0);
五、回测常见陷阱
- 未来函数:
ZIG/PEAK/TROUGH、REFX等会事后修正,历史回测完美、实盘失效。回测前确认公式无未来函数。 - 过拟合:参数和历史调得太贴合,换段(样本外)再测一遍才可信。
- 忽略成本:手续费、滑点、冲击成本必须设,频繁交易会被成本吃光利润。
- 复权数据:股票有分红送股的要用复权数据,否则信号错位。
- 后台函数回测无效:
TACCOUNTVOL、TCANCELID等部分后台函数在回测中不生效。
小结
图表交易用 BUY/SELL 维护理论持仓,天然适合回测;后台交易用 TBUY/TSELL 操作真实账户,适合实盘。
回测看胜率、盈亏比、最大回撤、夏普;警惕未来函数、过拟合和成本。下一步学
账户与股票池,掌握实盘的资金与品种管理。