南京基金投资爱好组

【喜牛微课堂】 朱宏宇演讲实录:趋势性量化交易系统研发交流(上)

喜牛投资2018-05-22 01:10:56

喜牛私募基金行业孵化器

公众号ID:tinybullclub

喜牛"Tiny Bull",喜欢牛人、牛市,再微小的牛,聚合在一起也能成为大牛!


喜牛梦想家俱乐部,立志于帮助具有投资天赋及能力的伙伴,实现私募基金职业投资梦想!


文 / 朱宏宇(喜牛会员)

导言

6月23日,喜牛邀请到了喜牛会员朱宏宇朱总作为喜牛微课堂的嘉宾,演说主题为“趋势性量化交易系统研发交流”,引发了群友的热烈讨论。7月7日晚上19:00,朱总的主题微课堂第二弹也将开堂,喜牛微课堂等你来哦!


► 喜牛微课堂:由喜牛主办的第七期“喜牛微课堂”于6月23日晚成功举办,喜牛会员、朱宏宇先生担任嘉宾并做出演讲趋势性量化交易系统研发交流理论-1。以下是演讲全文:


课程概述


大家好,我是朱宏宇,首先很高兴能和大家交流。这次的微课堂和以往不大一样,有了个预习作业,就是先发课堂视频,再通过微课堂互动的方式交流解决具体问题。因为交易是一门实战型的技术。如果只是说几种理论,或者为了考证而关注某几个特别的章节,这是不利于实际交流技术的成长的,会导致整个交易系统出现很大的局限性。


感谢喜牛接受我的建议,大家第一次来尝试通过视频互动的方式来做案例交流。可能有人比较忙,还没来得及看课堂视频,下面我就简单的梳理一下课堂视频的内容:


第一部分的视频主要包括三个部分:

1) 系统为什么要模块化

2)滤网

3)交易系统的鲁棒性


首先,为什么要系统模块化?在交易的过程中我们会遇到很多风险,有的风险相关性比较高,有的风险相关性较低。如果仅仅靠某个神奇的算法或者神奇的金手指来解决,不太现实。所以理想的模式是我们把风险进行拆分和分类,采取不同的方案来解决不同的风险。


第二部分主要讲的是滤网。因为滤网的这个概念比较宽泛,本人对它的定义主要是:能够在不影响其他指标情况下,稳定地提升整个系统的胜率,那么他就是一个合格的滤网。


交易系统模块的鲁棒性是整个资料中的核心。主要讨论压力测试、参数的相关问题等,希望大家都能够认真看看。

 

交易模块的功能就类似于发动机,他主要负责输出整个交易系统其中的盈利正期望。而资金管理和组合模块儿就负责辅助提升盈利正期望的稳定性。


个人观点,仅仅靠组合和经营管理不可能把一个负期望的交易策略转化成一个正期望的交易策略。无论你的做法多么完美,模式多么先进。


之所以讲这么多,主要是因为这些问题都是我在交易系统变化过程中实际面临的问题。未来如果大家想成为实际的、成熟的投资交易者,那么这些问题是必须要解决的。

 

Q&A / 微课堂精彩问答集锦

 

Q1:

我经常会有一些关于股票交易的思考,可验证起来很费劲,需要对个股不停的复盘人工检验,费时还往往会遗漏。不知策略模型能不能解决这问题,直接通过运算把历史上触发条件的买和卖直接文本输出?如果可以的话,请推荐几本书,谢谢。


A1:

根据网友的提问,个人推测,这位朋友还处于一个量化研究的初级阶段。我站在过来人的角度提几个个人的建议,供参考。


第一个建议:首先要把自己的策略量化定型。在这个量化的阶段中,要注意几个问题:


第一个问题:拟合问题,这是量化交易中最常见、又最难解决的问题之一。其中,要关注的一个问题节点,就是参数数量问题。核心参数,也就是我在视频中讲过的主参数,绝对不能超过三个,超过三个一定会存在过多拟合风险。重要的事情说三遍,这是无数研究者的心得。在核心参数不超过三个的基础上。可以存在辅助参数。但注意,辅助参数实际在交易中对整个交易的影响只是发挥个平滑的作用,不能对核心的算法产生任何影响,如果辅助参数对核心算法才产生影响,那他就不是辅助参数而是主参数。分清主参数和辅助参数,这样才有利于未来的组合和相关的优化过程,如果这个前提条件搞混了的话。容易导致拟合风险,未来做组合和资金管理的时候也容易陷入紊乱。


接下来说说除了参数问题之外,后续的问题。第二个问题是未来函数的问题。未来函数主要注意:时间靠后的数据不能对时间靠前的结果产生影响。这个在实际技术量化平台的时候,就会看到相关问题的产生。


第三个问题是目前市场上主流的交易方案,比如说均线、布林线、MACD。这些一般存在因为计算导致的信号延迟问题,你可能实盘的时候才能发现,但是在复盘的时候能未必能注意到。所以说,在测试的过程中要注意这些交易成本。刚才所说的那些指标只是供大家参考,在实际实盘的时候,这些指标由于诸多原因,很难能够达到我说的压力测试标准—多周期、多参数、多品种。这些指标也没有办法能够输出稳定的盈利正期望。当然了,不排除有个别高手能做到。我只是从我个人的研究经验来说,供大家参考。


还有第四个问题,这个也是实际研发过程中所面临的一个常见问题:有些概念是很难量化的,比如压力线,比如波浪理论的不同浪如何识别等。像压力线,你要去做量化的话,会面临很多问题:起点如何选择?终点如何选择?中间的毛刺如何处理?因为在压力线的形成过程当中,有很多的时候,K线会存在偶然性突破,那么哪些是真实性突破,哪些是假突破。可能人的主观判断起来很容易,但要你找程序的语言,这是一个非常复杂的问题。


网友提到的“不知策略模型能不能解决这些问题,直接通过运算把历史上触发条件的买和卖直接文本输出?”是这样的,目前的量化交易平台基本都能实现批量回测功能。但是是否可以文本输出,这个要考虑具体平台。有的平台可能支持,有的平台可能需要自己去选个插件。常用的交易平台有开拓者、金字塔、MT等,这些都属于比较成熟的平台了。有些简单的编程功能在淘宝也有相关的服务。


在这些平台上做的历史回测可以看到很多问题。当然了,不代表全部问题,因为在这行中经常可以看到,回测效果很好,但实盘效果却差很多。这个原因有很多,有的是因为策略稳定性,有的因为资金瓶颈,有的因为外部的第三方因素的影响,比如政策的突然变动等。个人提个建议:测试的时候建议参考我在视频中提到的压力测试。最初级的这个压力测试就是多周期、多品种,这样在一般情况下,相关性会比较高。如果要是连这个压力测试都无法通过的话,那么多品种的压力测试就更不用考虑了。


网友建议我推荐几本书,我在这列个推荐的书单。

《海龟交易法则》

《股票作手回忆录》

《我的期市心得》(苏慧)

《超越技术分析》—图沙尔·钱德著

《策略评估与最佳化》—Robert Pardo


简单说一下,这五本书是属于研究初期比较适合的,帮助您寻找思路、构建自己的交易理念。


其中《海龟交易法则》和《股票作手回忆录》属于经典中的经典了,类似我们交易行业中的圣经。我遇到问题的时候,就经常回头来看华尔街的先贤们,他们当年遇到这些问题时,是怎么思考的。我很多解决问题的灵感还是从这两本书里面找到的,经典就是经常被模仿,但从未被超越。


《我的期市心得》是苏惠写的,是一个大陆人,他写完后曾在网上发表,但是后来没了后续,也不知道是什么原因。不过我看过他写的资料,我个人觉得写的是非常靠谱,相对来说很务实。虽说不算经典,但是我个人也推荐。


第四本书是《超越技术分析》。这本书主要讲如何来去做一个交易系统。相对来说,它就是个流程图。他把这个整个交易系统的某些流程全部都固化、量化出来。它类似于一本工具书,在很前期你不知道系统如何做的时候,可以用来参考。


《海龟交易法则》、《股票作手回忆录》、《超越技术分析》这三本书都有电子版,然后在淘宝上也可以找到。


考虑到实际研究初期的时候,大家可能问题会很杂,有的时候莫名其妙就会突然冒出一些问题,所以我就推荐两个论坛:一个是海洋部落。它现在还没什么人气,登录也不是很稳定,但在里面我个人觉得还是有些做的比较好的交易前辈的。另外一个就是知乎,有些问题在这里可以看到很多人从不同角度的理解。但是每个人的想法不同,所以不建议直接套用,建议能从多个角度来看问题,这样能够更好的看清楚一些问题。

 

《策略评估与最佳化》这本书是台湾人翻译的,在大陆没有卖。这个在淘宝上倒是有卖的,不过是影印版。这本书对我的这个整个交易过程中研究最大的影响就是他讲了一个WFA,也就是步进拟合和压力测试。这两个概念的思维模式对我的整个交易系统影响是非常大的。我也是在研究过程中遇到很多问题时候都会看这本书是如何去讲处理这些问题的一些相关性思路。这本书同时也讲到了部分参数拟合的问题,这个如何去做参数选优,因为他的研究方向和我的研究方向不太一样,所以说就没有过度关注,大家有兴趣的话可以自己看一下。


等到进入研究后期的话,一般就是金融统计类的相关问题了。因为组合资金管理的模块需要大量的统计工作,比如等风险原则如何来做这个组合等。


这部分就不推荐什么书了,最基础的入门书就是概率论和数理统计。然后如果大家有兴趣研究热点,看稳定性之类的,这个就看大家都各自的研究方向了。


Q2:

有没有区分震荡和趋势的好办法?


A2:

先提前说一下,这个问题和后续的问题都有涉及到后面第二部和第三部分,就是组合资金管理的视频。因为相关视频要下次交流才能放出来,所以现在我只是定性的讲解一下相关的方向,供大家参考。


所谓的震荡和趋势都是表象,而且是相辅相成的,你不可能百分之百开分割开来。站在交易的角度来讲,其实趋势和震荡背后隐藏的问题就是盈亏同源。


常见的趋势交易系统,你是不可能躲过所有震荡的。


站在交易角度,我个人建议,可以对震荡做个分类,然后用不同的模块或者模块组合来规避不同的震荡对交易的负面影响。


下面我举几个案例,大家先看一下下图:


图1

这是第一种类型的震荡,从交易角度来讲是盈利机会极低的一种震荡品种。这部分震荡归品种筛选模块管,品种筛选模块的主要功能就是把这种垃圾种类踢出去,降低整个交易亏损的可能性。从图片来看,明显它的盘整幅度大概是8%,盘整时间大概是8个月,在这种情况下,趋势系统是很难盈利的。



图2

这是2011年到2014年的下降数据,波动幅度大概百分之三十五左右,但是是有盈利机会的。


未来可能出机制,也可能出现连续的震荡。所以说从交易流程来讲的话,首先要考虑是否会触发熔断机制。如果不会触发熔断机制的话,那不停止交易,利用整个系统的稳定性来继续做交易。如果要触发熔断机制了,那就进入下一个流程,就是说要不要考虑剔除它做交易,这些在后续的视频中都有讲解。



图3

这部分主要靠策略自身的盈亏控制能力来解决这个走势问题,因为那他是属于低幅震荡加有趋势,虽然有亏损,但是盈利机会比较高。


如果策略能通过压力测试,代表适应能力强,那么自然就能够控制亏损。


如果要是策略的适应能力稍微差些,但是你通过组合和资金管理的这个方案。用交易模块来输出盈利正期望,其他模块虽然不能盈利,小额亏损,但是还有其他的模块可以盈利,整体下来,组合就能达到一个盈利的效果。


Q3:

提高程序化应用效率的方法,我觉得有3个:1.结合基本面选品种  2.结合手工选品种和大波动行情 3.提高编程能力,用更复杂的算法。 您觉得哪种更适合散户,是否有其他方法?


A3:

首先说一下,网友问哪一种适合散户,我的观点是哪种都不适合散户。


在交易这个负博弈市场,根据数据,百分之九十的人都会亏损,剩下的百分之十的投资者除了极少数运气爆棚的那种,能够及时离场。剩下的只有专业的投资者才能做到长期稳定回报。


专业的投资人要考虑很多因素:策略的稳定性、提高收益的同时要保持其它指标的稳定性、风险控制、组合管理、整个系统的稳定性等一系列的问题。每个因素都不是靠拍脑袋就能决定的。


除了交易系统的技术问题,还要考虑交易平台的稳定性,资金瓶颈、第三方风险等系列相关问题。这些问题也不是小散户可以解决的。举个例子,我在后续的课程中会提到这个多周期、多参数、多品种的组合来提升稳定性的问题。只要你的组合中包含有一个股指期货,那至少几百万或者上千万的资金才能做。

 

交易中还会考虑到第三方风险,比如说你遇到一个上市公司故意隐瞒风险,从立案到审核完成至少要几年时间,期间的交易损失,或是资金被冻结,这个风险是散户根本耗不起的。要做交易,就做专业的投资交易者,站在专业的角度来思考技术和发展问题。

 

下面说这个第一个问题,基本面选品种,我是做过实体行业的,也经历过原材料大波动。2010年的时候金银花暴涨。2009-2013年的时候,田七,大家常说的一种中药材。一公斤从60元涨到800元,大概四年的时间涨了十二倍。


当时我做过实地访谈,受访者都有各自的看法,多数说是天气,也有人说现在库存足够,也没有那么紧张。等到后来价格下跌的时候,出现了更多神奇的理由,甚至有人说是金融危机,五花八门。


圈内人擅长的是了解各个环节的利润,然后估算自己所在环节,应该有大概多少利润。但实际要真遇到原材料大幅波动风险的时候,圈内人的预判也并不是那么准确。最典型的就是每次原材料大幅波动之后,除了少数暴赚,多数还是一地鸡毛。就像最近的煤炭和钢铁行业,在前几年也是火的一塌糊涂。但要是圈内人真能预估那么准,现在又何至于留下一堆乱摊子。


下面说第二个问题:结合手工选品种和大波动行情,手工选品种是主观型品种吗?如果是的话,那就存在这样问题:你的主观判断是否具有真正的准确性和可靠性。


大波动是一种极端行情,发生的概率比较低。可能有的策略对这种大波动的适应性好像很高。但如果你的策略只适用于这种极端行情,那就有几个问题。第一就是发生概率低,可能几年一次或者是一年一次。第二就是稳定性问题,极端行情可能快速开始,也快速结束,那如果你的策略适应能力差的话,就可能出现较大的回撤,再考虑到交易频率,很有可能一年之内亏,两年之内亏,然后第三年大赚。那你连续两年亏10%,要扛到第三年大赚30%、40%吗?


我在组合环节里提到,组合可以考虑特殊走势,极端行情也是组合中的一种。理想的模式还是靠策略的高适应性来获得稳定盈利。这种极端行情作为组合中的一种,如果要想获得高盈利的话,提高业绩表现,这个只能说是组合中的一个小概率。然后根据你的资金权重去调整相关的风险和收益。即使遇到这种特殊行情,出现这种极端走势,比如暴涨之后突然连盘了很长时间,因为你有通过组合,所以即使遇到特殊问题的话,也不会对整体产生较大负面影响。


建议大家那个牢牢记住一句话,交易的本质就是概率,我们所追求的就是概率的最大化。


第三个问题说提高编程能力好用更复杂算法,我的观点是编程就是工具而已。交易系统的目标是稳定盈利,这个是核心问题。更复杂的算法是否和交易匹配其实也是一个问题,你每引进一个算法,都会同时产生正面影响和负面影响。那么你还是要从结果来考虑这个系统到底稳不稳定。

Q4:

震荡模型有什么新思路?


A4:

震荡模型的要求那是高胜率低收益。这个比趋势系统更难做,为什么这么讲?因为震荡一般情况下他的波动性比较小。客观性问题会导致亏损占盈利会比较高。比如说滑点手续费等。这个在趋势上来说可能相对是比较小的影响,但是在震荡中,因为本身盈利比较小,那么它占的负面影响就比较高。


第二个问题就是说如果要遇到黑天鹅,比如说连续的单边涨停板和跌停板的趋势行情,那这个对交易曲线的杀伤力会非常大。所以基于这两点,我个人的研究还是只偏向于趋势性行情。


Q5:

是否有组合的方法能适应绝大多数的品种?


A5:

这个问题我是这么看的,实际上绝大多数品种是交易系统的要求,而组合只是其中一个环节,个人认为提问者可能把这个逻辑搞混了。


按照流程来想,应该是先研究这个交易模块的鲁棒性,再围绕这个交易模块的基础上配置组合和资金管理模块。然后就像一开始说的。交易模块就像发动机。然后组合和资金管理就像底盘和其他配件,让发动机输出的动力能变得更稳定,让汽车能够在路上能够跑的更稳定。


Q6:

量化模型可以把中长期趋势策略和短期波动策略放一起吗?会不会有交易逻辑冲突?


A6:

首先第一点,现在市场上主流的策略属于多策略组合,我个人是不反对多策略组合的。


这里面有个前提条件,就是策略要尽量能够通过压力测试。如果不能通过压力测试的话,即使在九个策略中有一个策略发生黑天鹅,对这个整个组合也是有很大影响的。


短期波动的研究难度我个人认为比中长期的研究难度要高很多。


我们目前正在基于核心算法相同的基础上想把长线策略转化为一个短线策略。


实际就会遇到非常多的问题,最典型的就是刚才提到的,你的盈利幅度变小,但是你的交易成本还是保持不变的。那么相对来说这个亏损就会变得很高。


所以综上,交易逻辑冲突其实并不是太重要,因为交易系统就是你交易逻辑的一个量化表现。最主要、最关键的事情还是你的策略是否能够考虑鲁棒性的问题。如果能够解决鲁棒性的问题,那他适应范围广。再通过组合和资金管理把这个压力正期望输出,那么这个组合就是一个很好的组合。


Q7:

现在都是多个单策略集合在一个程序里运行,在收益不理想或者未达预期时,多长时间评估结果并进行程序调试比较好?


A7:

首先,在这个收益不理想或者未达预期的时候。我个人所做的第一件事情不是看收益,而是先看亏损。针对亏损发生的频率次数还有它发生的特征来看策略是否存在问题。


这个在后续的资金管理视频中会对这块做一个单独的描述,在这里我就简单说一下。亏损它发生的频率和发生的特征,会存在不同的问题。


当发生亏损的时候,就像这个人体感冒发烧一样。背后可能有很多因素,可能着凉了,也有可能有其他原因。我们要看问题发生的特性来逆推可能存在的问题。


至于多长时间评估结果并进行程序调试。我个人建议还是要考虑你这个策略的特性。比如说中长线策略在《策略评估与最优化》中就提出说:一般情下根据历史三年的数据来看未来历时一年的数据。


我对这个观点既不赞成,也不反对,只提个个人的问题供参考。


就是主要关注是否有特殊情况的发生,最典型的就比如说股指,像前几年出现大涨大跌,然后最近就和死鱼一样的行情,这种走势风格快速转变的时候,你的交易系统应该有个应急机制。


如果要是这个中线或者短线的话,这个问题我们现在正在研究,其实中线和短线,他们更类似于特殊行情发生时,交易系统的一个匹配问题。


那么这种中线和短线的评估和进行程序调试,个人建议一般情况下,半年都回头看一遍。尤其是这种特殊问题的发生。因为我是属于低风险偏好,所以是优先围绕风险来看问题。

大家还没看过瘾吧?

期待朱总的演讲第二弹吗?

喜牛7月7日微课堂

今晚等你来!


—·END·—

作者:朱宏宇(喜牛会员)

(图片来源于网络)



?
实现职业投资梦想的
喜牛私募基金行业孵化器
喜牛寻找优秀的投资人、投资能力
只要你已具备成熟的投资体系
不用考虑学历、学校、工作经历
喜牛都欢迎你来试试
也许,你就是我们要找的“他”!

孵化咨询:johnwu@tinybull.cn
孵化申请:tbclub@tinybull.cn
喜牛小秘书:tbxiaomishu



声明:

凡有【喜牛原创】字样的文章皆为喜牛原创,如要转载请标明出处和作者,且所发布文章为个人观点不作为任何投资建议。喜牛投资会分享第三方优秀文章,如有版权问题,敬请联系我们。