程序化交易不只是一个能盈利的交易模型,个人认为交易模型只占程序化交易百分之三十的份额,甚至更少,我们不能以偏概全的将交易模型等同于程序化交易。举个例子来说。我们不想用手洗衣服了,首先需要把洗衣机设计出来,接着我们要把洗衣机制造出来,之后经过若干次的测试后,我们确定洗衣机可以正常完成洗衣服的工作,并且在洗衣服的过程中不会伤害到使用者,我们才能将洗衣机投入使用,才能解放自己的双手。从设计到制造再到测试,我们对洗衣机经行了无数次的改良和修正,最终才能诞生一台真正意义上的洗衣机。同理,在程序化交易这条路上,我们也需要经历类似的流程。如果你没有百分百的决心和毅力,很容易中途放弃。所以如果您想选择程序化交易,那么不要再幻想那些一劳永逸的神话,从现在开始你有很长的路要走。而且路途中可能充满了各种各样的艰险,你只有踏踏实实的一步一个脚印,并且有坚持到底决不放弃的精神,才能到达胜利的彼岸。程序化交易是把“双刃剑”,下面讲讲我对程序化交易模型从建立到测评,以及最终执行的一些心得体会,希望对还在追寻“交易圣杯”的朋友们有点帮助。
一、交易模型的建立
交易模型的建立和测评是分不开的,交易模型的建立需要通过无数次的测评来修正。一个交易模型的建立过程大概分以下几个步骤:
1、交易策略的量化
任何一个交易策略,如果你无法量化,那么你最终无法将其改编为交易模型。因为计算机只知道1和0,无法量化的东西,例如所谓的盘感,很难编写为交易模型。需要量化的内容包括交易的品种,交易的分析周期,具体的进出场策略,配套的风险和资金管理手段等。
2、交易策略的图形化
把你的交易策略图形化,其实就是在自编技术指标。我们知道的经典技术指标,包括均线MA、MACD、KDJ等等。所有的这些技术指标都是将一堆不直观的数字,通过图形来直观的表达。同样的我们可以将我们的交易策略通过自编技术指标来表达。例如,我可以把K线变红变绿的标准修改为做多或做空条件,而不是传统意义上的收盘价和开盘价的大小关系。如下图:
图1 没有经过处理的K线图
图2 将交易策略写成技术指标,趋势性更明显
3、交易策略的程序化
有了图形化的自编技术指标,虽然也可以帮助你判断交易方向,但是您往往还是控制不住你那双正在交易的手,于是本来该做多的地方你做空了,造成了一连串不必要的损失。所以图形化之后,您还需要将您的交易策略程序化,即满足条件直接帮您自动交易。除非你把交易模型关掉,否则电脑将一丝不苟得将您的交易策略严格贯彻。如下图:
图3 将交易策略编写成交易模型,让计算机自动交易
二、交易模型的测评
交易模型的测评是建立在统计学基础上的。因为交易模型建立好后需要在历史行情上进行测试,我们知道测试的样本量越大,测试结果的可信度才能越高。当然历史不只是简单的重复,程序是否可行还要通过行情来检验,并且还应该根据您的交易经验和实时的行情状况对交易模型不断进行修正和微调,因为市场总在变,十年前电子化交易尚未普及,人们还在手绘K线图,当时的交易主体是哪些人呢?他们现在还活跃在这个市场中吗?现在电子化交易正在迅速普及,现在的交易主体又是谁呢?很显然交易主体变了,市场也变了,谁知道再过十年的交易主体又会是谁呢?要想一招鲜,吃遍天。你的财富梦想只能被这个不断变化的市场无情的击碎。任何一个模型只有经过充分测试可行后才能用于实战,仅仅经过短期行情测试的高收益是经不起时间检验的,测试一定要多品种进行测试,同时好的系统在70%的品种上应该都是有效的,否则,就应该重新进行交易策略的设计。
好的交易模型都有很强的实用性很强,不一定很复杂。交易模型建立初期您可以从经典的技术指标开始尝试编写,选择合适自己交易性格的,千万不要所有指标一起上,顾此失彼,效果反而不好。
趋势交易模型最忌信号频繁出现,考虑到手续费和滑点(实际成交价和指令价之间的价差),过于频繁的进出会很容易将现有的资金消耗掉。另外,交易模型大多是根据收盘价(盘中为最新价)编写的,因此,此类模型竟可能的等到一根K线快要结束时或者下跟K线开盘时再发出信号。行情是瞬息万变的,此类模型在盘中交易指令也会时有时无,如果简单的按此频繁交易只会加速您的灭亡。算算你因此损失的价差和手续费吧,还是老老实实的等到K线快要结束时再去交易把。
测试标准有几个核心指标:
1、胜率
这就好比你去买彩票,彩票的大奖是1万块,获奖率可能只有30%。彩票卖1千块一张。你会不会去买?如果你有1万块,那么这个游戏你肯定愿意去参加。可是如果你只用1000块钱呢?所以单纯的追求高胜率是没有意义的,程序化交易主要是以大的盈利来弥补若干小的亏损并获得盈利,要知道,每一次亏损其实就是获取盈利的成本。所以不要去追求过高的胜率。首先,你必须保证有足够的“本金”去参与这场游戏,否则胜率就算是80%,你也不一定可以参加。往往盈利的交易系统胜率并不见得超过40%,确保你有足够的钱和稳定盈利才是最重要的。
2、盈亏比
就是你平均每笔盈利和亏损之比。高胜率的模型不一定挣钱,低胜率的模型也不一定赔钱。测试报告里面的胜率只是你的名义胜率,实际胜率=名义胜率×盈亏比。它才是你衡量交易模型好坏的正真标准。
3、连续亏损次数和最大资金回撤比例
连续的亏损让人心碎,试想你明明知道这个交易策略一定会挣钱,可是她让你连续亏损了10次了,你的资金也从峰值回落了40%了,你还能坐得住吗?所以不要选择不适合你交易性格的模型,即使它100%能赚钱。
4、最终收益率
并不是收益率越高,交易模型就越好,往往是极端行情造就了极端收益。暴利可能会引发暴亏,这种系统不一定有实用价值,您需要综合考量它。做交易就和做人一样。有多少爆发户有个很好的收场?好的交易系统靠的并不是暴利,而是持续稳定的盈利。
三、交易模型的执行
心态是做好交易更高层次的要求,我们使用程序化交易也是为了克服心态的起伏和人性的弱点对于最终交易结果的不良影响。有好的交易系统就一定能盈利吗?很多人往往对此有误解,为什么?交易模型确实可以辅助我们克服心魔,但是它只是一个工具,是你在使用它,一段时间交易模型表现不好你完全有可能把它停掉,又开始自己胡做了。究其原因还是因为对自己的交易模型没有信心,总是患得患失,终日被贪婪和恐惧缠绕着,最终在胜利到来前做出错误的决定,从而功亏一篑。我们必须和我们的模型成为朋友,可以随时和他对话,信任他。当我们经过无数次测试和修改后最终所确定的交易模型是实用并且有效的,就要严格执行它,而不要受交易模型所带来的收益一时好坏所迷惑,相信程序,远离市场。如果有条件最好将模型的设计和建立和最终下单交易的工作分开,又不同的人分工合作,共同完成整个交易。
模型设置好以后不要今天修改交易品种、明天修改分析周期。程序化交易是个系统的过程,要经过一段时间才能有效果,所谓欲速则不达。希望以上心得能对广大程序化爱好者朋友提供一些参考和帮助。