如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
万意达智能产品开发档案编程学堂-------------------------------------------------------------------------------------------------未来函数效应探究大家知道,由于技术指标或多或少地存在未来函数效应,而常常困惑着我们的EA(EA是ExpertAdvisor的中文译名,俗称智能交易系统)开发者们。所谓“未来函数”,从数学意义上来定义是指可能引用未来数据的函数,即引用或利用当时还没有发生的数据对之前发出的判断进行修正的函数。这不在我们的研究之列。我们所研究的“未来函数”专指在金融衍生品交易中技术指标走势所表现出来的、令人匪夷所思的一种假象。具体地说,未来函数是指已经形成的指标线走势形状会随着后续价格(K线)的出现而改变。请注意,我们定义的“未来函数”并非引用未来数据,而是被未来数据所改变。一般来说,以技术指标为基础来开发的EA产品,软件工程师们通常会对技术指标计算方法(或者公式)进行深入研究,并在此基础上通过对大量技术指标走势图的细心观察和丈量,来触动自己的灵感,启发自己的创作思维。而“所见不能所得”的未来函数效应就成了工程师们最大的障眼,所以提起未来函数就谈虎色变也就不足为怪了。那么“未来函数”真有这么可怕吗?本文和大家一起来探究。一、可规避型未来函数效应首先,大部分具有未来函数效应的技术指标对于EA开发来说是可以规避的。举例来说,某个EA设计者以均线金死叉为其交易策略开发了一款EA软件,在图001中,原以为他所设计的EA应当在图中A点买入B点平仓,但EA实际运行结果是在A点买入在C点就平仓了,这让他非常困惑。图001这是一个典型的未来函数效应例子。为什么说这就是未来函数惹的祸呢。现在我们来重新模拟C点汇价是怎么走过来的。在图002所示中,汇价曾经使得二条均线出现过一个死叉形态,但是后来的K线使得这个死叉不见了,如图003所示。图002图003而作为程式化的EA当然会在死叉出现的瞬间执行平仓命令,因此EA并没有犯规。而我们回过头去看,却是“死叉不见了”的另一番情境,这就是未来函数效应。这种从有形到无形的变化对于EA设计者来说也是十分有害的,它的严重性在于掩盖了指标线走势的本来面貌。值得庆幸的是这种类型的未来函数是可以规避的。如图004所示,如果我们在A柱K线当柱监测,显然在汇价运行至A柱最低点的时候,二条均线曾经在A柱形成过死叉,也就说在A柱曾经产生过假信号(或者称为干扰信号)。但是如果我们采用“完整K线监测法”。也就是说当汇价运行在i=j的位置时候,i=j的K线是非完整K线(它还在形成过程中),而i=j+1和i=j+2柱的K线是相邻最近的完整的K线,完整的K线也就有了确定的均线值,因此我们站在i=j的位置监测i=j+1处是否形成了金叉或者死叉是可靠的,从而也就能有效避免假信号了。图004二、不可规避型未来函数效应遗憾的是有些指标,您无法规避。最为典型的指标是“ZigZag”。我们仍然先来做一个测试EA。本EA是在观察图005后,依据图006的图解编写而成。图005图006交易策略是:向左搜寻最近的二个Z字顶点,并在确认汇价刚离开顶点(即图中A柱)时下单或者平仓。EA实际运行结果如图007和图008所示:图007图008从图008中我们可以看出本款EA没有根据我们的设计方案在运行。我们的设计方案是要在A柱的开盘价的位置下单卖出,但EA却提前至C点就卖出了;我们原计划是要等到汇价运行至D区域的时候平仓,EA却也提前至E点就平仓了。而且,看上去比上款“金死叉策略”的情形还要糟糕,因为EA执行的点位简直有些莫明其妙!三、深入分析代码001是绝大多数MT4平台都有自带的自定义指标“ZigZag”的代码。//+------------------------------------------------------------------+//|Zigzag.mq4|//|Copyright?2005-2007,MetaQuotesSoftwareCorp.|//|http://www.metaquotes.net/|//+------------------------------------------------------------------+#propertycopyright"Copyright?2007,MetaQuotesSoftwareCorp."#propertylink"http://www.metaquote