交易策略的程序化是指将交易策略转化为精确的数学公式或电脑语言公式,使之成为电脑可识别并能进行检验的公式系统。
大多数投资者对自己的投资策略只能做出某种模糊的描述。比如我们常常在一些媒体上看到或听到类似的描述:“某某合约放量上攻”、“某某合约受到某日均线的压力”、“某某合约是小幅盘整”、“某某合约某日拉出一根大阳线”、“某某合约严重超买”或“超卖”,等等。这里的“放量”上攻,“压力”,“大阳线”中的“大”、“小幅盘整”中的“小幅”,严重超买或超卖中的“严重”及“超买超卖”、都缺乏严格的定量及定性意义,也就是说缺乏教学语言的精确性及电脑语言的明确性,所以不能直接转化成数学模型及进行相关检验。打个比方,假设投资者以“放量上攻”后跟进作为进场的交易策略,这里暂且不提出场规则的定义,单是进场规则就是不明确的,不客观的,不能重复的,因而不可能进行统计检验。这里的“放量”缺乏定性和定量的标准。何为“放量”?“放量”是指绝对水平还是相对水平?假设是绝对水平,那么多少是放量?假设是相对水平,那么参考系是什么,参照标准又是什么呢?如果不能准确回答这些问题,就无法达到数学公式意义上的精确。再如,假设以某期货合约“拉出一根大阳线”后跟进作为进场的策略思想,那么这个“大”应该如何定义呢?是与自身对比为大,还是与其他合约对比为大?大了多少又叫大?是绝对值还是相对值?等等,同样,不能准确回答这些问题,同样无法达到数学公式意义上的精确度。
投资者首先要把自己的交易策略转化为精确的数学公式或电脑语言才可能客观地利用计算机对大量的统计数据进行检验,进而需要评估其交易策略思想在统计意义上的准确度。
交易策略的程序化过程可参照以下基本步骤
1、定义交易规则:交易策略的定性化。定义交易规则,指将交易策略思想归纳成明确的交易规则。所以说定义交易规则的过程即是对交易策略思想定性的过程。以简单的平均线交易系统为例,假设交易策略是以短期平均线向上穿越长期平均线为买入信号;以短期平均线向下穿越长期平均线为卖出信号。则该交易策略可以设计为以下交易规则:
规则1,当短期平均线向上穿越长期平均线时,买入。
规则2,在做空信号发生前,持仓。
规则3,当短期平均线向下穿越长期平均线时,平仓反手。
规则4,在做多信号发生前,持仓。
在这里需申明的一点是,这里列举的简单平均线交易系统,只是为了说明如何将交易策略思想转为明确的公式系统。这种举例不能说明任何作者对该系统的评价。
2、定义交易规则变量及参数:交易策略的定量化。在对交易策略思想进行归纳为明确的交易规则体系后,还必须进一步对其中包含的变量及参数作出明确规定。
仍以简单平均线交易系统为例。
定义1:P=价格(定义价格)
定义2:t=今日(定义时间序列)
公式1:MA1(t)=(P1+P2+...PN1)/N1 {定义平均线1}
公式2:MA2(t)=(P1+P2+...PN2)/N2 {定义平均线2}
定义3:N2>N1(定义长期平均线)
定义4:若MA1(t)>MA2(t) 但 MA(t—1)
定义5:若MA1(I)
当对交易系统所用变量及公式定义完成后,一套交易系统便从质和量上固定下来,系统设计者就可以研究系统参数在不同值域中变化而使交易系统在给定数据库中的表现变化。
在该例中,引参数为P1、N1、N2,即设计者可以变换价格定义及均线长度定义。比如,设计者可不使用收盘价,而使用开盘价、或最高价、最低价、甚至某种加工过的价格。均线周期长短也可根据需要加以变化。
3 编写电脑程序。当交易系统编写为公式和定义系统后研究者需进一步将其编写为电脑可直接使用的电脑语言或软件语言,以使交易系统能够直接在电脑上运算。比如,上述简单平均线系统的定义及公式,编写成某种电脑软件语言后,便成如下形式:
根据以上述电脑软件语言形式,电脑便可直接按交易系统的规则进行运算。如果编写成电脑初级语言,如Basic,或高级语言,如C,则程序编写可能要更复杂一些。在该电脑程序中,参数为价格、此处定义为Close(收盘价),及均线长度(Length1,Length2)可由系统设计者按需要变动。
(责任编辑:admin)