我眼中的程序化交易之路

融资经验 2016-02-09  星期二 观宇 12824字 期货

对于打算在程序化交易中获得成长或获利的交易者来说,在对编程语言和平台有基本了解之后,看下文应该会很有启发。

  一、多大程度上用程序化交易,或者说如何处理程序化交易与自己原有交易系统的关系。
  我自己接触过的相关交易者,有如下几种:
  第一种人,是老期货,之前有过较长时间的非程序化成功盈利的经历,通常是一种基于主观判断的技术流交易系统。在选择尝试程序化之后,试图实现或部分实现自己现有的交易系统,通常由他人帮助实现或改进;或直接使用商业化指标和模型。程序化对他们的帮助主要是体现在控制自身人性弱点上。指标信号也好,交易模型也好,成为他的一套辅助决策系统,通常都离不开他本人的主观解读,往往停留在手动下单或半自动下单阶段。
  在我看来,这种程序化交易是客观交易为皮,主观交易为骨。当然并不是说这就不好;但这好不好,往往还是无法突破他原有的主观交易能力的局限。如果他原来就是一个高超的主观交易者,那么程序化的使用效果一定也是很出色的。如果他原来交易能力一般,那么程序化的使用效果也平平。这是因为,在他对信号进行主观解读和筛选中,带来了新的技术问题和人性问题。半自动交易天然给了他犯错的机会,而这问题的解决程度,通常都不会和单纯主观交易时相差太多。但程序信号毕竟是客观的,是真正可在不确定性海洋中借到力的,经过长时间练习和磨合,最终效果肯定是改善而非倒退,而且改善程度会逐步增加。
  此问题是否能够根本克服?我觉得还是比较难。在交易的执行层面的主观研判,注定会让交易的历史一致性无法实现,回溯测试对这类交易者没有实质意义,顶多是心理意义。也就是说,这类交易系统本质上应该仍归属于主观交易系统,主观交易系统固有的局限性自然会依附于其主观交易的本质,这个问题是“胎里带”的。而另一方面,正是由于他们使用的系统,通常并非完全由自己研发,而且老期货的知识结构通常也缺乏研发、测试、改进、信任程序化的必要理论基础,所以程序化永远只是一个工具的角色而不能进入交易系统的核心。这就好像一个刚刚接触攀岩的人,他可能会时常怀疑绳子、丝锁、岩塞这些工具是否能够承受自己的冲坠,而自己的手脚是自身的一部分,他天然信任。结果会带来什么心理感受?当他被工具挂在空中的时候,他心理很不踏实;而当他有机会手脚抓在某个平台上时,他才踏实。除非,1、这些工具是他自己打造并进行过测试的,就像一战时期及更早期的登山家和探险家们所做的那样。2、他们在自己信得过的过来人的指导下,选用某个品牌某种型号的工具,并且自己也在亲身体验数次之后。3、因为特殊职业有机会看过别人用各种不同的用法使用各种不同品牌和型号的工具,获得了极其多的间接经验之后。4、他们虽然不自己打造,但拥有足够丰富的力学知识、机械知识、冶金加工、材料工艺等知识之后,知道诸如不锈钢,获得多少承重需要多少直径;硬铝,多少承重对应多少直径;硬铝中的铜、镁、硅等比例对性能的影响等等,那么他在有这些知识的情况下,可以根据对商业化材料的了解,来选择信任这些工具。只有在这四个前提下,我估计他们才可能放松自如地挂在工具上喝咖啡听音乐睡觉。也就是说,要内心真正说服自己像信任自己的手脚一样信任这些工具,是有前提的,是不可能每个交易者能获得这份超越的。我本人,先是具备了部分3和4的前提,然后获得了1的前提,受益于朋友的影响,但总体上是一个自觉的和自我学习自我暗示的过程,目前我已经不存在孰优孰劣的问题,谁都不会去纠结自己该留左手还是右手,是吧?都是自己的手嘛。两只手干活不是更好吗?
  以工具论来看待程序化的交易者,往往会经历如下反复:新理论的好奇和尝试→高期待→失望→放弃或否定。程序化交易模型自己的研发参与程度越低、测试越不充分,信任度就低;但缺乏了解的另一个结果就是越容易被他人的宣传、测试的表象所迷惑,将来的预期落差也会越大。所以,这类交易者搞程序化,更像是赶时髦,不用太久就会放弃这个新工具或者改用别的,要么就是对自己的主观判断老一套敝帚自珍起来。最后丢下一句“‘手中无剑,心中无剑’才是最高境界”之类的话。
  这种用程序化使用方式,和看MACD或KDJ交易的人,本质上是一样的,只是他们不再用MACD,而是用一个改良的、自定义的指标。他们讲究不同的场合下对指令进行主观筛选和过滤,所以他们最前端的尝试也就仅仅到半自动化而已了。有人估算了一下,目前国内用半自动程序化交易的资金占总的程序化交易的资金量的90%。我不知道这个数字是不是可信,不过说这话的人,本人看来也是熟稔于半自动化交易。
  第二种人,是新手,或仍未有长期盈利经历的不成熟交易者,他们是想在程序化中寻找突破、寻找圣杯。他们勇于接受和尝试任何可能赚钱的方法。但其实搞程序化和搞主观交易是一样的。这个行业的成功者,真的不是普罗大众靠一腔赚钱热情就能成就的。
  他们的不成功,瓶颈往往不在于对程序化的定位太低,而是自身潜质的局限或性格缺陷的制约。但如果有人带或碰巧走上了正确的道路,那么达到行业平均水平还是有希望的。但由于他们对任何理念的理解都欠足够的深度,所以他们非常容易在不同的方向上被他人的观点所左右,迷失自己走上歧途。又或者他们想要赚钱结果的心思太急切,主动在不同的方向上来回跳跃,浪费时间。
  这样的人,如果他们在入市前有过良好的数理和逻辑训练、或编程训练,如果他们看过那些谈论交易的经典书籍并且深刻理解并贯彻,仍有可能较快成功;或者他们会主动跳过主观摸索阶段而直接走上客观化程序化的道路。在最终存活下来的交易者中,很多人可能就是已经具备成功交易者的一些特质了,而欠缺的那块正好就是客观化交易可以弥补的,这才是天造之合。没必要去先学习怎么用主观交易赚到钱,再学习怎么把自己的系统客观化和程序化。
  第三种人,是彻底的机会主义者。他们不会纠结于自己原有的成功的主观交易模式,而对新东西一样勇敢、彻底,但非全身心尝试。对他们来说,与其说把程序化看成工具,不如说他们把所有一切连同他们自己的主观一套统统看成工具。他们往往聪明、见识广、学习能力强,而且往往自觉不自觉就置身于可以轻易接触新东西的位置上。因为做一个选择或尝试太过容易,也因为他们确实具备出色的理解力让他们对所尝试的工具在短时间内就快速理解,也确实具备出色的观察力让他们在筛选的时候总是那么容易正确,所以他们同样不太关注系统的测试的充分性和历史一致性。就像探险者中的装备主义者,他们会信任装备,但他们会更容易动辄更新装备,甚至,上个月还在说这个有多好,这个月就已经换掉了。但他们身上还是有一些共同点的,就是他们在选装备的时候会有“客观的主见”——往往是看技术参数。看菜下单的方式其实是一种避开枯燥研发和试错的捷径。还有一个共同点,这样的人,是有一定的财力基础的。因为崇尚多快好省,分析和研发就草草进行了,但很多实盘尝试,是有资金底线的,是多少要交一些学费花一些学时的。一个为生活费着落而操心的人,在任何尝试的时候都很难保持一个好心态,在尝试时,都需要花更多心力说服自己。
  但如果不是那么聪明有见识,这种心态构成了一种显而易见的浮躁,不利持续成长。其实我个人倾向于先证明自己有这个能力,再去考虑捷径的意义。只要有这个能力,那么任何现成的间接经验都能被发掘出价值,统合到自身对交易的理解中,唯一无可奈何的就是所处的位置能够提供的资源多寡。程序化如此,基本面交易亦如此。从赚钱角度来说,机会主义未尝不可。不过从研究角度来说,现实中的学术界大牛,还真没有走这条路出来的。
  综上所述,程序化交易的道路,和自己的知识结构、智商和情商上的潜质、理论基础、个性、之前的交易系统类型等,都有关。成长中的程序化交易者,多少都倾向于以上三类中的某一类。但我觉着这些不算是真正的程序化交易者。我觉着一个真正的程序化交易者并非要以抛弃原有主观系统为前提。其实最理想的方式是主客观结合,理论上这能提供最佳的环境适应性和灵活性。但随着自己的实践,我觉着这个事情在对市场和交易理解层次不够的时候,是难以想像的。当然,有一种主客观结合比较简单,很容易想像:就是把原来技术形态的主观判断或指标信号的主观判断变成程序,这个基本上是替代——只要有好的编程平台,表达能力强的编程语言,总能通过人工智能方法近似拟合人脑的识别,做到这个的时候,不是主客观结合,而是计算机判断替代了人脑的判断。因为这种程序化过程,不产生新的交易逻辑,无非是从技术流到技术流。我说的难的东西,是两个异质系统的联姻,产生的是新的后代。但,也许即使如基本面、即使如心理预期分析,也可以用人工智能方法实现,只是需要的人力物力、数据渠道和理论基础有更高的门槛。其实国外已经开始了实践,比如在“推特”上搜索新闻,来获得交易指引,好像有类似的“新闻基金”问世。这其实就是用来模拟听消息进行交易的主观交易和分析市场心理预期来进行交易的主观交易,只是还很原始,很不完善。目前,尤其对个人交易者来说,还是只能指望主客观结合,而非人工智能替代的方式。
  一个真正的程序化交易者,关键是对程序化的信任,而前提是对程序化的理解。我觉着,这肯定需要一个过程——时间和实践。这个实践其实并不总是有趣。所以下面要谈的就是第二大块的内容。

  二、如何寻找好的交易模型。
  我觉着,对于一个相对成熟的交易者来说,程序化的切入点,往往会选先把自己的现有系统客观化程序化的道路。对于一个新手或现有系统难以量化的交易者来说,程序化的切入点是从模仿一些简单但经典的模型入手。
  之后就是测试。测试什么?
  应该每个常见平台上都能看到参数优化相关的界面。至少在国内,“参数优化”——可能这是一个大家普遍关心并有争议的问题。很多新人首先会对此困惑,因为很多程序化大家,是反对参数优化的。其实我最开始听到的是过度拟合的弊端,道理很容易接受——对某段时期拟合得越充分,那么在另一段时期背离的可能性也越大,因为我们总是只对某些特征进行拟合,即我们的拟合注定是不完全的,所以未来的背离是必然的。但后来我听到的是“反对参数优化”。我觉着这有点陷入一种狭隘。是反对软件上的这个按钮功能吗?那么多软件公司要设这么个功能,总有其价值所在。是反对试图优化的思路吗?但是如果不去优化,参数怎么定?“靠常识”?常识怎么来?新人有多少常识?比如,我举个例子,说说溴化N-乙基吡啶的性状。别说颜色、比重这些参数,就是连室温下是固体还是液体,你都不知道。如果你不是搞室温离子液体研究的,你怎么可能知道?程序化交易又不是吃喝拉撒人人从小就有经验和体会的事物,对新人来说是一件全新的事物,对老人来说也还有很多没有弄懂的东西。所以我觉得靠常识来定参数,完全违背了人脑的认知规律。新人脑袋空空,拍不出多少常识。我觉着,这未必有益于程序化交易,因为纵然对某个时期的过度拟合会在另个时期产生过大背离,但如果在某个时期认可过大背离的存在,一定会在未来换来一个相对拟合的优异结果吗?有这种必然性吗?恐怕随便定出来的参数,这段不拟合,那段居然也不拟合,还没等到优异业绩,本金就已经大打折扣了,而且又何以让交易者能拥有长期坚持的信念呢?关注某组参数的具体表现的细节特征,并理解它对未来可能的涵意,才是硬道理。
  我认为,参数往往是系统的特征值,并且主要是度量市场波动性的特征值。参数测试的主要目的是试图寻找有意义的特征值,而有意义的特征值的衡量标准是参数的依附稳定性、历史稳定性,以及跨周期普适性和跨品种普适性。我举个例子说明这几句抽象的话。首先,理论前提是,市场的波动性是各种频率的波的合成的结果。有点物理基础的人应该知道,合成波的描述可以通过将波分解为基波和各级谐波,通过分别描述每个正弦波的频率、幅值、相位来解决;或者说我们知道了基波和谐波的频率、幅值、相位,我们可以重现当初的合成波。这些频率、幅值、相位的表征,在程序化交易中就体现为参数,如果你找到的是这种参数,当然有很高的稳定性和普适性。这些分解波的由来,非常多样非常复杂,甚至可以说是难以穷尽(因为其非线性的市场本质),但我们仍可明显观察到一部分线性特征对应的谐波。比如对于工业品,需求通常是稳步增长的,而且需求的多样性意味着需求端的多变。但供给端相对简单。在经济周期或政策周期下,往往会出现投资高峰,投资高峰在若干时间后会变成投产高峰,造成一波下跌。从原油矿产这样的原材料到PTA这样的中间工业品,都是非常明显的,而且由于在国内,政府的宏观调控,其实加剧了这种投资的不均衡性。对于很多品种来说,天然地有淡旺季。比如服装有春夏和秋冬两大季。每年某个时装发布会后,就是大规模的量产,量产之后是布匹采购的增加,布匹采购增加继续向上游传导,就对应纱和棉的采购增加,另几个方向就是涤纶短纤、涤纶长丝、氨纶、腈伦、黏胶纤维等的采购的增加,再往上就是聚酯工厂采购PTA和MEG了,还有再往上,PTA工厂采购冰醋酸和PX,芳烃工厂采购石脑油……这些采购的时间不可能相差太悬殊(库存成本的制约),也不可能完全均分在每天(物流的规模经济性的考量),那么,注定会体现为一波波的采购高峰。所有产业中都存在采购周期,只是强弱不同。这些采购周期受物流效率、信息系统、管理方式所决定。目前都是电子化网络化时代了,通常2个月;但在网络化之前(十年前),那时候公路铁路也有很多地方网络不能覆盖,加上路况也差,那时候仓储采购周期肯定要长,3-6个月;再往前,两百年前的马车帆船时代,肯定更长,一次越洋跨国贸易(比如从南洋群岛运香料到鹿特丹)都在一年以上,采购的量也可以用个两三年。总之,这个周期是由经济发展水平决定的,这是一个波。这个波是一个中期波,而且非线性特征比较弱,也就是说比较容易发现和度量,它的变化非常慢,没有5年你是看不出它的明显变化的,并且一旦变化了,也很难变回去了。但另一个往往与之叠加的波就是心理预期产生的波动。采购方总是希望逢低采购,销售方总是希望囤积居奇待价而沽。所以采购方往往倾向于把这个波的相位往前提,而销售方则希望把这个波尽可能变成一个方波——就是在高位的时间越长越好。每年的供求关系和宏观环境有差异,加上各方都习惯于以前两年的节奏为参照,所以你会发现,每年的价格高点虽然都有一个范围,但却一定不同(孢子理论)。比如若前一年铜的高点出现在4月,而且只一个明显的高点。采购方就会想着那我在3月底就采购,就可以买得比竞争对手便宜。而销售方一看到3月底询价就增加,马上就在3月底就把价格提上来,结果在3月形成一个价格高点。由于提前采购,4月可能就没量了,就下跌。当然,如果该品种在那年比较紧缺,那么提前采购也会导致提前用完,同时加上前期踏空的需求,所以在4月跌下来之后,可能还会有一波5月补库存的集中采购动作。这样,在春季可能就出两个高点。这就是心理预期的起落,对原始采购周期的叠加,导致的。心理预期也有节奏,但它易变,而且自反馈,所以具有很强的非线性特征。但这还不是你看到的最终行情节奏,因为还有许许多多大的小的因素导致的波动叠加在上面。最后还有一道无时无刻不存在的背景噪音……
  以上我只是举例子说明,我们找到几个有稳定性和普适性的参数值是有可能的,找到的值是有现实意义的,但由于现实是已经被反复扭曲的,所以直接通过观察现实去猜想一个有意义的参数值,却无法实现。但参数测试却可以帮我们找到它们的值,通过稳定性和普适性的检测,来最终确定它们的值。大体上它与那个我们猜想的有现实意义的值具有相同的数量级。参数测试还能告诉我们这些有意义的参数,他们的普适性和稳定性的程度。比如有些跨品种普适,但跨时间周期却没有等比例关系。而另一个可能历史稳定性尚可,但既不能跨品种,也不能跨周期。甚至,有些历史稳定性也不行,但其在历史上的反应,和某个关联特征具有单一的联动规律。参数测试还能让我们知道哪几个参数虽未找到确定的现实意义,但却依附于另一个动态变量(往往是品种特异性、季节特异性等的体现)上。这份认识,可以让我们在对待不同品种不同时间周期不同行情风格时,对某几个关联参数采取特定的调整方向,并且这是自适应参数法和动态参数表方法的基础;即使你坚持半自动的道路,那这份认识也给你在执行层面进行主观筛选提供坚实的现实依据。而不至于出现想起要改模型了,但不知道从何入手、或随手乱改的窘状。真正难以琢磨的是那些稳定性差、普适性差,关联性没有单一方向的参数。不过也没关系。打个折即可。我们可以定性地判断一下该模型是否是个正收益模型。如果它能得到30%的年化收益率,最大回撤20%,但内部却有两个参数无法找到现实意义和变化规律,我们就认为它未来可能不能赚钱,但毕竟它赚过钱,所以坚持下去,它有望成为一个保本的模型。如果有办法把它变成一个日内短线模型,风险就可控,炒手续费就再合适不过了。就算不看重这块,那么至少先把它当成用来平滑其他策略业绩波动的组合对象吧。其实,也许有朝一日将来你就会发现参数的现实意义或规律,然后就可以更大胆地用它。先把它留在自己的策略原型库中好嘞。一个程序化交易者每天琢磨什么?很大程度上是在研究这个。
  除此之外的时间在琢磨什么?逻辑测试。其实逻辑测试比参数测试更重要,改进效果也更好。若说参数测试考验计算机硬件水平,那么逻辑测试考验策略设计者对市场的理解和创造力。但两者不可分。其实,有些参数当取到极值时,就相当于把某个逻辑屏蔽起来。
  逻辑测试的切入点:是对行情的微观结构分析和对逻辑本身的微观结构分析。前者的关键词是捕捉,后者的关键词是拆分。
  捕捉有主动和被动之分,现有的常用平台和本人的数理知识还难以做到主动捕捉。而且我们的个人电脑配现有程序化平台,是不可能跑过于繁复的算法和逻辑的,否则会让计算变成电脑的休克。但举个例子能让大家明白主动捕捉的意思,人机语音对话其实就是通过每个音节的声学规律通过主动捕捉来识别特征完成词汇还原的。让从事波形分析的模式识别专家来做这个事是最恰当不过了。被动捕捉是个笨办法,却未必多走弯路,只是会常常让测试者觉着不可思议,结果的不确定性时而令人崩溃时而令人惊喜。被动捕捉其实是用逻辑和参数去量取某一特征,逻辑和参数基本已经限定,行情形态的微观结构也是确定的,我们只有找到一个高的数学期望的稳定值,才说明成功量取到了有现实意义的特征。就好像闭着眼睛拿杯子在水里捞鱼,捞到一条是一条,没捞到的时候谁也不知道杯子里能有什么。我身上就有现成的例子,有些品种常有多重顶底,但不规则,要识别这些复杂而不规则的K线组合形态,真的不是通过简单的逻辑就能实现的——这是一开始试图直接实现的时候,想想就放弃了。但后来在研究某个参数是如何控制模型的行为的时候,在分拆和优化之后,发现了一种简单逻辑就可以实现不算很充分的捕捉这种形态特征,而当初这个参数的引入又是出于一个完全无关的思路。在这个层次上,我充分体会到了世界的混沌性:如果试图以精确的设定达成精确的结果,往往会失败。不过模糊的设定,应该还是有别于盲目试错的,对形态和逻辑本身的认识,仍是必要的前提,各种软件平台提供的和平台以外(如通过EXCEL或MATLAB)的测试,是获得这种认识的手段,“优化”测试,不过是设置了某种导向(收益率、最大回撤等)的数学期望测试而已。
  逻辑的拆分。这是一个原则,在设计时就应该尽可能把每个环节设计成可以单独测量。屏蔽其他参数与逻辑的关联,只在确定现实意义之后,才使用这种关联。以便我们后面要提到的排列组合以及再后面要提到的跨逻辑组合。
  逻辑测试的方向:有查漏补缺和排列组合两种。
  查漏补缺往往着眼于极端行情的处理,比如停板、连续停板、巨大的隔夜跳空等。尤其是分钟线交易策略。除非是外汇交易,否则行情的连续性总被周期性破坏,给短周期策略的测试的有效性带来相当的考验。排列组合是对自己能理解的和不能理解的逻辑进行反复尝试,这事儿做起来没底。有很多似是而非的东西,也有很多似非而是的东西。我的体验进一步告诉我拍脑袋设计的不可行。找到一个实战可用的策略没有捷径,就是不停地尝试。本想程序化可以解放人脑于信息海洋,没想到搞程序化也是个体力活——从基本面研究的信息海洋出来,一头扎进了程序化研究的逻辑海洋里。

  三、程序化研究与程序化交易
  在反复的测试中,在各类系统的敲打中,你会发现一些原来肉眼看不到或会忽视的行情特点。这个反复猜想、尝试、否定、改进、再尝试的过程,非常类似于自然科学领域的实验室研究。而且和那些实验员一样,你得写实验报告:把每次改动发生的变化记录下来,纵向横向比较,解读其中的意义。为了进一步了解研究对象,还有必要自定义一些指标来揭示一些变化规律,就如同实验室需要添置一些新仪器一样。我个人至少目前为止,坚信这才是真正的程序化研究。程序化研究的标的,就是行情自身的特征。就像自然科学的研究,它的目的往往很基础,就是想把某个东西弄明白——把它们的特征、结构、变化规律找出来。其艰苦和不确定性,尤其是在分子以下层面上进行研究,由于量子效应,非线性特征逐渐占主导,这层面的材料科学、化学、分子生物学的研究,除了基本的现代科学分析方法的指导和仪器的帮助外,真的少不了通过海量的试错来实现的,而且还不一定有结果,还要有点运气。
  程序化交易,是想着怎么用这些特征。但没有程序化研究的程序化交易,往往走不远。它们总是在试图把自己的既有的主观系统客观化而已,量化到一定阶段,就有瓶颈。真正沉下去的研究,在解决一个问题时又会产生更多问题,而这往往是原先想不到的。这在科学领域是再正常不过的现象了。只有这样的研究,才能源源不断产生灵感,让自己对行情的理解和策略库本身都得以持续增加。而通过程序化研究,由着自己对行情的新见解产生新的策略,可能对交易者来说真的是不可或缺的收获。
  有位专业从事基本面交易的团队带头人曾经如此评价交易的本质:“这是逐渐接近事物本真的过程。”我深以为然。这话的潜台词表明了三点:过程的曲折和艰苦,有捷径也轮不到你,这个行业就是精英竞技场,就是这么残酷;方向是更深入、更细致、更纯粹,那些泛政治化和阴谋论的方法是没有立身之地的;过程比结果更重要,没必要迷恋别人用其他方式获得的暴利。我觉着这话用来评价程序化研究和交易一样合适。只不过,基本面领域的“事物”,主要是指品种、产业链、市场;而程序化领域所对应的“事物”,主要指波动。程序化研究就是用计算机程序探索波动规律的过程。那种把程序化看成只是把自己的交易方面的想法用程序写出来,是买椟还珠,珠都没拿到,自然看程序化怎么都只是一个工具而已。当我看到波涛的《原理》的引言中提到程序化的两条发展路线,其“革命”和“改良”的两种划分,和我对这个圈子的认识,基本是一回事。并且非常荣幸的是,波涛和我一样,认为后者只是传统技术分析方法的计算机化应用,而前者多代表的方向才是真正意义上的“计算机化的技术分析方法”。工具论者并非真正理解程序化的人,我的感受没有错!
  其实国内的程序化研究者很多都是半路出家,他们缺少自然科学研究方法的系统性训练,他们缺乏西方科学的那种从分析到综合的自下而上的思路;反之,他们中的部分人喜欢在形而上的立场上创设和推销观点。目前国内公认的最好的讲程序化交易的书还是波涛的三本。但有网友认为其思想精髓也没有跳出《通向金融王国的自由之路》。如果要说程序化应该是什么样子,其实就是应该直接看看国外。国外,在70年代及后几年,是程序化研究的黄金时期,那时候,石油危机、滞胀、布雷顿森林体系的崩溃,导致市场波动率大增,趋势行情层出不穷,就像最近十年。但那时候,个人电脑还没推广。程序化研究的测试离不开高性能计算机,那时候只有大公司和专业机构才能有这样的人力物力,加上程序化交易是新事物,投入使用之前透彻的研究是必要的,所以那时候研究和应用是一个相对分离的状态,这导致那时候出了很多的量化交易的基础研究层面的学术报告。这类报告主要是揭示了金融市场的一些共性和内部的差异性,也即主要是回答金融市场是怎样运动的,但直接赚钱的法门并未有多少。包括著名的唐奇安通道,其实就是来自于这类报告。在约翰·墨菲的《期货市场技术分析》一书中,也经常提到那类研究成果。不是说后面的报告消失了。而是这段时期的报告提供了我们现在常用的和最有共识的一些理论和工具的基础。但我相信,后来,随着专业投资机构的兴起,也随着个人电脑性能的提高,程序化研究不再是一种集中的行为,而是分散的,机构和个人可以独立作深入研究,并自由决定是否公布成果。但量化交易一旦规模扩大,市场容量就是一个零和博弈的资源,为了独享市场容量,商业机构和个人肯定是倾向于将有实用价值的成果列为机密。后面的报告可能更多的是一种适用性的统计分析,离实用及揭示行情本身特征就越来越远了。
  而在国内,用程序化进行实战的最早一批人,其实也不是期货人士,而是地下外汇保证金交易者。地下外汇保证金交易在80年代末就开始了,国外的软件平台天然就提供相对成熟的程序化交易编程功能。加上外汇交易的连续交易无停板特性让程序化发挥更加无限制。但外汇的全球市场一体化也导致某些简单经典策略无法实现盈利,因为老外们已经在这个市场用滥了。
  我们在程序化交易中,常会有以下一些问题。
  在墨菲的书里我们就可以看到同样的策略下,不同品种有不同的优化值。这个值我认为就是一种表征品种特性的特征值,就像与英国人的区别,区别是客观存在的,甚至我们还可以追踪证明这些区别是稳定存在的。我个人一开始持的观点是,认为坚持用一种相同的参数和逻辑来对待这些注定有区别的品种或时间周期,是无法令人信服的。当然,我们可以进一步证明,这种区别不但历史稳定,还有一定的规律。但随着实践经验的积累,我发现,对待这类区别,完全可用微调策略的方式来解决,这是研发接近尾声时的工作,而更重要的工作是逻辑、是思想。
  对于组合方式,波涛在书中用统计数据提出了单策略多品种或单策略多周期要比多策略单品种表现好的观点(《原理》第九章第二节)。我个人认为,这和他的统计的策略模型的异质性不足而跨市场的各品种之间的异质性却很强有关。我个人认为,组合的价值在于业绩波动性的错位平滑效果,它只能通过业绩的差异性才能得以实现——无论是策略间,还是品种间。可惜,国内民间合法投资渠道有限,门槛高,政策限制多,交易成本高。而很多品种之间有是高度联动的。比如,黄金期货和黄金T+D就没有组合价值;债券市场只有具备资质的机构可以,而个人投资债券的品种非常少;票据市场个人不能投资;股市是T+1的;合法外汇渠道没有杠杆。我们在国内能感受到的只有有限的几个活跃期货品种之间的高度的联动性,而农产品和工业品虽然存在行情风格的异质性,但农产品在应用常规趋势系统时效果实在不怎么样。所以,在国内,现实是合法品种数量太少,品种间相似性太大,我认为多策略比多品种更重要,前提是这些策略必须有足够的异质性。否则近亲繁殖,恐怕可能导致业绩波动的加剧——尤其是建立在趋势追踪系统上的策略,因为趋势追踪系统的丰富性远逊于非趋势系统。当然,趋势追踪系统其远高于非趋势系统的长期数学期望水平,令其注定应该成为整个组合的骨干。“多策略比多品种更重要”的这个认识,我的依据来源于自己的直观观察感受、朋友的程序化实践的体会、还有网上其他人的体会。其实国外真正的多品种组合,是投资机构在全球范围内疯狂寻找一切能交易的品种:现货、期货、股票、股指、期权、汇率、利率、债券、CDS、房地产、各类基金等。如果放在全球,那么真的,哪怕只做股票,各个国家的股票市场都可以提供足够的异质性了。
  寻找倚天剑屠龙刀式的策略不如寻找许许多多特异性策略。这就好比是厨房和欧美厨房的区别。传统的厨房是工具少,技巧多,一具多用。尤其是传统厨房,切肉切菜切丝切块到拍黄瓜蒜头都用一把刀,盛酒盛水盛饭盛菜都用大海碗,扒饭夹菜剥皮剔肉拨豆腐都用一对筷。而欧美厨房,为实现每个特定功能都会有专门的工具匹配。哪个好?其实看看当下年轻人的选择就知道,大家现在越来越多地把各种非必需的厨房工具搬回家,而不是像祖辈那样在用法研习上费时间,效率肯定是有区别的。在交易上,研发或实践,我都感受到非对称策略、缺陷策略,空间非常大,而且可以在实践中做到有的放矢,而它们的选取和组合,是本身就可以构成资金管理的有效的方式。它们的组合,由其独立性,比一把屠龙刀式的策略内部实现资金管理,可以构造出更多变化且相互干扰更小,减少了不确定性。另外,这种组合,还应该包括跨参数组合,我之前提到的对参数意义的挖掘,就用到了。若存在多个参数组的“稳定岛”,其对应不同的特征形态,其实内在逻辑就已经发生了一些偏移,就可以看成两个策略进行组合。同样,还可以进行跨变量组合,跨逻辑组合。前者是对一些关键的控制性变量进行调整,额外增加捕捉某些特征的强度或规避某些可能带来业绩不稳定因素的特征,就可以视为新策略或加减仓依据。后者是增减一些逻辑开关,比如分别写成日内交易和隔夜交易,就可视为两个独立的系统。总之,丰富的、特异性的非对称策略和缺陷策略,带来了丰富的组合手段和资金管理手段。程序化交易的组合架构,应该类似于航母编队。一支编队可能只有一艘航母,但有很多各种各样的辅助舰只,但其实战性要超越三艘裸航母,而经济性又优于三艘裸航母,多好?!

  四、程序化交易的未来
  如果现在不会用电脑,不会用智能手机,不会用QQ、微博、微信,当然不会影响生活,但我很担忧这样的人在未来怎么办。也许他的孩子长大后会对他说:“跟你聊天真没劲,这也不懂,那也不知道。”如果把期货当成随身携带的老虎机,那不懂程序化也无妨。但如果想说自己已经很懂期货了,但居然不懂程序化,或者对程序化的理解很肤浅,我肯定“嘘”他。
  金融行业在十年前基本就是美国最赚钱的职业了,而那些制造业及其研发机构却面临巨大的压力,大量高级人才被裁员后,就有一部分进入金融部门成为研究员;原来想从事研发工作的高等院校毕业生,在传统领域也面临就业困难,也涌入金融行业。他们带来了非常先进和复杂的数学工具。在金融危机中,这些人又被赶来赶去,分散到伦敦、新加坡、香港、上海等地。危机后三年成了对冲基金飞速发展的黄金三年。对程序化交易的未来,我们不能无视国际上先锋们的动向。
  基于对市场的复杂性、以及行情波动性的基本认识,我觉得程序化可以在以下方面从其他学科中汲取养料:
  1、基于混沌的模糊化分析和控制理论
  2、基于分形,尤其是其中的统计自相似部分
  3、人工神经网络理论
  4、模式识别领域
  5、波谱分析领域
  6、非线性期望的数学理论(用于风险控制)
  ……
  程序化交易也可以超越波涛所论及的计算机化技术分析,而深入到计算机化基本面分析、计算机化突发事件(消息面)分析、计算机化心理(舆情)分析等。可能也就是通过这个过程,最终把非专业的散户、非专业的投机方法,排挤出市场。未来,这个市场的狼,会越来越多,你是狼吗?