• WeQuant教程—1.3 利用回测工具降低交易风险


    量化系统投入实际使用之前,人们会希望提前测试交易的效果。这个期间往往涉及代码的改动和参数的调整。最常见的做法是将历史数据输入量化系统,让量化系统根据既定的交易逻辑进行操作,观察和分析交易结果,找到问题所在,调整量化系统,然后以此循环,直到效果达到预期为止。

    该过程在业界被称为回测。回测是量化工作者常见的工作内容之一。

    Note

    很遗憾的是,回测跟实盘交易永远存在差距,再好的系统也无法回避。现在市面上有几个开源的回测引擎框架,虽然减少了回测的开发工作量,但或多或少都存在回测的误差。在此,我们优先介绍概念,其次介绍一些常见的规避或者补偿误差的方法,供读者在实践中使用。

    回测工具有哪些功能?

    历史交易过程和结果的模拟

    顾名思义,回测当然是回顾一段时间,用既定的交易策略,向模拟的交易平台提交交易请求,然后统计交易的结果。

    这样,一个策略到底能不能运作,是不是像想象中的那样运作(实战中,策略辞不达意的情况概率很大),运作的效果在特定的行情下是不是有预期的效果(不是所有策略都适用于所有行情,显而易见的事情),一目了然。

    自动记账

    如果每一笔交易都要自己手动记录交易结果,计算扣费,遇到限制条件还要进行异常处理,这个工作量是及其繁琐和容易出错的。一般来说,回测会有专门的记账功能,确保量化系统的交易请求能被正确处理。

    回报分析

    为了辅助回测人员对自身的策略效果建立一个客观的认识,回测往往附带一套指标系统,包括但不限于回报率、alpha、beta、夏普率、最大回撤等,通过这些指标,一个策略的收益情况、收益的相对好坏、收益的稳定和波动程度、最坏情况等,都可以得到一个参考,在常规的理解里,这些指标在实盘中依然有同样的表现水准(严格数学证明略)。

    当然,为了分析的方便,回测还会提供基准参考与图形可视化功能,把市场的平均回报连同策略的回报按时间顺序用图形展示,能极大地具象化策略运作情况。

    怎么使用回测工具?

    回测工具有很多,这里只介绍我们推荐的相对简单可靠的方式。

    回测工具与量化系统高度集成。在理想的情况下(参照我们设计的简单的量化系统),用户可以原样照搬量化系统里面的策略内容,并添加少量的系统变量设置,然后回测工具自动装载策略,加载回测情报系统,对回测的交易系统进行操作,记账。

    # 回测系统示例伪代码开始 { 读取用户设置(时长、品种、误差系数) 初始化程序(策略系统,回测数据系统,模拟交易记账系统) 循环:回测数据系统.从第一条到最后一条.执行 { 策略系统.读取历史数据 策略系统.计算信号 如果(策略系统.有交易指令)执行 { 模拟交易记账系统.执行交易 } } 打印分析结果}

    这跟量化系统的执行逻辑非常相似,差别是:

    1. 情报系统是实时在更新,而回测数据系统提取历史数据;
    2. 交易系统会向交易平台提交交易请求,模拟交易记账系统则是在本地进行模拟撮合交易,记录结果;
    3. 回测系统有专门的分析结果。

    有了这样的系统,重复地运行,不断地调整参数,找到你认为可以接受的结果为止,回测也不是那么难,对不对?

    所以到底需要准备什么才能进行回测呢?

    答:完整且规范的数据源,自动记账程序,和你想测试的策略。

    可是这几件都不是省油的灯,要自己重头写一遍,基本就是《量化交易从入门到放弃》的故事原本了。

    如果你一直读到这里,还对自己完成这样的任务抱有期待,WeQuant佩服你的坚持。

    新手做回测时容易犯什么样的错误?

    这里面学问很多,主要围绕如何降低回测的系统与人为误差,回头有机会再慢慢更新。

    结语

    回测是调优你的量化系统的比较有效的手段,不过有效的回测并不容易,也不是所有的场景都能通过回测解决。对于回测可以解决的问题,我们设计了一套简单的标准和配套工具,降低大家使用回测的门槛。请阅读下一篇。

  • 相关阅读:
    谈谈SpringFramework与IoC依赖查找
    监控微博、论坛的“棱镜计划”
    输出质数的方法改进
    参数解构
    直接插入排序
    理解迭代
    异常处理
    函数
    continue语句
    break语句
  • 原文地址:https://www.cnblogs.com/bitquant/p/11560318.html
Copyright © 2020-2023  润新知