对程序化交易系统的理解
所谓程序化交易,是从美国70年代的证券市场上的系统化交易发展演变而来的,相比各种繁杂的技术分析方法,程序化交易的可操作性更强,也更简单,更适合中小投资者在市场上进行运用。现在证券和期货市场上运用的程序化交易系统大多是完全机械化的,也就是说100%的数字化、公式化和客观化,但是到目前为止,市场上所用到的绝大多数机械化交易都是不太成功的,究其原因主要是因为所设计的交易系统或者在成功率方面的表现不大能令人满意,或者其收益率达不到投资者的要求。
还是说回到交易系统的最本质的问题上,衡量一套交易系统的最本质的指标就是这套系统能否轻松稳定地赚钱。而能否赚钱最简单的理解就是两个模式:一是赚钱的次数比亏钱的次数多,并且每次盈亏比大致相当,这样最终下来,赚得肯定比亏得要多;二是不把赚钱次数的多寡作为最主要的衡量标准,只要求每次赚得都比亏得要多一些,最终总体上赚得钱要多过亏的钱就行。分析以上两种情况,我们可以看出,第一种是单纯追求交易的成功率的例子,在这个我们姑且认为是零和市场的交易场所里,想达到战胜市场的成功率是比较困难的,因为这个市场从长期来看其价格走势随机性比较强,从美国证券市场上经典的飞镖派与资深市场证券分析师的对决中可见一斑。而且如果我们单纯追求成功率,其代价必定是很高的交易机会成本,因为我们要对市场进行全方位的分析,找出市场中除了随机性之外部分的规律,按照这个规律来进行交易,试图战胜市场,取得成功,简言之就是以较少的可循规律来分析预测市场价格的后期走势然后进行交易;第二种情况是把作为交易系统核心的衡量标准从单笔交易扩大到较长一段时间的交易里去,这样做有利有弊,"利"是能从整体上分析和验证一个交易系统的好坏,使交易更叫灵活,不会受太多的方方面面条件的制约,交易机会成本比较低,交易系统的构造比较简单,后期对系统的修正也比较方便,"弊"是这样的系统本身对交易成功率的要求比较低,可能会导致投资者在交易过程中连续多笔交易出现亏损,对投资者的心理影响是比较大的,这样的情况出现后往往会导致投资者对交易系统产生怀疑,甚至干脆放弃交易系统转而寻求其它的操作方式。
在程序化交易的设计中,设计前采取什么样的策略很重要,我们发现现在的绝大多数程序化交易系统都是以追随趋势为核心而构建的,这个是比较被大家认可的一个共识,因为明确的趋势是能轻松赚钱的好机会,任何人都不愿意放过,但同时我们也发现了另外的一个市场普遍现象,就是大多数时候市场是处于无趋势运动的状态中,这样的市场运动特征我们又该如何把握呢?这也是程序化设计工作中应该着重解决的一个问题,大多数程序化设计思路都把这一点考虑进去了,但是真正能达到在振荡市中取得比较好的操作业绩的系统还是少之又少。结合上述的市场价格的运动特征,我觉得以追随趋势构建的交易系统比较切合前段第二种赚钱模式,也就是不以追求交易成功率为核心,而尽量在简单的有趋势的行情中赚足,在把握不好或者说行情复杂的情况下不亏或少亏,以少次的大额盈利来弥补多次的小额亏损,在总体上做到多盈少赚。
在确定了总体的构建思路后,应该对一个完整的交易系统的每一部分进行量化,包括:
一、最大单笔和总体交易头寸的确立,我觉得以总资金的固定比例同时结合单个品种的的平均振荡幅度来确定比较合适。
二、开仓时机的选择。既然确定了追随趋势,那么价格就应该是我们最为关心的指标,可以以价格突破某个高点作为开仓的信号,但是这个开仓信号可以加以其它不同条件进行过滤,把明显的假信号或者风险很大的开仓信号过滤掉,比如可以结合价格与均线的距离来确定。
三、加仓次数和时机的选择。关于加仓,是比较难于掌握的一个操作步骤,我初步认为加仓应该是在趋势已经确立后再进行,突破了明显压力或者支撑,而这个压力或者支撑是否可以直接采用在技术分析上的价位?这样做会不会与整个程序化交易系统产生比较大冲突?因为这个毕竟是主观的东西,而且还难以在操作之前量化,与程序化交易系统的构造初衷有所背离,究竟可不可行还值得商榷。
四、止损位的设定。止损是整个交易系统中比较重要的部分,与确定最大头寸相似,我们可以把止损设定为固定比例同时根据不同品种的不同特征区别对待,并在加仓之后调整止损点位。
五、盈利头寸的平仓。关于平仓,因为是追随趋势,那我们就不能让价格的小波动影响到总体的操作,但在数量上如何界定是小回调还是大调整,抑或是价格反转,还是比较困难的。当然运用统计方法我们可以算出历史数据的大小波动及其对应的价格表现,但这样的历史数据对以后的操作有多大的借鉴意义还值得进一步验证。
总体上来说,以追随趋势为思路来设计的交易系统,其成功率一定达不到50%,因为市场的运动特征必然会导致出现这样的结果,但是在趋势明确的时候,盈利率却很可能很高。如果不考虑交易成本,那么期货市场本身就是个零和市场,赚钱的人赚到的钱和亏钱的人亏损的钱是相同的,而长期以来针对这样的一个市场能不能做出一套保赚不亏的交易系统一直都是有争议的,因为历史经验证明无论是多么成功的交易者,都会在这个市场中出现反复,市场只要存在其交易就必然进行,而在交易者退出市场之前什么事情都有可能发生,现在能赚钱的交易系统在今后的一段时间里可能就不好用了,所以说这个市场上根本就没有也不可能有那么一套在任何时间任何情况下都能屡试不爽的交易系统,可见不断地验证和修正对于交易系统是非常重要的。
最后提一点,程序化交易可能的最大好处就是可以帮助系统使用者最大程度地克服人性贪婪和恐惧的弱点。
还是说回到交易系统的最本质的问题上,衡量一套交易系统的最本质的指标就是这套系统能否轻松稳定地赚钱。而能否赚钱最简单的理解就是两个模式:一是赚钱的次数比亏钱的次数多,并且每次盈亏比大致相当,这样最终下来,赚得肯定比亏得要多;二是不把赚钱次数的多寡作为最主要的衡量标准,只要求每次赚得都比亏得要多一些,最终总体上赚得钱要多过亏的钱就行。分析以上两种情况,我们可以看出,第一种是单纯追求交易的成功率的例子,在这个我们姑且认为是零和市场的交易场所里,想达到战胜市场的成功率是比较困难的,因为这个市场从长期来看其价格走势随机性比较强,从美国证券市场上经典的飞镖派与资深市场证券分析师的对决中可见一斑。而且如果我们单纯追求成功率,其代价必定是很高的交易机会成本,因为我们要对市场进行全方位的分析,找出市场中除了随机性之外部分的规律,按照这个规律来进行交易,试图战胜市场,取得成功,简言之就是以较少的可循规律来分析预测市场价格的后期走势然后进行交易;第二种情况是把作为交易系统核心的衡量标准从单笔交易扩大到较长一段时间的交易里去,这样做有利有弊,"利"是能从整体上分析和验证一个交易系统的好坏,使交易更叫灵活,不会受太多的方方面面条件的制约,交易机会成本比较低,交易系统的构造比较简单,后期对系统的修正也比较方便,"弊"是这样的系统本身对交易成功率的要求比较低,可能会导致投资者在交易过程中连续多笔交易出现亏损,对投资者的心理影响是比较大的,这样的情况出现后往往会导致投资者对交易系统产生怀疑,甚至干脆放弃交易系统转而寻求其它的操作方式。
在程序化交易的设计中,设计前采取什么样的策略很重要,我们发现现在的绝大多数程序化交易系统都是以追随趋势为核心而构建的,这个是比较被大家认可的一个共识,因为明确的趋势是能轻松赚钱的好机会,任何人都不愿意放过,但同时我们也发现了另外的一个市场普遍现象,就是大多数时候市场是处于无趋势运动的状态中,这样的市场运动特征我们又该如何把握呢?这也是程序化设计工作中应该着重解决的一个问题,大多数程序化设计思路都把这一点考虑进去了,但是真正能达到在振荡市中取得比较好的操作业绩的系统还是少之又少。结合上述的市场价格的运动特征,我觉得以追随趋势构建的交易系统比较切合前段第二种赚钱模式,也就是不以追求交易成功率为核心,而尽量在简单的有趋势的行情中赚足,在把握不好或者说行情复杂的情况下不亏或少亏,以少次的大额盈利来弥补多次的小额亏损,在总体上做到多盈少赚。
在确定了总体的构建思路后,应该对一个完整的交易系统的每一部分进行量化,包括:
一、最大单笔和总体交易头寸的确立,我觉得以总资金的固定比例同时结合单个品种的的平均振荡幅度来确定比较合适。
二、开仓时机的选择。既然确定了追随趋势,那么价格就应该是我们最为关心的指标,可以以价格突破某个高点作为开仓的信号,但是这个开仓信号可以加以其它不同条件进行过滤,把明显的假信号或者风险很大的开仓信号过滤掉,比如可以结合价格与均线的距离来确定。
三、加仓次数和时机的选择。关于加仓,是比较难于掌握的一个操作步骤,我初步认为加仓应该是在趋势已经确立后再进行,突破了明显压力或者支撑,而这个压力或者支撑是否可以直接采用在技术分析上的价位?这样做会不会与整个程序化交易系统产生比较大冲突?因为这个毕竟是主观的东西,而且还难以在操作之前量化,与程序化交易系统的构造初衷有所背离,究竟可不可行还值得商榷。
四、止损位的设定。止损是整个交易系统中比较重要的部分,与确定最大头寸相似,我们可以把止损设定为固定比例同时根据不同品种的不同特征区别对待,并在加仓之后调整止损点位。
五、盈利头寸的平仓。关于平仓,因为是追随趋势,那我们就不能让价格的小波动影响到总体的操作,但在数量上如何界定是小回调还是大调整,抑或是价格反转,还是比较困难的。当然运用统计方法我们可以算出历史数据的大小波动及其对应的价格表现,但这样的历史数据对以后的操作有多大的借鉴意义还值得进一步验证。
总体上来说,以追随趋势为思路来设计的交易系统,其成功率一定达不到50%,因为市场的运动特征必然会导致出现这样的结果,但是在趋势明确的时候,盈利率却很可能很高。如果不考虑交易成本,那么期货市场本身就是个零和市场,赚钱的人赚到的钱和亏钱的人亏损的钱是相同的,而长期以来针对这样的一个市场能不能做出一套保赚不亏的交易系统一直都是有争议的,因为历史经验证明无论是多么成功的交易者,都会在这个市场中出现反复,市场只要存在其交易就必然进行,而在交易者退出市场之前什么事情都有可能发生,现在能赚钱的交易系统在今后的一段时间里可能就不好用了,所以说这个市场上根本就没有也不可能有那么一套在任何时间任何情况下都能屡试不爽的交易系统,可见不断地验证和修正对于交易系统是非常重要的。
最后提一点,程序化交易可能的最大好处就是可以帮助系统使用者最大程度地克服人性贪婪和恐惧的弱点。
- 上一篇:投资者应理性对待程序化交易
- 下一篇:程序化交易系统的设计理念