ea正常运行在大部分时候是指ea正常开仓交易,毕竟ea的主要用途还是用来实现按照某种策略进行自动交易的。如果从网上下载或者其它途径获得一个ea,开始它能正常运行交易,但是在中途修改参数后就不再交易了,那么问题出在哪里呢?
首先,我们不凡列举一下ea在程序没有问题,而在终端图表上不能正常交易的几种情况:
1、使用权限问题,有的ea本身有使用时间或账号限制,如果使用到期或者账号无使用权限,那它就不会在运行其交易函数了。不过这种情况,通常ea开发者会有弹出提示。
2、ea策略中含有交易时间段限制,有的策略是规定ea在指定时间段内交易,如果ea参数设置中有时间输入变量,那么就是研究下它是否有限制交易时间段。通常从网上下载来的老外开发的ea,大部分变量名称都是英文字符,不太好理解,所以如果存在时间相关变量,可以根据mt4图表时间来尝试调整下。
3、交易品种限制,有的策略是指定交易品种,那在参数中如果有交易品种变量,就要核对下它和当前图表品种名称是否一致。比如说,ea规定只交易迷你账号的EURUSDmicro,那么用于标准账号,就要对照图表修改货币对名称为EURUSD。
4、交易品种自身的交易时间限制,常见外汇对在周一早晨开盘后至周六临晨收盘期间,都是可以交易的。而一些CFD指数类的产品,是有其特定的交易时间段的。如果用EA来交易这类品种,需要核对其是否在交易时间段内,不再交易时间段内,怎么修改EA参数都是没有用的。因为它本身在这个时间段就是禁止交易的。
5、交易品种的交易规则限制,这方面问题较为常见,也是最有可能出现的问题,主要包含手数大小、止损止盈距离等。
交易手数,不同的平台,或者说同一平台的不同品种,在交易手数规则方面都是不同的,有的品种外汇对最小开仓是0.01手,有的是0.1手。同一平台内,外汇对最小开仓0.01手,而原油或其它品种有可能是最小开仓1手,那么当修改参数后ea不再交易时,就要核实一下是否有修改手数参数,修改后的手数是否符合交易品种的手数规则。
止损止盈,跟手数一样,不同的品种或不同的平台,止损止盈的最小距离(止损水平)限制都是不同的。如果有修改ea的止损止盈参数,那么要核对它和当前交易品种的最小限制距离是否冲突。如果止损止盈设置小于当前品种的止损水平,那么就会出现开仓报错,无法正常交易。
如果是挂单,也同样要考虑到挂单距离及挂单的止损止盈是否符合品种的止损水平要求。
如果ea策略中含有加仓逻辑,那么也同样要考虑到加仓距离及订单的止损止盈是否符合品种的止损水平要求。
止损止盈及相关距离的点数问题,一般情况下,ea设置止损止盈或挂单等间距点数,都是从报价最后一位计算,比如黄金报价1901.23,那么3美金止损就是300点,而不能设置成30点,如果黄金报价是1901.230,那么3美金止损就是3000点,设置300点就无法开仓。这方面设置可以用模拟盘先行测试观察。
6、ea智能交易开关的设置限制,在mt4平台,ea要正常运行,那么在加载ea到图表之前,是需要先开启智能交易开关的。智能交易开关的勾选可以参考下图,如果在智能交易开关中勾选“图表夹改变是禁用EA”,那么如果在加载EA的图表上切换品种或时间周期,也会到帐智能交易开关中途关闭,从而EA就不再进行交易了。
ea智能交易开关的设置会影响ea交易
7、ea自身的交易策略限制,有一些ea限制账号交易资金、盈亏次数、盈亏金额等,但这些限制条件满足后,它本身就不会在进行交易了。这跟修改参数没有关系。如果EA限制盈亏多少就不再交易,而ea中参数也带有订单识别码参数,那么可以尝试修改下订单识别码。
当然,上面也只是简单的列举下几种可能出现的情况,具体的ea不运行的原因还是要根据具体的ea策略来区分对待的。
那么如何判断是修改参数造成ea不运行还是其自身的策略限制呢?如果在修改参数之前一直运行,而自修改参数后就不运行了,同时上面列举的几种情况都没有可能,那么我们可以将ea参数还原到默认参数在继续观察其是否交易。如下图所示,在ea属性框“输入参数”页面,点最右下角的“重设”,即可将ea参数恢复到默认参数。
ea参数恢复默认参数
如果ea参数恢复到默认参数后又开始交易,那么就可以排除ea内置策略限制限制方面的问题,把问题集中在交易品种的交易规则方面,对照默认参数逐一排查修改中间的错误原因即可。