策略
目录
1 原则
- 挖掘数据
2 回测
2.1 数据查错
- 简单方法:算日收益,对偏离均值 4 个标准差的收益需要仔细检查;一般而言,极端收益与消息发布或市场指数异动有关,否则就是数据本身问题
- 另外还可以算一下不同价格组合的日收益(比如昨天的最高价和今天的收盘价)
2.2 回测价格选择
- 最高,最低价的噪声远大于开收盘价,故一般选用收盘价
2.3 回测陷阱
2.3.1 前视偏差
验证是否有前视偏差:全数据产生策略持仓数据,然后删除最近 N 天再次生成,再比较两者是否一致
2.3.2 数据迁就偏差
- 策略 规则 越多、 参数 越多,因为条件更难以达到,所以更容易产生过拟合。
- 能经得住时间考验的往往是简单的模型(奥卡姆剃刀原理)
- K 线独立数据量有限,很容易产生数据迁就偏差
- 如发生金融系统的状态转变,近几年的旧数据也无法使用
- 独立数据的量越少,交易模型中用到的调整参数就应该越少
2.3.3 流动性成本
- 常用指标:过去一段时间平均日交易量,单个指令的股数不宜超过平均日交易量的1%
- 常用指标2:通过市值决定指令规模
2.3.4 滑价
- 触发交易信号的价格与全部指令平均执行价格的差
- 拆单减少市场冲击的同时增加了滑价
2.3.5 市场状态转换
3 统计套利
3.1 状态转换
常被研究的状态转换
- 牛熊转换
- 通货膨胀与经济衰退状态
- 高波动率与低波动率状态:最适合用计量经济学工具,如GARCH模型
- 均值回归与趋势状态
3.1.1 建模思路
- 假设价格在两个(或多个)状态上的概率分布不同。简单举例:两个状态的价格都服从对数正态分布,但均值或标准差不同
- 假设状态之间存在某种转移概率
- 使用类似最大似然估计这样的统计方法,通过拟合历史数据,来确定状态概率分布和转移概率的参数
- 根据上述拟合模型,找出下一个时间步长的期望状态
这种方法被成为“马尔科夫状态转换模型”或“隐马尔科夫模型”,这一模型基于贝叶斯概率框架
- 模型假设状态之间的转移概率都是固定的,意味着在任何时候股票从正常的静止状态转移到不稳定状态的概率非常小,对实际交易无用。进一步需要用到拐点模型
- 拐点模型 使用了数据挖掘方法:输入所有可能预测拐点或状态转换的变量,例如当前的波动率、最近一期收益、情绪指数、宏观经济数据的变化等
3.2 平稳性与协整性
3.3 因子模型
3.4 策略清仓逻辑
建仓逻辑一般是特定的,清仓逻辑并无太大区别,主要有:
- 固定持有期
- 目标价格或盈利上限
- 最新的建仓信号
- 止损价格
3.5 均值回归or惯性策略
3.5.1 价格的“分形”性质
- 构建一个策略实际上是要判断,在 特定条件 和 特定时间段 ,价格究竟是均值回归还是趋势的
- 价格同一时间既可以是均值回归的也可以是趋势的,即具有“分形”性质
- 技术分析者喜欢用艾略特波浪理论来分析这种现象
3.5.2 均值回归
- 数学理论基础:时间序列的平稳性和协整性的概念
- 平稳价格序列对均值回归交易非常理想
- 竞争者的加入会减少均值回归交易的机会
- 对于均值回归策略,可以用更加具有统计可靠性的方法决定交易的最优持有期,可以运用Ornstein-Uhlenbeck公式建模
4 策略表现评估
4.1 平均年化收益率
需关注分母的说明
- 多空策略中,分母用一个方向的资本还是两个方向的
- 收益率是杠杆收益率(分母账户净值)还是无杠杆收益率(分母投资组合的市场价值)
4.2 回撤
- t 时刻回撤定义:当前净值与 t 时刻或之前的净值曲线最大值之差
- 最大回撤:是指净值曲线最大值与之后的净值曲线最小值之差
4.3 夏普比率
- 信息比率:(组合收益率 - 基准收益率)/ 超额收益率的标准差
- 夏普比率是信息比率的一个特例,基准取无风险利率,多种策略比较时更适用
- 仅当策略有资金成本时才需要减掉无风险利率。例如无隔夜头寸的纯多头当日交易策略就没有资金成本
- 货币中性策略无需计算无风险利率,卖空的现金买入另一腿证券,换言之其是自融资的
4.3.1 年化夏普比率计算
sharpe = sqrt(T) * 基于 T 的夏普比率。例如:策略只在纽交所交易时间(6.5h)内持仓,每小时收益率 R,每小时标准差 s,则年化夏普比率为 sqrt(252*6.5)*R/s
- 日收益算夏普:sqrt(252) * ret_mean / ret_std
4.4 业绩随时间而变化
- 市场流动性随时间而变化,策略交易成本需根据当时情况预估
- 金融市场的“状态转换”,金融时间序列是非平稳的
5 策略改进
- 难点:如何在改进时,不引进数据迁就偏差,并保持少参数的简单模型,更像是艺术而非科学
- 原则:任何策略改进要同时提高训练集和测试集的业绩