20.8 模糊逻辑
在专家系统的第二个范例中,其测试结果是以概率的形式来显示的。由于相应趋势和计算指标是对市场行情运行模式的一种估计,所以,其很少被严格地区分为真或者假,因此,应用概率形式观察测试结果的方法是比较现实的。同时,正确的概率可以由计算模型所相关的系统显示为一定的可靠性(即可获利交易所占的百分比)——当概率情境正确时,相关的平均所得是每笔交易的平均收益;如果概率测算有误,那么,相应损失则是每笔交易的平均亏损。当你为测试结果配置相关概率时,相应数值可以被称为模糊变量,但是,如此看待价值的方法则是基本概率分析模式的一个转折点。 [1]
所谓模糊性的概念旨在描述于正常人的对话和思维中所存在的那些缺乏准确性的物质。如果以纯粹的形式表现,那么模糊性概念的应用则可以将人类自身的不确定性引入到人工智能的方法中,例如,我们经常会说:
·节目中有很多人在线;
·我不得不等待很久;
·我在等待时真的很冷;
·昨天股市强劲;
·失业率急剧下降等。
在上述所有这些情况之下,虽然没有具体说明“很多人”“很久”“冷”“强劲”“急剧”等概念的具体数值,但是,我们都听得懂。所谓模糊逻辑就是指世间的一切都不存在真或假、0或1、有还是没有。而真正的模糊逻辑将会回答这样的问题,即,“如果苹果被吃了一半而还是苹果的话,那么,在它不是苹果之前,你又要吃掉多少呢”?
模糊性的概念包括一些模糊数字,如“小”“大约是8”“接近于5”“远大于10”;同时,还有一些模糊量词,如“几乎”“几个”“最多”。另外,还有一些模糊性的表达方式,如“政府报告所引发的意外效果造成了行情的大幅波动”,如此等等。
20.8.1 模糊推理模式
模糊事件和模糊统计被组合成为模糊推理模式。而相对于以下人类大脑可清晰辨认的,但机械手段无法识别的现象而言,此种模式能够给出很了不起的答案(答案可以在注脚中找到),即, [2]
·示例1:X是一个小的价格波幅,Y比X小得多,那么Y有多小呢?
·示例2:大多数价格走势的波幅都很小,而大多数的小型价格波幅都在上扬,那么价格涨幅有多少呢?
·示例3:季度收益非常糟糕的情况不太确切;同时,季度收益良好的情境也无法确定,那么季度收益有多糟糕呢?
20.8.2 应用模糊理论解决实际问题的常见方法
在模糊逻辑的术语中,问题的解决方案包括三个方面:会员资格——用以显示数据相互关联的情境;模糊规则——用以得出结论;模糊解读器——将模糊答案转回可用的测试结果。 [3]
现在举例说明,即如果我们想预期价格行情的走势是否足以使我们应用相关的交易系统捕捉大额的利润,那么,一个强劲的系统则是必需的。同时,我们总是应用一条20日趋势线,但是,所要预期的结果是想于进场之前判定价格走势能否超过我们所限定的最低水平。一般来说,我们发现排除佣金和利差,每笔交易的净收益需要达到500美元,而由于所使用的顺势交易系统在退出之前需要结清相应收益,所以我们需要于峰值期收获800美元来实现前述500美元的净收益。根据相应的需要,我们可以定义如下的约束条件,即,
·300~800美元峰值的平均移动幅度是可以接受的;
·峰值移动均值超过800美元的情境是可取的;
·300美元以下的平均峰值移动情境是不可接受的。
为了确定当前价格走势是否有足够的空间使我们进场交易,我们需要测度过去1年(长期)以及过去1个月(短期)的20日周期的平均价格走势,基于这种方法,我们创建了以下规则。
(1)如果长期和短期的获利潜能都不可接受,那么目前的获利潜能则是不可接受的。
(2)如果长期和短期的获利潜能都是可取的,那么当前的获利潜能则是可取的。
(3)如果长期和短期的获利潜能都是可以接受的,那么当前的获利潜能则是可以接受的。
上述三个范例情境是很清楚的,但是,长期和短期的期望值有何不同呢?例如,如果长期的平均峰值为250美元,而短期的是600美元,那么,从目前的行情运行中我们可以做出何种预期呢?根据所应用的模糊逻辑,这个问题可以转化为一种概率情境,而我们则需要了解更多的价格走势相关的历史信息——通过测试,我们发现1年平均价格走势的标准差为75美元,过去1个月的标准差为200美元;然后,我们可以构建一个图,进而显示此两种综合度量模式的测试结果(见图20-14),而相关的平均收益则可以根据标准差,且应用下降曲线来显示。图中范例相关的交易于350美元/笔处彼此相交,如此则给出了综合两个数值的合理解决方案。
图20-14 应用两种时间周期所预期的价格运行模式
这里有一个不可忽视的附加测量方式是:于每个序列的统计数据中,都会存在潜在的误差,长期测度方式使用的是250个交易日;短期测试只使用大约20天左右的时间步长,这些计算的标准误差分别为6.3%、22.3%。在测试结果的解析中,我们可以说长期数据比短期价值更为重要,彼此之间的比率大约是3.5∶1,那么,我们则可以总结如下的附加规则。
(1)如果长期获利潜力不可接受,而短期获利潜力可以接受的话,那么当前的获利潜力是不能接受的;
(2)如果长期获利潜力不可接受,而短期获利潜力是可取的话,那么目前的获利潜力则是可以接受的。
通过使用上述这些规则,我们可以将模糊逻辑应用于相关的交易中。然而,最先进的技术表明模糊逻辑仍然属于一种简单的概率范畴,如果放任其发展,那它可能对传统的市场分析造成一种颠覆式的突破。
20.8.3 蜡烛图所相关的范例情境
鲁杰罗基于蜡烛图的图形结构,且应用模糊逻辑的范例情境来识别多头吞噬型(bullish engulfing)、黄昏之星型(evening star)以及黑云压顶型(dark cloud), [4] 这些模式可以在第3章中发现,其相关定义为:
·多头吞噬型——行情下跌交易日之后伴随一个穿透破脚式的升势交易日,其白色箱体比前一日箱体的黑暗形态要长;
·空头相关的黄昏之星型,其类似于岛形反转形态,其形态为较长的白色箱体之后伴随一个向上跳开的白色箱体,然后是一个向下跳开的黑暗箱体;
·空头相关的乌云压顶型——较长的黑色箱体之后伴随一个较低、较长的白色箱体,其中第二日开盘价高于前一日的高点,但是,收盘价低于开盘价-收盘价波幅之间的中点价位。
上述的程序还需要以下编程函数(这里没有给出):
如果蜡烛图箱体为白色,那么函数candlecolor则导出数值1;如果是黑色,那么,导出数值就是-1。而fuzzylong函数和fuzzysmall函数则用于确认相应的图形结构。另外,当正确的行情方向之上出现缺口之际,windowup函数和windhowdown函数则输出大于零的数字。回溯参数lookback parameter应用蜡烛图箱体规模所相关的移动平均线来计算相应的周期。当前箱体相对于均值尺寸而言可被认定是大或者小,即如果当期箱体规模>箱体规模均值×触发因子Trigger1,那么,Trigger1则表明当前的箱体规模属于大型;同样,如果当期箱体规模<箱体规模均值×触发因子Trigger0,那么,当前的箱体规模则属于小型。当使用fuzzylong函数时,trigger1>trigger0。最后的参数refbar则用于标识那些会被吞噬的棒线。
识别上述模式的四个关键性的编辑语言现存于英航网站上的TSM软件中,其中的程序可以应用内在函数区分相应的模式。程序的编辑逻辑如下。
如果蜡烛图为长型白色,那么FuzzyLong(函数)的输出值为1;如果蜡烛图为长型黑色,那么FuzzyLong(函数)的输出值为0,相关步骤为:
(1)计算第t期蜡烛图的波幅范围Rt ,Rt =Ot -Ct ; [5]
(2)发现代表零值的行情水平ztrig,ztrig=average(R,n)×zerocof,其中n为计算周期,且n与zerocof为输入项; [6]
(3)找出代表1的行情水平onetrig,onetrig=average(R,n)×onecof,其中n为计算周期,且n和onecof是输入项; [7]
(4)查找相关棒线的规模比例scale,scale=onetrig-ztrig,
如果scale=0,则设置scale为较大值99.99;
(5)定义一个第t期蜡烛图高度tallt ,
tallt =max(0,min(Rt -onetrigt )/scalet ) [8]
(6)如果tallt-1 =1,Rt-1 -ztrigt <>0,那么
tallt =max(1,(Rt -Rt-1 )/(Rt-1 -ztrigt ))
(7)模糊高度Fuzzytall=tallt 。
如果当前图形不属于多头吞噬形态,则相关函数FussyBullish Engulf之值为0;如果是多头吞噬形态,则函数输出值为正常字节。同时,系统中没有提供FuzzySmall函数的编辑代码,然而,其与FuzzyLong函数非常相近。另外,Engulfing函数的代码也没有被系统提供,但是,我们可应用简单的模式而创建,具体编程如下:
相对于黄昏之星型而言,如果当前图形情境不属于其范围的话,那么FuzzyEveningStar函数的输出值为0;如果是,相关函数则输出正常字节,其编辑语言如下:
至于黑云压顶型,如果当前图形不在其范围之内,那么FuzzyDarkCloud函数的输出值为0;如果是,则相关函数的输出值为正常字节。另外,在此函数之中关于小型图形的FussySmall指令内输入零线参数和1值参数,从而可以反向测试“非小型”的蜡烛图情境。同时,相应的编辑代码如下:
上述代码属于一种比较灵活实用的程序设计,其可以满足我们自己所定义的蜡烛图的图形结构。虽然它被称之为模糊函数,但是,相关的内在逻辑仍然要依赖阈值trigger1和trigger0来确定图形箱体的长短,其可能是动态的或自适应性的,但是,它可能不是真正的模糊概念。
[1] 本节部分内容来自Perry Kaufman,Smarter Trading(New York:McGraw-Hill,1995)。
[2] 上述例子的答案是:示例1.很小;示例2.最多;示例3.不好。
[3] Murray A.Ruggiero,Jr.,“Artificial Trader Jumps Candlesticks,”Futures(February 1995),and“Lighting Candlesticks with Fuzzy Logic,”Futures(March 1996).
[4] Murray A.Ruggiero,Jr.,Cybernetic Trading Systems(New York:John Wiley & Sons,1997).
[5] O为开盘价,C为收盘价。——译者注
[6] average(R,n)为n日波幅均值;zerocof为零线相关的系数值。——译者注
[7] onecof:1值所相关的系数。——译者注
[8] one代表系数为1。——译者注