[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 213

 
Sergey_Rogozin:

我已经想好了。起初只是不经意地看了一下。

我没有看到这个错误。

那么我想知道为什么订单没有被删除?我可以发布整个EA的代码,但这有意义吗?
 
dzhini:
我想知道为什么这些订单没有被删除?我可以列出整个EA的代码,但这有意义吗?

试着把你的条件写在开头。在我看来,你不需要上述for()循环在开始的时候。


      if(CalculateCurrentOrders(Symbol())>0) {Alert(CalculateCurrentOrders(Symbol()));ClosePendingOrder(OP_SELLLIMIT);} // (1) 
      if(CalculateCurrentOrders(Symbol())<0) {Alert(CalculateCurrentOrders(Symbol()));ClosePendingOrder(OP_BUYLIMIT);} //(2) 
      if(TimeCurrent() - OrderOpenTime()>=HowManyHours*60*60) {ClosePendingOrder(OP_BUYLIMIT);ClosePendingOrder(OP_SELLLIMIT);} //(3

只要在一开始就设定好就可以了。

 

嘻嘻...这正是它所不具备的。那么它怎么会在没有循环的情况下通过订单呢?由于我们假设可能有大量的订单,而且我们想避免使用神奇的符号作为单独的标签,所以主要的标签是货币符号和订单类型。基本上,它与他们一起工作,但我意外地发现它不会与上述组合一起工作。我无法理解错误在哪里。如果我搞不清楚,我就去找真正的专家。

如果你真的感兴趣,我可以把猫头鹰的代码贴出来......让我们把它拆开...它将是有用的。

 
dzhini:

嘻嘻...这正是它所不具备的。那么它怎么会在没有循环的情况下通过订单呢?由于我们假设可能有大量的订单,而且我们想避免使用神奇的符号作为单独的标签,所以主要的标签是货币符号和订单类型。基本上,它对这些都有效,但我们意外地发现,它对上述组合不起作用。我不明白错误在哪里。如果我搞不清楚,我就去找真正的专家。

如果你真的感兴趣,我可以发布猫头鹰的代码......让我们把它拆开......这将是有用的。

我现在懒得去查了。

你有一个循环,通过操作类型和 函数中设置的符号 进行选择。

在开始的时候,你只规定了那些条件,在满足这些条件的情况下,你需要执行的动作,即ClosePendingOrder(OP)

或者你可以通过魔术师的订单搜索,执行 满足条件的订单

 

伙计们,成立外国经纪公司......非常大的钱,不想付税....))谁在Metatrader 4上工作......))

 
Vovo4ka:

伙计们,成立外国经纪公司......非常大的钱,不想付税....))谁在Metatrader 4上工作......))

有很多这样的人。

谷歌会引导你很容易找到它们。

缴纳税款,睡个好觉...

 

下午。如果我已经有5个买入和5个卖出的市场订单,只要至少有一个订单关闭,EA就会按照订单关闭的方向继续下达挂单,如此循环下去,请告知如何 "强制 "EA停止下达挂单。(现在,我已经以正确的形式发布了代码)

//----------------------------------------------------------------------- проверка установленных стоп ордеров

double StopOrderUp,StopOrderDn,price,MinBuyOrder=1000000000,MaxSellOrder,OldBuyOrder,OldSellOrder,OldBuyLot,OldSellLot;

int TicketUp,TicketDn;

TimeOllOpenBuy=0;TimeOllOpenSell=0;

double OOL_BUYSTOP,OOL_SELSTOP;

for (i=0; i<OrdersTotal(); i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)

{ price = OrderOpenPrice();

if (Magic==OrderMagicNumber() && OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUYSTOP ) {StopOrderUp = price; TicketUp=OrderTicket(); OOL_BUYSTOP=OrderLots();}

if (OrderType()==OP_SELLSTOP) {StopOrderDn = price; TicketDn=OrderTicket(); OOL_SELSTOP=OrderLots();}

if (OrderType()==OP_BUY )

{ TimeOllOpenBuy = TimeOllOpenBuy + TimeCurrent()-OrderOpenTime();

if (MinBuyOrder > price) MinBuyOrder = price;

OldBuyOrder=price;

OldBuyLot=OrderLots();

if (DrawInfo&&!IsTesting()){

NameLine="ордер Bay "+OrderTicket();ObjectDelete(NameLine);ObjectDelete(NameLine+" з");

ObjectCreate(NameLine, OBJ_TREND, 0, OrderOpenTime(),price,Time[0],Bid);

ObjectSet(NameLine, OBJPROP_COLOR,LightSkyBlue);

ObjectCreate(NameLine+" з",OBJ_ARROW,0,Time[0],Bid,0,0,0,0);

ObjectSet(NameLine, OBJPROP_STYLE, STYLE_DOT);// Стиль

ObjectSet(NameLine, OBJPROP_RAY, false); // Луч

ObjectSet(NameLine+" з",OBJPROP_ARROWCODE,3);ObjectSet(NameLine+" з",OBJPROP_COLOR,WhiteColor);}

}

if (OrderType()==OP_SELL)

{ TimeOllOpenSell = TimeOllOpenSell + TimeCurrent()-OrderOpenTime();

if (MaxSellOrder < price) MaxSellOrder = price;

OldSellOrder=price;

OldSellLot=OrderLots();

if (DrawInfo&&!IsTesting()){

NameLine="ордер Sell "+OrderTicket();ObjectDelete(NameLine);ObjectDelete(NameLine+" з");

ObjectCreate(NameLine, OBJ_TREND, 0, OrderOpenTime(),price,Time[0],Ask);

ObjectSet(NameLine, OBJPROP_COLOR,Pink);

ObjectCreate(NameLine+" з",OBJ_ARROW,0,Time[0],Ask,0,0,0,0);

ObjectSet(NameLine, OBJPROP_STYLE, STYLE_DOT);// Стиль

ObjectSet(NameLine, OBJPROP_RAY, false); // Луч

ObjectSet(NameLine+" з",OBJPROP_ARROWCODE,3);ObjectSet(NameLine+" з",OBJPROP_COLOR,WhiteColor);}

}

}

}

}

if (MinBuyOrder==1000000000 && MaxSellOrder==0 && OOL_BUYSTOP!=OOL_SELSTOP)//если серия закрылась

{

DELETEORDERS();

}
 

伙计们,又出现了一个问题。例如,包括Alpari在内的一些经纪商为他们的客户提供浮动点差....,与此相关,我的顾问不工作...(( )

他们有一个浮动的数字,只是破坏了整个事情...((((

 
问题是什么? 重做EA...
 
eddy:
问题是什么? 重做EA...


这就是问题所在,重新制作在任何地方都可以,但浮动的就不行了(()。