Successful Algorithm Trading 读后感
概览
算法交易和主观交易的对比
优点:
- 提高了投研效率
- 没有主观输入,受情绪影响较小
- 评价指标更加多维
- 更高的交易频率,人工操作不来
缺点:
- 需要一定的资金量
- 需要较高的科学素养和编程水平
散户和机构的对比
散户的优势:
- 小资金量更加灵活
- 对冲基金之间人员流动,会导致策略趋同,造成交易拥挤,散户的交易系统和这些关联较小
- 散户的交易对市场价格的冲击可以忽略
散户的劣势:
- 对杠杆的使用有更多的限制
- 散户的交易在券商的排队往往优先级较低,这会造成实盘和回测有较大差距
- 信息数据滞后
散户对于风险管理相比于基金来说,会更加自由,完全取决于个人的风险偏好。这有好有坏,往往这也会让散户忽略风险管理,把绝大部分时间放在构建交易策略上。
散户不需要关注交易曲线,不需要和投资者打交道,不需要定期公布事项满足监管,不需要和同行比,不需要和被动投资比。 散户只需要关注的就是绝对收益。
回测
为什么需要回测
回测可以帮助做到下面几点:
- 筛选:可以快速帮我筛选策略
- 建模:可以快速验证对市场的想法
- 优化:可以精细打磨自己的策略
回测过程中常见的偏差(Bias)
我们通过回测慢慢迭代自己的策略的时候,往往也引入了很多的偏差(Bias),常见的有:
- 优化偏差(Optimisation Bias)
- 过拟合数据,包括模型,策略超参数等等
- 未来信息(Look ahead Bias)
- 幸存偏差(Survivorship Bias)
- 每年有大量的股票退市,但是往往数据集里面只会包含存活至今的股票数据
- 主观偏差(Cognitive Bias)
- 面对回测曲线里面最大回撤在25%,可能较容易接受。但是实盘面对如此的回测往往难以忍受,因此很多策略终止在低点。
交易损耗
交易过程中带来的损耗包括但不限于:
- 手续费
- 印花税
- 佣金
- ...
- 滑点(Slippage)
- 交易信号对应的价格和实际价格之间的差距
- 主要因素包括:波动性,延迟,交易频率
- 市场冲击
交易风格
在确定自己的交易风格之前,我们需要从下面几个方面出发: - 你的性格是什么样子的 - 你所允许的交易时间是怎么样的
时间序列分析
这一节关于时间序列分析的相关算法,作者讲得非常简洁,不值得记录。
预测
这边作者只是简单减少了一些常见的机器学习算法,例如逻辑回归,线性回归,支持向量机,随机森林等等,以及机器学习当中常见的对于结果判别的方法。
业绩归因 && 风险管理
从各个level的业绩归因,可以更好地回溯整个交易系统的问题。一般可以从如下几个方面看待整个业绩的表现:
- 策略
- 策略在回测中的模拟
- 策略在模拟盘中的表现(模拟盘交易误差几乎可以忽略)
- 交易执行
- 衡量策略提供的交易信号和现实交易执行产生的误差
- 投资组合管理
- 是否存在更加合理的投资组合管理,可以降低交易的损耗
那么何为上述所说的"业绩"呢,一般我们需要从下面几个角度去考虑:
- 收益
- 总收益: 计算的时候需要考虑杠杆,做空等等因素
- 复合年化收益
- 风险
- 回撤(DrawDown)
- 收益的波动率
- 风险收益
- Sharpe Ratio: \(\sqrt{N}\frac{\mathbb{E}[R_{\alpha}- R_{\beta}]}{\sqrt{\mathbb{Var}[R_{\alpha} - R_{\beta}]}}\), 这边\(N\)为一年内交易日数目,如果你的收益是按照天计算的话。\(R_{\alpha} - R_{\beta}\) 代表超额收益。其中Benchmark可以选择为对应的ETF.
- Sortino Ratio: \(\sqrt{N}\frac{\mathbb{E}[R_{\alpha}- R_{\beta}]}{\sqrt{\mathbb{Var}[R_{\alpha} - R_{\beta}]}_d}\). 这边的下标\(d\)代表我们只考虑,当超额收益为负的时候波动率,因为亏损的波动,更加容易交易情绪的波动。
- Calmar Ratio: \(\sqrt{N}\frac{\mathbb{E}[R_{\alpha}- R_{\beta}]}{\max \mathbf{drawdown}}\).
- 交易指标
- PnL
- Average Period PnL
- Maximum Period Profit
- Maximum Period Loss
- Average Period Profit
- Average Period Loss
- Wining Period
- Losing Period
- Percentage Win/Loss Periods