6.4.3 指标的开启和关闭
你可以前一节的AND/OR为例,将一个指标打开或关掉。你的EA使用了多重指标,而你又想能够将这些指标打开或关闭,这里将告诉我们该如何做。首先,我们先执行一个外部布尔变量作为一个切换开关。我们以随机指标作为例子:
我们为指标定义两个条件集合:"on"状态和"off"状态。on状态由on/off变量设定为真,并且订单呈现开启条件所组成。off状态则简单地由on/off变量设定为假所组成。
陈述句(UseStochastic= =true && Kline>Dline)是我们的"on"状态。若将UseStochastic外部变量设定为真,且交易条件Kline>Dline评估为真,则随机订单条件将为真。
UseStochastic= =false是我们的"off"状态。若UseStochastic外部变量设定为假,则当UseStochatic= =false评估为真时,(UseStochastic= =true && Kline>Dline)评估为假。
因为on和off状态是由OR操作数连在一起的,必须两个当中的其中一个为真才能使整个陈述句为真,所以只要将指标打开且订单配制条件为有效或将"指标关掉",则整个陈述句将为真,且任何剩余订单条件将会被评估。
让我们加上第二个交易条件到我们的随机条件中——移动平均线交叉:
在这个范例中,我们已加上移动平均交叉条件,FastMA>SlowMA。注意到我们加了另一个圆括孤集合在随机条件之外,因为整个圆括弧内的陈述句需被先评估。
首先,我们评估圆括孤最内侧集合的陈述句:(UseStochastic= =true && Kline>Dline)。若是UseStochastic参数被设定为真,且Kline>Dline评估为真,则第一部分的陈述句为真:
条件UseStochastic= =false评估为假。
然后我们来看OR操作数,因为其中已有一个条件为真,所以整个随机条件评估为真:
若FastMA>SlowMA评估为真,则整个交易条件为真,订单被开出。若是假,则陈述句评估为假,订单不会开出。
若是随机交易条件是假会怎样呢?若UseStochastic设定为真,而Kline>Dline评估为假,则整个交易条件变为假:
无论FastMA>SlowMA评估结果为何,整个交易条件都为假。
现在来看看若是UseStochastic被设定为假的情况。陈述句(UseStochatic= = true && Kline>Dline)评估为假:
因为陈述句UseStochastic= =false为真,所以随机条件评估为真:
这意味着,若FaslMA>SlowMA也被评估为真,则订单将会被开出。这种情况下,随机条件甚至不用考虑,只要评估指标的on/off状态即可。







