量化回测(还没写完

本书第8章是The ML4T Workflow – From Model to Strategy Backtesting,本章集成了机器学习交易工作流的各个构建模块,并从端到端角度介绍了由机器学习算法驱动的交易策略的设计、模拟和评估机器学习驱动的交易策略的过程。详细地演示了如何使用backtrader和Zipline库准备、设计、运行和评估回测。前几章我们已经学过了zipline,这章更像一个总结应用,东西不是特别多。

 上面提到了端到端,端到端就是:输入是原始数据,输出是最后的结果

端到端(end-to-end)的含义_lxy_Alex的博客https://blog.csdn.net/happyhorizion/article/details/100607429

目录

1 如何回测

2 回测中的陷阱及如何避免

2.1 数据正确

2.2 拟合正确

2.3 统计正确:避免数据窥视和过度拟合

2.4 代码举例:通缩夏普比率

3 回测引擎如何工作

3.1 向量化的回测 versus 事件驱动回测

3.2 代码示例:一个简单的向量化回测

4 Backtrader:用于本地回测的灵活工具

5 zipline:Quantopian 旗下的可伸缩回测

5.1 Calendars and the Pipeline 让拟合更稳健

5.2 获取自己的分钟数据的bundle

5.3 The Pipeline API:对ML信号进行回测

5.4 如何在回测过程中训练模型


首先,什么是回测:

        基于归纳历史市场规律的策略,就需要让策略在历史环境中模拟交易,评估性能。回测是根据历史数据来验证交易策略的可行性和有效性的过程,希望用回测结果预测该策略在未来的收益率。 计算策略在历史数据可以实现的盈利能力、风险度、可靠性等,来预测策略未来的表现。回测的基本理论是,任何在过去有效的策略在未来都可能有效,相反,任何在过去无效的策略在未来也可能无效。

1 如何回测

  1. 获取和准备市场数据、基本面数据和其他数据
  2. 处理数据调整时间,计算阿尔法因子和特征工程
  3. 设计机器学习模型、调整参数和评估机器学习模型以生成交易信号
  4. 根据这些预测的信号,应用规则来选择要投资的资产
  5. 根据资产配置等原理,调整投资组合环境中的单个头寸的大小,使得投资组合最优化,生成Target Portfolio
  6. 使用历史市场数据,模拟所触发的结果交易
  7. 评估结果位置的表现

2 回测中的陷阱及如何避免

2.1 数据正确

  • 前视偏误:用未来的信息来确定今天的交易信号。比如说用当日的最高价格来决定当日的买入信号。但实盘里这种信息是不可能取得的。
  • 幸存者偏差:选股中,只选当时存在的股票,而没有把退市的股票也加入到选股库里。
  • 异常值控制:我们可以通过winsorize缩尾或者截尾,控制异常值,(缩尾就是所有大于上临界值的值全等于上临界值,所有小于下临界值的值全等于下临界值;截尾就是直接去掉极端值)。这里的难点在于确定真正不能代表所分析时期的异常值,而不是去掉作为当时市场环境组成部分的任何极端值。
  • 样本期选择:如果样本数据不能反映当前(和可能的未来)环境,那么回测将不能产生推广到未来的具有代表性的结果。在波动性或成交量方面,未能包含足够的数据点,或包含过多或过少的极端历史事件,就很难产生可以推广的结果。我们可以使用包含重要市场现象的样本周期或生成反映相关市场特征的合成数据,来解决这个问题。

2.2 模拟正确

  • 未能Mark to Market盯市,模型可能开始的时候表现很好,但后面表现变差;解决方法:绘制随时间变化的性能图或计算(滚动)风险指标,比如风险价值VaR或者Sortino Ratio
  • 对交易的可行性、成本或市场影响的不切实际的假设;没有交易对手的情况下假设卖空的策略,或低估交易规模较大或交易流动性较差资产的交易(下滑)对市场的影响,或由于经纪人费用而产生的成本。解决方法可以是限制流动性,设置一些市场参数模拟现实情况流动性较差的资产交易对价格的影响。
  • 错误的信号和交易执行时机,类似于前视偏误,模拟可能会对什么时候接收信号并根据信号进行交易做出不切实际的假设。例如,当交易只能在下一个开盘价进行时,信号可能从收盘价格计算出来,而这两个价格可能有很大不同。当我们使用收盘价来评估性能时,回测结果将不能代表现实的未来结果。解决办法是 写程序的时候:认真确认信号到达、交易执行和性能评估的顺
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值