程序化交易泛指客观化交易。包括使用模型决策的人工投资行为和以模型为基础的软件化金融投资行为。
一、程序化交易的描述:
1、程序化交易就是对固定市场状态做固定行为选择,再以若干指标精确评估行为后果(常用的九项指标)。
2、程序化交易就是以市场状态定义和行为规则定义为基础的软件化金融投资行为。
3、程序化交易就是用统计学手段研究人性群体表现特征。既研究群体行为在概率意义上的规律性。
以上三种描述,第一项是程序化交易的内涵;第二项是程序化交易的表现形式;第三项是程序化交易背后的原理。
二、简介模型概念:
如下图,价格一轮向上的推动行情(时间幅度、价格幅度、运行速度等,有明确的数字限定。)之后,出现一个三角形(构成三角形的五个点有明确定义。)调整形态。当价格向上突破三角形上边压力线,在A点买入进场。A点买入之后,如果价格向下跌破三角形顶点B点,止损退场;如果向上价格升至三角形最宽的幅度C点(Mac=Mde),止损退场.
三、模型胜算概率的定义
依据模型概念,对历史数据库进行检索,收集所有符合模型概念定义的市场状态,对所有符合模型概念的市场状态采用相同的行为规则,然后统计:“由进场点开始计算,价格波动触及止损点之前,达到盈利退场点的发生率。”上述发生率就是“胜算概率”。
四、技术模型研制的工作流程:
技术模型研制的工作流程一般说来可分为三个步骤:
1、提出假说:
假设A状态发生,按B规则体系行为,具有正期望值收益率。提出假说可以依据传统分析工具,可以依据研究员自制的工具,也可以依据研究员的直接经验(读图记图的内功修养)。
2、粗研:
此时不涉及行为规则,只判断上述假说的市场状态发生之后,价格沿固定方向运行的倾向性是否足够强烈。进而判定所提出假说科学性,看其是否具有足够的正期望值盈利率。
3、精研:
在粗研之后,针对具有足够的正期望值盈利率的市场状态假说,设定具体的行为规则,同时进行数据库检索,并记录模型参数的九项指标。然后,反复调整既定的模型参数、调试既定的行为规则,尽可能提高模型的使用性能(风险最小化、收益最大化、概率分布均匀化。)
五、模型行为后果评估体系:
1、标地总数:(必须大于150)
2、胜算概率:(胜算概率的定义)。
3、概率分布特征:最大连续亏损次数、最大连续盈利次数。
4、资金最大回撤比例:(要求小于15%)
5、信号发生频率:N次/年.
6、人为不可控制风险发生率:要求小于1/3000。
7、平均利润风险比: 要求x>3/1.
8、平均年回报率为:(要求大于30%)
9、十年资金曲线:
六、简介建模技术
由于计算机强于计算,所以算法模型的研制难度相对较低;而图形识别模型的研制难度相对较高。但是,图形识别模型的应用功能远比算法模型强大,所以如果有可能,还是要研制图形识别模型。建模的基本思想是—要求二级以上的共振状态,单级技术状态很难形成高品质的模型。
算法二级共振模型研制很容易,只要用特定的大参数指标状态,确定行为背景;用特定的小参数指标状态或K线组合,确定行为规则,就可以了。图形识别二级共振模型的研制难度极高,非行业顶级专家,不能完成。
七、关于模型研制过程中的数据盗用问题:
在进行模型数据校验的时候,很多研究员会犯“数据盗用”的错误。这就会导致,实际交易数据与理论研究数据的巨大差异。那么什么是“数据盗用”呢?所谓“数据盗用”就是用后面的数据确定前面的行为规则。举例说明,我们用2000年到2010年的数据来确定一个模型的行为规则,在进行数据统计的时候,我们会采用经过数据库比对的、行为结果最好的一组参数来算帐,这样就犯“数据盗用”的错误。因为在2001年的时候,我们并不知道2008、2009年的数据是什么,所以2001年的策略只能用2001年以前的数据来确定,但在实际的研究工作中,我们却用了2008、2009年的数据来确定2001年的策略,这等于盗用了未来的数据,所以这样研究结论一定是失实的。
为了避免“数据盗用”,研究员在进行模型研制的时候应该是逐年策略、逐年算帐的。这样,研发的工作量会比“数据盗用”大很多倍,但是没有办法,这样做是必须的。因为只有这样,理论研究数据才可能接近实战数据。
八、建立数据库:
在模型研制过程中,当提出假说(明确市场状态定义和行为规则定义)完成以后,粗研和精研是反复的数据库检索工作。所以,建立完善的数据库和高效率的数据平台是研制投资决策模型的先决条件。
九、关于校验数据的选择:
研制股票投资决策模型,不存在校验数据的选择问题,因为股票只有一组交易数据。
研制期货投资决策模型,校验数据的选择是一个至关重要的问题。不可以使用“商品期货指数”的数据作为校验数据,必须使用单合约数据作为校验数据。我们在实战中遇到了这样的教训,在模型研制的时候,以“商品期货指数”的数据作为校验数据,那么在实际交易的时候当然也就以“商品期货指数”的价格状态确定行为规则,而买卖行为只能在单合约上进行,后来就发现,按“商品期货指数”的图表,没有触及止损规定,但单合约的图表触及了止损规定,这就给实际交易带来了麻烦,不知道如何处理。所以后来我们就得出结论:不可以使用“商品期货指数”的数据作为校验数据,必须使用单合约数据作为校验数据。
十、不同模型产品之间的相关性问题:
在投资者拥有多个模型产品的时候,不同型产品之间的相关性必须明确结论。否则,当风险集中释放的时候,就会打穿操作帐户的风险底线,或者打穿操作者的心理底线。实战的教训:2009年初,在世界金融风暴之后,全球商品期货价格与美圆指数呈强烈负相关,同涨同跌。当时我们用了七个模型同时对多个帐户进行操作,结果在2009年二月和五月出现了两次风险集中释放。我们所采用的七个模型,平均单个模型最大连续亏损4次,可我们把七个模型组合使用,竟创造了最大连续亏损12次的记录,资金最大回撤比例高达24%。后来我们总结经验得出结论,风险集中释放是由于所用的七个模型中,有四个属于强相关模型,于是我们就做了调整,并规定:“针对同一帐户操作的所有模型之间必须相关系数足够小。”。这可以通过对模型概念的判断,得出比较准确的结论。比如,道氏理论的压力线向上突破和大参数KD指标向上穿越,表面上看,相关性不强;实质上看,相关性很强。因为这两种状态都是由于价格上涨而形成的。
十一、模型的实际交易参数与研究参数的比较:
模型的实际交易参数一定比研究参数差,这是长期实战的结论。究其原因,首先实战的进场价位和止损价位一般会比研究数据差;其次,当有实盘资金针对某一状态介入市场,会在一定程度上改变价格运行规律,换句话说,就是存在一定的冲击成本。
经验结论:
模型的实际交易参数=研究参数*(0.85)
十二、程序化交易原理合理性探讨:
由于价格是人的行为结果,所以价格波动在统计学意义上是否存在规律,就自然而然地转换到另一个命题上—人类群体行为在统计学意义上是否存在规律性?答案是肯定的。我们现在举例说明这个问题。假设在沙漠中有一个点,立着一块空白的石碑,一个人走到这里,继续前进还是转头后退,结果是随机的,是没有规律的。但是如果我们让10万个人在这里做选择,就可能有规律。如果10万人的选择是前进、后退各50%,没有呈现出显著的规律特征,我们可以换个方式,继续测定。如果我们在这里设置一幅美好的图案,比如一幅沙漠绿洲、一幅田园风光等,那么继续前进的人是不是会增多呢?如果我们在这里设置一幅恐怖的图案,比如一幅骷髅图案、一幅金字塔图案等,那么转头后退的人是不是会增多呢?有可能。我们把这种测试重复N次,就可以得到一组数据,这组数据就表示了沙漠中10万人在特定环境下群体行为的规律性。而这美好的图案和恐怖的图案就相当于金融投资专业研究领域内不同的模型概念。在沙漠中,我们用不同的图案去测定那10万人群体行为的规律性;而在金融市场上,我们则是用不同的模型去测定金融市场参与者群体行为的规律性。我们做金融投资的专业研究,就是要去发现各种不同的市场状态发生时,金融市场参与者群体行为的规律性,我们要知道他们大概率的选择是什么。
(转载)