//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 12.03.2008 |//| Описание : Возвращает флаг существования ордеров. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любой ордер) |//| mn - MagicNumber (-1 - любой магик) |//| ot - время открытия ( 0 - любое время установки) |//+----------------------------------------------------------------------------+bool ExistOrders(string sy="", int op=-1, int mn=-1, datetime ot=0) {
int i, k=OrdersTotal(), ty;
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
ty=OrderType();
if (ty>1 && ty<6) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op)) {
if (mn<0 || OrderMagicNumber()==mn) {
if (ot<=OrderOpenTime()) return(True);
}
}
}
}
}
return(False);
}
if(!ExistPositions(Symbol(),-1,44444))OpenPosition(Symbol(),OP_BUY,0.1,Ask-sl*Point,Ask+tp*Point,44444)
罂粟花
因此,它应该检查这个向导是否有任何未结头寸,无论在什么时候打开.....,对向导的简单限制....toast。
如果(ExistPositions(NULL,-1,44444,-1)==false)//如果没有这个神奇数字的未结头寸,则检查......
....,也许我不明白....,我有-1,因为我不关心头寸何时开仓.....,反正它只在新的交易栏和旧的交易栏关闭时开仓,因为条件规定,只有在没有这个神奇数字的开仓头寸时才能开仓。
让它变得更简单:开仓并等待,直到它关闭....。当它关闭,然后再次打开,当然,不应该在每个酒吧打开一个位置与这个魔术师.... - 同样的条件规定,以检查是否有这个魔术师没有打开位置
所以在最后一个参数中填上0,这样在 开仓时 就无所谓了。
所以,在最后一个参数中填上0,这样就不会出现 仓位打开时 的问题了。
我这样做了,但没有帮助,它仍然在每个柱子上生成一个位置。
if(!ExistPositions(Symbol(),-1,44444))OpenPosition(Symbol(),OP_BUY,0.1,Ask-sl*Point,Ask+tp*Point,44444)
罂粟花
它也不起作用,仍然在每条线上盖上交易的印章。
毫无帮助,仍然在每条上盖章
发现错误.....,这都是关于符号的问题,我正在设置,我不在乎寻找什么符号,只要它不与这个魔术师在一起,但当我设置,当前的符号可以开始....,虽然奇怪,因为如果它不在当前的符号上,而是在另一个符号上,那么我们就不必打开交易,直到它在这个魔术师的其他符号上关闭。
我怎样才能在EA中引入一个参数,如带有某些参数的移动平均线的 角度?
这取决于要刺什么)))。
如果已经设置了限制,我如何防止它被设置?