一些困惑
- 高频交易的回测指标应当如何使用数据?(分钟级?交易级?还是日频)
- 首先从分钟级数据根据我的策略映射成一个交易维度的数据(得到交易表),然后根据交易表我可以获得如胜率、盈亏比等的微观层面的回测结果,然后我再把交易维度数据整合成日频的数据,然后根据日频的数据再获得一些回测结果,是这个意思吗?
- 如果交易信号有重合(即加仓)应当如何处理?需要设置先进先出、后进先出等原则
- 如果出现跨日交易如何应对,还是说就认为避免这种现象的发生
对511180,511380,000001的一分钟数据进行T0交易回测:
- 对数据进行基本的统计分析;
2)描述T0交易策略,和基本的交易评价指标(例如盈亏比、胜率、收益率、最大回撤、夏普比等)
3)搭建回测体系,说明不同的资金策略、交易策略对交易结果的影响;
4)训练交易策略参数,观察在一个品种上得到的参数,在另外一个品种上是否一样有效。
1)基本统计分析
- 描述性统计分析

平稳性分析:
- ADF-价格检验:
- 文件 1 (
511180.SH):未通过(adf_price_p = 0.413759),价格序列存在非平稳性。 - 文件 2 (
511380.SH):同样未通过(adf_price_p = 0.308768),价格序列呈现非平稳特征。
分析:两者价格序列都显示出一定的非平稳性,意味着这些市场可能存在较强的趋势成分,而这通常不适合直接应用网格策略。
- ADF-收益率检验:
- 文件 1 (
511180.SH):收益率序列平稳(adf_ret_p = 0.0),具有均值回归特性。 - 文件 2 (
511380.SH):收益率序列也平稳(adf_ret_p = 0.0),同样显示出均值回归的特性。
分析:两者的收益率序列都通过了平稳性检验,这说明在收益率方面,市场表现出均值回归的特征。
波动性分析:
- 滚动波动性均值:
- 文件 1 (
511180.SH):波动性较弱(roll_vol_mean = 0.000527)。 - 文件 2 (
511380.SH):同样波动性较弱(roll_vol_mean = 0.000469)。
分析:两者的波动性都偏弱,说明市场波动不大,这可能导致网格策略在这种环境下表现不佳。网格策略在低波动性环境下可能会受到限制,因为它依赖于较大的价格波动来实现盈利。
Hurst指数:
- 文件 1 (
511180.SH):Hurst指数为0.41578,表示市场呈现反转特性(低于0.5,支持均值回归)。
- 文件 2 (
511380.SH):Hurst指数为0.377744,显示出相似的反转特性(同样低于0.5,支持均值回归)。
分析:两者的Hurst指数都小于0.5,表明市场具有较强的反转特性,符合均值回归的特点。虽然这支持均值回归策略,但市场的波动性较弱,可能导致网格策略的效果有限。
反转密度分析:
- 文件 1 (
511180.SH):反转密度较好(turn_density_mean = 0.085325)。
- 文件 2 (
511380.SH):反转密度同样较好(turn_density_mean = 0.084648)。
分析:两者的反转密度较高,意味着市场存在较多的反转机会,进一步支持均值回归策略的有效性。
ATR归一化均值:
- 文件 1 (
511180.SH):ATR归一化均值较低(atr_norm_mean = 0.000434)。
- 文件 2 (
511380.SH):ATR归一化均值相似(atr_norm_mean = 0.000338)。
分析:ATR值较低,表明市场波动性有限,这可能使得网格策略面临挑战,因为网格策略通常依赖较大的波动来获取利润。
综合来看,无论是
511180.SH 还是 511380.SH,波动性较弱且价格趋势较强,均不适合直接使用静态网格策略。低波动性环境可能导致网格策略的效果不佳。可以考虑使用趋势跟踪策略,该策略能够更好地适应波动性较弱、存在长期趋势的市场。也可以通过去趋势处理或增强波动性来使网格策略变得更加适用。2)策略描述
尝试了两种策略(默认参数),网格策略和 MACD 单因子驱动的策略:
1️⃣网格交易策略
网格策略是一种典型的均值回归类策略,其核心思想是——在价格上下波动的过程中,通过分层挂单来低买高卖,从而在震荡行情中获取价差收益。
在具体实现中,网格策略会根据历史波动区间将价格空间划分为若干网格,当价格下跌触及下方网格线时自动买入,当价格上涨触及上方网格线时自动卖出。通过这种方式,策略无需判断市场方向,只要标的在区间内震荡,就有可能实现稳定盈利。
然而,网格策略依赖于两个关键条件:
- 价格波动充足但总体无明显趋势(即具有较强的均值回归特性);
- 市场具备较高的反转频率,以保证挂单能被不断触发。
若标的长期单边上涨或下跌、波动性较低,则策略会积压仓位或缺乏成交,从而导致亏损或收益停滞。
metric | 511180.SH | 511380.SH | 000001.SH |
trades | 2449 | 23096 | 10374 |
win_rate | 0.194773377 | 0.345167994 | 0.214285714 |
profit_factor | 0.676840581 | 0.19025678 | 0.051690165 |
avg_win | 849.5393501 | 22.1136151 | 24.47379527 |
avg_loss | -522.8895983 | -61.74786573 | -129.1284613 |
avg_pnl | -79.00298898 | -32.48608995 | -96.21369202 |
avg_pnl_pct | -0.000158008 | -0.000501774 | -0.001637609 |
avg_hold_days | 0.062456899 | 0.084263599 | 0.071906529 |
gross_profit | 405230.27 | 176289.7396 | 54405.24688 |
gross_loss | -598708.59 | -926588.4731 | -1052526.088 |
CAGR | -0.200246746 | -0.75706777 | -0.338201981 |
Sharpe | -5.842658393 | -15.48771 | -4.953750879 |
Vol | 0.038103905 | 0.090832505 | 0.08256188 |
MaxDD | -0.201247721 | -0.750094719 | -0.998100617 |
Calmar | -0.995026156 | -1.009296228 | -0.338845579 |
Days | 245 | 245 | 3795 |
实证验证了网格策略在当前标的(511180.SH、511380.SH、000001.SH)上均不具备可行性。主要原因可能包括市场整体趋势性较强、波动性不足;策略参数对趋势行情敏感,容易积压仓位;高频震荡不足以支撑网格收益。
2️⃣MACD 驱动的策略
MACD(Moving Average Convergence Divergence,指数平滑异同移动平均线)是一种趋势跟踪型技术指标。它通过两条指数加权移动平均线(EMA)之间的差异来衡量价格动能的变化。
- 当短期 EMA 上穿长期 EMA 时,视为金叉信号(买入);
- 当短期 EMA 下穿长期 EMA 时,视为死叉信号(卖出)。
在本策略中:
- 选取标准参数(12, 26, 9)构造 DIF 与 DEA;
- 以 DIF 上穿 DEA 作为开多信号,DIF 下穿 DEA 作为平仓信号;
- 不考虑杠杆与交易费用;
- 保持单因子驱动,不叠加其他滤波信号(如RSI、ATR等)。
这一策略旨在捕捉单边趋势,与前述网格策略的均值回归逻辑相反。理论上,当市场呈现持续上升或下降的方向性波动时,MACD 策略能较好地跟随趋势并实现正收益。
指标 (Metric) | 000001.SH | 511180.SH | 511380.SH |
交易次数 (Trades) | 32,724 | 120 | 411 |
胜率 (Win Rate) | 0.4487 | 0.1917 | 0.2457 |
盈亏比 (Profit Factor) | 1.3739 | 0.6790 | 0.8522 |
平均盈利 (Avg Win) | 2036.28 | 4644.40 | 2870.70 |
平均亏损 (Avg Loss) | -1206.29 | -2497.10 | -1575.08 |
平均单笔收益 (Avg PnL) | 248.66 | -420.80 | -122.33 |
平均收益率 (Avg PnL %) | 0.00026 | -0.00044 | -0.00013 |
平均持仓天数 (Avg Hold Days) | 0.1084 | 0.0532 | 0.0624 |
总盈利 (Gross Profit) | 2,989,662.75 | 106,821.3 | 289,940.4 |
总亏损 (Gross Loss) | -2,176,142.25 | -157,317 | -340,217 |
年化收益率 (CAGR) | 0.1569 | -0.0578 | -0.0567 |
夏普比率 (Sharpe) | 4.0290 | -1.4526 | -0.8577 |
年化波动率 (Vol) | 0.0363 | 0.0404 | 0.0655 |
最大回撤 (MaxDD) | -0.0505 | -0.0668 | -0.0957 |
卡玛比率 (Calmar) | 3.1077 | -0.8651 | -0.5921 |
回测天数 (Days) | 3,795 | 245 | 245 |
实证结果表明:MACD 单因子策略显著优于网格策略,尤其在趋势性强的股票指数(000001.SH)上能实现稳定超额收益。然而,在低波动、均值回归特征明显的债券 ETF(511180/511380)上,MACD 信号噪声过大,难以形成持续盈利。
3)参数优化
采用参数网格搜索寻找最优参数:
- 网格策略优化结果
- 结果分析:
- 策略属性差异:
- 参数稳定性有限:
- 跨品种迁移性弱:
标的 | 最优参数组合 | 年化收益率 | 夏普比 | 卡玛比 | 盈亏因子 | 胜率 | 交易数 |
000001.SH | ma=40, atr=40, band=1.5, step=0.24, grids=30, mode=rolling | 9.8% | 1.13 | 1.45 | 1.42 | 0.53 | 742 |
511180.SH | ma=60, atr=20, band=1.8, step=0.18, grids=40, mode=daily_close | 3.1% | 0.42 | 0.39 | 1.12 | 0.49 | 196 |
511380.SH | ma=90, atr=60, band=1.5, step=0.30, grids=20, mode=rolling | 2.4% | 0.37 | 0.32 | 1.07 | 0.47 | 234 |
网格策略在价格存在区间震荡时表现良好(000001.SH在中性震荡市取得最高夏普1.13),但在低波动债券ETF(511180/511380)上几乎失效。
步长倍数(step_atr_mult)与ATR带宽对策略绩效影响最大,过大导致挂单稀疏、收益减少;过小则频繁交易、成本上升。结果可能存在过拟合情况。
在股票指数上优化得到的最优参数(ma=40, step=0.24)用于债券ETF后,收益率下降约60%,说明网格策略的最优区间依赖于标的波动性结构,迁移性差。
- MACD单因子策略优化结果
- 结果分析:
- 趋势策略表现突出:
- 债券类ETF无趋势:
- 参数稳健性强:
标的 | 最优参数组合 | 年化收益率 | 夏普比 | 卡玛比 | 盈亏因子 | 胜率 | 交易数 |
000001.SH | fast=8, slow=26, signal=9 | 15.8% | 2.61 | 3.12 | 1.81 | 0.46 | 1320 |
511180.SH | fast=12, slow=20, signal=12 | 1.2% | 0.18 | 0.21 | 1.04 | 0.44 | 380 |
511380.SH | fast=8, slow=26, signal=9 | 0.8% | 0.13 | 0.17 | 1.02 | 0.41 | 412 |
MACD策略在趋势性明显的股票指数上表现显著优于网格策略,000001.SH的夏普比达到2.6、Calmar超3,风险调整后收益优异。
由于债券ETF波动极低,MACD信号频繁假突破,交易次数虽多但整体收益接近零。
fast=8, slow=26, signal=9 的经典配置在不同标的上均保持相近的盈亏因子与风险结构,表明MACD参数具备一定的跨品种稳定性。
代码及计算公式
微观指标(交易层面)
指标 | 含义 | 计算原则 / 公式 |
Trades | 总交易次数 | 回测期间累计交易数量(含开平仓) |
Win Rate(胜率) | 盈利交易占比 | |
Avg Win / Avg Loss | 单笔平均盈利 / 亏损金额 | 计算所有盈利/亏损交易均值 |
Avg PnL | 每笔平均盈亏(绝对值) | |
Avg PnL % | 单笔平均收益率(相对收益) | |
Avg Hold Days | 单笔平均持仓周期 | 交易持有时间的均值 |
PnL Distribution | 收益分布偏态与厚尾特征 | 可辅助判断风险偏好与极端亏损概率 |
宏观指标(日频)
指标 | 含义 | 计算原则 / 公式 |
CAGR(复合年化收益率) | 衡量策略在回测期内的年化收益速度 | ,其中 ( ) 为年数 |
Sharpe Ratio(夏普比率) | 单位风险下的超额收益能力 | ,常取 |
Vol(波动率) | 策略收益的标准差,反映风险水平 | (日频数据年化) |
Max Drawdown(最大回撤) | 历史最大净值回撤幅度 | |
Calmar Ratio(卡玛比率) | 每单位最大回撤带来的年化收益 | |
Profit Factor(盈亏因子) | 总盈利与总亏损之比,衡量整体盈亏结构 | |
Gross Profit / Gross Loss | 累计盈利与累计亏损 | 所有正收益/负收益交易的求和结果 |
Days | 回测期总天数 |


