量化进阶——量化交易模型的“钝化”与“圣杯”[通俗易懂]

量化进阶——量化交易模型的“钝化”与“圣杯”[通俗易懂]阅读原文:http://club.jr.jd.com/quant/topic/1326857京东金融官方资讯QQ群:417082141有什么想咨询的都可以来询问我们哦钝化的烦恼常有人提到量化交易模型的“钝化”问题,通俗的说,也就是一个模型从赚大钱变为不赚钱,甚至亏损的一个过程。甚至在海洋部落那样高手云集的社会中,不少高人眼里,钝化是每个量化交易模型都会很快发生的事,赚钱机

大家好,又见面了,我是你们的朋友全栈君。

阅读原文:http://club.jr.jd.com/quant/topic/1326857

京东金融官方资讯QQ群:417082141 有什么想咨询的都可以来询问我们哦

钝化的烦恼

常有人提到量化交易模型的“钝化”问题,通俗的说,也就是一个模型从赚大钱变为不赚钱,甚至亏损的一个过程。甚至在海洋部落那样高手云集的社会中,不少高人眼里,钝化是每个量化交易模型都会很快发生的事,赚钱机遇可谓稍纵即逝。钝化已成量化交易的头号敌人。那么,量化交易模型钝化的实质是什么呢?

最典型的钝化过程,是量化交易模型开发者从最近几个月的行情数据入手来编写模型。这样的模型往往在过去几月或者包括当前都非常厉害,稍微再过几月就出现了明显的“钝化”。显然,样本数据过少,是导致此类钝化的首要原因。稍有经验的开发者都会避免这样情况的发生。

可是推而广之,更多从数年数据入手开发的模型,就没有类似情况了吗?以股指期货为例,开市仅仅两年多,任何人也只有这两年多的可参考数据。那么在未来的数月、数年以及数十年,谁又能保证不因基础数据样本相对过少而钝化呢?

钝化的实质是较优参数的无规律性,我们来看看影响模型收益变化的内在因素。

模型在编写完成后,基础原理是不会再改变的,否则就不是同一个模型了。那么影响量化交易模型收益的内在因素很简单就是参数。

通常,一个比较简洁的模型包含2-3个基本参数(其中一个是运行周期),然后还包括数量不等的止损等辅助参数。模型开发者往往使用通过历史数据回测的较优(也包括最优、次优)参数来进行实盘交易。

以每个量化交易型必备的运行周期为例,某个以2010年数据为基础,测试出最佳运行周期为10分钟(见下图)。结果到了2011年后期,因为市场节奏的变化,10分钟模型的收益大规模下降直至出现局部亏损,形成了典型的钝化曲线。量化进阶——量化交易模型的“钝化”与“圣杯”[通俗易懂]

同样的量化交易模型如果以2011年后的数据为基础,则测试出测试出最佳运行周期为5分钟(见下图)。有趣的是我们发现其2010年的收益就远远低于使用10分钟周期的模型。可以想象,如果市场节奏恢复2010年状况,5分钟模型也将出现同样的钝化。

+量化进阶——量化交易模型的“钝化”与“圣杯”[通俗易懂]

可是,一个模型如何能知道什么时候使用5分钟,什么时候又使用10分钟呢?

圣杯:参数的规律

由于每种市场节奏交替变化并无固定规律,因为每种参数(包括周期)理论上都不可能通吃各种行情,而只能冀望在不适应的行情中少亏或不亏。

而如果这个世界上存在圣杯的话,那就一定是如下两种可能:

1、其主要较优参数长期稳定,无须修改。

2、其主要较优参数有自身的变化规律。开发者知道什么时候朝什么方向修改参数,或者说参数本身就能够根据市场节奏自适应调整。

很多人发现,每次对量化交易模型进行参数优化的时候,看不出调整的方向有任何线性或可辨识的规律。因此也不知道什么时候应该调整参数以及如何调整。

而那些所谓“圣杯”的拥有者一定告诉你,要么不需要调整参数,要么他早知道在什么时候、朝什么方向调整。你和“圣杯”的分别,不在于你不善于发现参数的规律,而是你的参数本身就没有规律。本质上,你的参数是某一段时候获利较大的概率的体现,而不具有某种有所指的涵义。

比如这样的模型,虽然有不错的回测收益,因为参数的调整无规律,却不能保证未来收益的正负。

量化进阶——量化交易模型的“钝化”与“圣杯”[通俗易懂]

而这样的模型,在每个周期都有其相对固定的较优参数,无论在哪一年都基本一致。那它才是可能中的“圣杯”。

量化进阶——量化交易模型的“钝化”与“圣杯”[通俗易懂]

使用有规律参数的模型,发现波动规律本身所波动的规律,才是“圣杯”之所在。相反,如果没有任何模型可以使用恒定参数而赢利、没有任何模型能把握较优参数变化的规律,那么,“没有圣杯”就是圣杯。另外,以上各模型皆非引用未来函数。

真正带点未来函数的,是这样的模型:

量化进阶——量化交易模型的“钝化”与“圣杯”[通俗易懂]

阅读原文:http://club.jr.jd.com/quant/topic/1326857

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153220.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python模块有哪些_pycharm引入模块报错

    python模块有哪些_pycharm引入模块报错python将自己写的模块上传到PyPI服务器,报错error:<urlopenerror[SSL:CERTIFICATE_VERIFY_FAILED]certificatever

    2022年8月7日
    5
  • 堆排序算法——C/C++

    堆排序算法——C/C++堆排序1、算法思想堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。2、实现原理要实现从小到大的排序,就要建立大顶堆,即父节点比子节点都要大。2.1、初始化数组,创建大顶堆。大顶堆的创建从下往上比较,不能直接用无序数组从根节点比较,否则有的不符合大顶堆的定义。…

    2022年7月12日
    23
  • Redis集群详解

    Redis集群详解Redis集群详解Redis有三种集群模式,分别是:*主从模式*Sentinel模式*Cluster模式三种集群模式各有特点,关于Redis介绍可以参考这里:NoSQL(二)——RedisRedis官网:https://redis.io/,最新版本5.0.4主从模式主从模式介绍主从模式是三种模式中最简单的,在主从复制中,数据库分为两类:主数据库(master)和从…

    2022年6月13日
    26
  • php每秒执行一次_crontab每分钟执行shell脚本

    php每秒执行一次_crontab每分钟执行shell脚本作为php-slimWeb应用程序的一部分,在我的init.php文件中,我需要一个Crontab.php,其中包含以下代码://clearsanyexistingcrontabjobsfirstexec(“crontab-r”);$ctCommand='”*/1****php./ProcessCycleTimeData.php”‘;exec(“(crontab-…

    2022年8月30日
    5
  • PHP数组转json「建议收藏」

    PHP数组转json「建议收藏」$json=array( ‘total’=>3, ‘rows’=>array( array( ‘value’=>’1’, ‘color’=>”#DC143C” ), array(

    2022年6月21日
    23
  • java setaccessible_java.lang.reflect.AccessibleObject.setAccessible(boolean flag)方法示例

    java setaccessible_java.lang.reflect.AccessibleObject.setAccessible(boolean flag)方法示例java lang reflect AccessibleOb setAccessibl booleanflag 方法将此对象的可访问标志设置为指定的布尔值 设置值为 true 表示反射对象应该在使用时抑制 Java 语言访问检查 设置值为 false 表示反射对象应强制执行 Java 语言访问检查 声明以下是 java lang reflect AccessibleOb setAccessi

    2025年9月13日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号