文华财经程序化系统的赢家法则 下载本文

程序化交易的6个系统模型

俗话说的好:思路决定出路,眼界决定境界。作为一名程序化交易爱好者,仅仅依靠已经掌握了模型编写平台的基本语法和函数,是远远不够的。要想编写出一个真正具有实战价值的自动交易系统模型,设计思想的重要性不言而喻,而设计思想实质上是集成了交易理念、交易思路、交易方法,甚至包括交易经验在内的一种积累与沉淀,绝非一日之功。为缩短程序化交易爱好者的学习探索之路,解决普通投资者缺乏系统设计思路等问题,本文拟从系统入市、离市等两个方面,尝试讨论交易系统模型的常规设计思路。

【入市设计】

系统模型入市的设计思路,事实上应与投资者的交易风格喜好、交易时间框架密切相关,可以分别是趋势跟踪、震荡交易、套利交易等,近年来甚至也出现了基于基本面分析数据的量化模型,以及带有人工智能性质的神经网络、遗传算法等具备自学习、自适应市场能力的高级交易系统模型。不过,最简单、最实用、最适合普通投资者的交易系统入市设计思路仍然是趋势跟踪,而趋势跟踪的实质就是追涨杀跌或者美其名曰:顺势而为。突破,是趋势跟踪系统设计中最为简洁实用的设计思路,具体应用设计思路可能包括:

⒈通道突破。最著名的此类程式设计代表作为:海龟交易法则与四周规则。其入市信号触发设计为:价格突破最近N根K线的高低点。长期来看,这种设计思路虽然简单,但永远也不会失效或显得过时。事实上,越简单的反而越有效!

⒉均线突破。该设计思路的代表作品有:克罗均线,它由4、9、18等三条均线组成;鳄鱼组线,它由5、8、13等三条移中平均线组成;自适应均线,它由考夫曼博士提出,以市场效率生成弹性浮动参数,以均线拐头为信号触发,而非普通的均线金叉、死叉,有兴趣的读者可以参考其系统交易专著《精明交易者》。

⒊指标突破。常见的技术分析指标,如MACD、KDJ、RSI、BOLL、SAR、WR、ADX等,均可独立构成一个简单的趋势跟踪系统,当然,是使用系统默认参数,还是使用优化参数,是使用其常规用法,还是使用创新用法,可能存在仁者见仁、智者见智的分歧。笔者可能更倾向于具有一定技术分析功力的投资者,以自创技术分析指标为最佳,这样可以确保你所使用的交易系统模型的专属性。

⒋形态突破。形态突破,包括K线形态组合突破、经典技术分析形态突破等,K线形态组合的突破,以酒田战法为最经典,著名的红三兵、黑三兵、希望之星等经典K线形态均源于此,共分为酒田战法70型。至于经典的双顶、双底、趋势线突破、横盘突破、头肩顶底、三角形态、楔形、旗形、钻石型、圆弧顶底等技术形态,因普通的模型编写语言较难精确描述而存在一定的设计使用障碍,需要使用转向函数及图形模糊识别技术来克服。

⒌波动性突破。波动性可以定义为:最高价与最低价、当根K线的最高价与昨收盘、当根K线的最低价与昨收盘,这三组价格差额的最大者即该品种的波动性值,波动性既可以进行横向比较品种间的波动性水平,也可以用于纵向判断价格波动的异常,并作为入市信号的触发器。我们可以直接从文华财经内置指标公式中得到如下源码:

MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)),以此为基础,我们不难得到波动性突破系统的基本设计思路。

⒍时间价格突破。在趋势行情的必经之路,守株待兔,是我们进行突破系统设计的基本思路。而时间、价格突破,从速度、幅度的两维视角预约了趋势行情,堪称突破系统设计的典范。基本设计思路为价格在N时间范围内、上涨或下跌了N个点位。进一步拓展思路后,我们还可以引入周间日、日间时的概念,细化不同时间段的突破标准,以便更好地适应品种个性,此外,我们还可以时间、价格过滤器的方法来实现对趋势行情的确认,以减少价格盘整阶段的假突破现象。

遗憾的是,尽管很多投资者致力于追求日内趋势跟踪交易,以降低隔夜交易风险,并认为不同交易时间框架下理念、方法应具有一致性,但实证研究仍然表明,突破类趋势跟踪系统所应用的交易时间框架越长、越有效。我们有理由相信,任何一个设计简单的突破类趋势跟踪系统,长期跟踪市场日线以上级别的结果必然是盈利的,当然同时需要承受较大幅度的阶段资金回撤,这是普通投资者难以坚持使用的主要原因,而这并非意味着该趋势跟踪系统失效了。

【离市设计】

⒈止损。止损,是交易系统模型设计中一个不可或缺的元素,资金止损、技术止损,是两种主要的考虑方案,采用两者孰低的方案可能更为科学。一方面,你要确保每笔交易不冒过大的风险,另一方面,你要背靠一个关键的压力、支撑技术位置,采用反向交易信号作为自动止损的依据,则是持续在市的交易系统模型的一个常用止损方法。 ⒉止盈。虽然固定点位的止盈、止损,也是系统设计中可以采用的方法,但我们更倾向于兼顾利润保护和放大功能的跟踪止盈或SAR抛物线止盈模式,随着利润的扩大,而不断抬高甚至收紧止盈目标位置,可以在一定程度上起到利润最大化的设计目标。

⒊时间清仓。以时间为因素考虑离场,无论是作为一种辅助离场方法,还是作为一种独立的出市方法,都是一个不错的思路。比如三根K线过后,如果既没有达到止盈位、也没有触及止损位,就主动离场。《幽灵的礼物》中曾经对这种思路有过经典的描述:在市场没有证明你是正确的时候,主动离场。

无论是入市方法,还是离市方法,建议程序化交易爱好者可以将它们都做成独立的模块,像积木一样可以根据需要自由搭配使用,这对于提高系统模型设计效率与可能组合收益,会产生极大的帮助。当然,作为一个完整的交易系统,还需要考虑资金管理与头寸调整的细节,建议大家参考《通向金融王国的自由之路》中的风险百分比法。最后,让我们以一个波动性突破系统的实际例子来回顾一下本文所阐述的系统设计思路。

波动性突破实盘系统介绍:系统设计思想:波动性突破,本身带有一定程度自适应市场的特点,为趋势跟踪系统中的上品,我们再加入时间清仓、顺势下轿的元素,在中性的盘整市道中主动退出突破交易,或在发生第二次波动性突破的时候顺势平仓,这样就部分解决了利润回撤的问题,至于参数,最具有未来市场的适应能力,如果必须要有一、两个参数,那么以该参数在大幅度变动的测试环境下,仍然可以盈利为佳。

程序化系统的赢家法则

在我个人的阅览经验中,很多「交易系统」之所以不能够赚钱,第一个最主要的原因就是出在当事者本人没有充份的实战经验,或者是根本就没有长时间靠做中短线获利的实战经验,所以他们制造出来的系统都有问题。在中线跟短线的市场里,市场的变化远远超过电脑资料库里面的变化,所以光是用电脑是不够的,就算找出一个操作法,乍看之下好像绩效不错,等到付诸实行,却往往行不通。而且,就算可以暂时把它推上路,也要实际操作个十几年,才能够知道这个新系统是否经得起岁月的考验。

第二个关:你是用一套系统,还是两套以上的系统?

注意:长线系统可以忽略短线系统,但是中短线系统很难完全摆脱得掉长线趋势的阴影干扰。果你刻意地极力去摆脱掉中线的因素,那么,你的短期绩效确实有可能会暴冲飙高!但是长期操作下来,你有九成五以上的机率会完蛋。换言之:短线交易者如果忽略中线,则他的短期绩效可能会很亮丽!(因为无拘无束乱做、风险压大,赌对了就大赚)但是就长期而言,此类人物到最后几乎都炸毁。所以,通常我都是用两套系统在跑。后来我才知道海龟团队也适用两种。我大多数的时间都是用两、三种,不超过四种。长线一种、中线一种、短线一种。如果用四种以上,我不建议,而且是有点反对。问题是:坊间几乎没有书籍提到两套系统以上(含)互相冲突的事情 ──为什么不提?因为要走到这一个阶段,必须要先有一套站得稳的正确系统,然后再引进第二套系统。一般散户或法人连一套正确的核心技术都没有了,遑论两套。所以:想要靠电脑交易程式发财的朋友们,必须自求多福,因为关于这阶段的关键知识,几乎所有的赢家经验都没有公开──至少我看到的情况是如此。

我再补充几项常被人忽视(或者根本没人讨论过的)几项重点,写在下面:

一、开发中短线的交易系统,必须要先有一套完整的赢家操作方式,再把它转换为电脑资料。

二、开发电脑程式的同时,电脑专家虽然不可缺,但是更重要的是赢家本身的历史经验,尤其是他对重大意外事件的经历与事后的正确解读。换言之:赢家在此也必须接受机率的考验,尤其是像黑天鹅效应那样的重大例外事件。 三、如果尝试用电脑程式资料系统寻找『赢的法则』,长线投资可以,但是中短线「极度」困难(做得愈短线,愈难!)就算可以一时获得成功,长时间运作下来,也难免会穿帮,绩效会远远低于你的想像。

四、如果是随机丢铜板(胜率二分之一),则只要停损机制良好,中期下来,会稍有获利;但是时间如果再拉长,就怕黑天鹅了。

五、千万要记住:如果核心技术有问题,那么,就算你的心理很健康、停损都有设、资金部位也都有管理,到最后仍然免不了失败。周边搭配措施如果都有照顾到,但在此时周边措施扮演的角色却是延缓你的死亡而已。 六、原则上,每个市场的基本操作精神都相同!(无形的精神、心法、观念相同),但是有形的技术法规多多少少