止损止盈是订单的默认参数,对于大部分常规策略的ea,在编写的时候都会将止损止盈参数设为变量,以供在测试或者交易时因实际需要而设置不同的值。当然,止损止盈的设置对于交易的重要性,大家都是十分清楚的,这里就不多说了。 ECN是一种账户类型,也可以说是一种交易模式,我们在外汇平台开户时,通常会接触到两种账户类型,一种是ECN,一种是STP。这两种交易模式的详细区别,或者说哪种好,这不是本文要说的,如果感兴趣,可以网上搜搜相关的说明。 本文要说的重点是ECN和STP两种账户在智能交易EA中止损止盈的设置问题。 在编写智能交易EA时,不管是STP还是ECN,对于止损止盈参数,常规的处理方式都是将止损止盈作为输入变量写在EA执行函数之前,在使用EA时,可以通过EA属性窗口来修改。 在STP模式下,不管是通过手工还是EA来开一个新订单,正常情况下都是可以设置好止损止盈然后再开仓的。 而在ECN模式下,情况就不一样了,部分ECN账号在开新订单的时候是不允许设置止损止盈数值的。对于你所用的ECN究竟能不能先设置好止损止盈在开仓,这很容易判断,你手工开一个单子,同时设置好止损止盈,看看能不能顺利开仓就知道了。 那么问题就来了,如果ECN开仓是不能设置止损止盈,那么订单的止损止盈又如何处理?难道要裸奔? 这倒不必担心,多个步骤而已,ECN如果开仓时不能设置止损止盈,那就等单子开出来以后在通过修改订单添加上止损止盈。 修改订单添加止损止盈,就是用这种办法来解决ECN开仓不能设置止损止盈的问题。 现在回到EA,如果EA在编写时,没有区分这两种情况,直接将止损止盈的赋值调用到OrderSend()函数内,那么在STP允许设置止损止盈的情况下,只要止损止盈数值合理就可以正常开仓。而在ECN开仓不允许设置止损止盈的情况下,除非止损止盈赋值0可以开仓,赋值其它数值的话,开仓就会报错。 所以在ECN开仓不允许设置止损止盈的情况下,编写其ea程序时,就要多一套处理程序,在OrderSend()函数内将止损止盈设为0 ,然后单独写个函数来查找对应特征的订单,并对其进行修改添加上止损止盈。 如果你在ECN账号下使用别人提供的或者网上下载来的EA,且ECN账户开仓不能设置止损止盈,而EA本身又没有编写修改订单添加止损止盈的程序,那么可以尝试将止损止盈设置为0,然后多打开一个图表,下载安装添加止损止盈 EA也是同样可以解决问题的。 |