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

 
VOLDEMAR:

是的,如果你把它设置为x=0,它就会归零,如果你只是把它设置为x:,它就不会归零,它会上升。


对不起,我没有注意到它是在启动核心....。
 
我相信它会重置。 谢谢大家,这有点搞笑了。
 
int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;
int start()
  { 
int    X=0; 
double price=(Ask+Bid)/2;      
int total=OrdersTotal();                                         
                                       
   for (int i=total-1; i>=0; i--)                                 
   {
    if(OrderSelect(i, SELECT_BY_POS))                          
     { 
      Alert ("Uy",i);
      if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol())
       {
       X ++;
       }  
       }
       }
       Alert ("X",X);}

if (X==0)
   {
   tiket= OrderSend( Symbol(), OP_BUYSTOP,  volume*A, price +otstup*Point, Point* 3, R1, price+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000,  expiration, Red); 
   Alert ("OP_BUYSTOP", GetLastError( )); 
   tikett= OrderSend( Symbol(), OP_SELLSTOP,  volume*A, price -otstup*Point, Point* 3,R2, price-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    Alert ("OP_SELLSTOP", GetLastError( )); 
    }       


   return(0);
  

这是正确的方法,!!!!!

 
Dimka-novitsek:
我相信它会重置。谢谢大家,这有点滑稽。
最好使用comment();然后你可以看到在测试过程中你的变量......,在左上方发生了什么。
 
谢谢你!!!。
 
我把你的代码放进去,它没有编译。错误是什么,我不明白。但最主要的是,我还是问,一定有某种逻辑错误,订单是在每个tick上打开的,很可能这部分不工作。
 if(OrderSymbol()==Symbol()&& OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 && OrderSymbol()==Symbol())
这是不工作的部分,我也不能理解?
 
VOLDEMAR:

伙计们一个更复杂的问题......

如何使EA在达到给定利润时关闭所有订单 .... 只关闭一个符号的订单 ...

例子:EA在3个货币对上工作,在一个符号上关闭所有订单100p ...

如果欧元超过100便士,它将只关闭欧元的订单,而其他人可能有200便士......。

如果我采用accbalanse(),那么只有当三个货币对的总和超过100p时,EA才会关闭。这个选项对我不起作用 !!!!

请帮助.........



可能是与
订单利润( )
还有,如果(OrderSymbol()==Symbol()){}虽然我不能自己写...
 

请告知代码中的错误之处。机器人应该关闭一个卖出订单,如果没有,就应该买入。出现了错误4105,我试图处理,但没有结果。也许有其他的方法来处理它?

PRICECURRENTPPROFIT是买入水平。


//ROBOT SELLS
//确定是否有卖单
if (Bid>=PRICECURRENTPPROFIT && PRICECURRENTMPROFIT>0)
{
for(cnt=OrdersTotal(;cnt>=0;cnt--)
{OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); mode = OrderType(); if(OrderSymbol() == "EURUSD")
{if(mode == OP_BUY)
{go=OrderClose(OrderTicket(), Lots, Bid, slippage, Green) ;

}
}
} // 如果打开,关闭
} if(go != true) {Print("Failed to open SELL order.Error N", GetLastError();
switch(GetLastError(){case 4105: OrderSend("EURUSD",OP_SELL,Lots,Bid,2*Point,0,0, "robot sells",MagicNumber,0,Red);break; }
}

 

我想给它添加一些功能,使它能够开放购买和出售,但出售和购买需要一个单独的magicnumber。

如果获利订单被触发,机器人将关闭所有挂单。 我希望它关闭所有挂单OP_SELLLIMIT,并保持OP_BUYLIMIT、OP_BUY不变。

 
Dimka-novitsek:
我把你的代码放进去,它没有编译。错误是什么,我不明白。但最重要的是,我还是问了,一定是有什么逻辑错误,订单是在每个tick上打开的,很可能是这部分没有工作,我也不能理解?
要么是代码没有全部显示出来,要么是最下面的大括号没有结束。