错误、漏洞、问题 - 页 3178

 
Andrei Sokolov #:

现在我遇到一种算法,在OrderSelect() 之后有更多的OrderSelect()调用,所以我认为如果OrderSelect() 之后有更多的OrderSelect()调用,并且封闭的OrderSelect() "选择 "了另一个订单,就需要一个警告

假设你写了一个循环。
for(int i=...; ....; i++) {
...
}
而在循环中,迭代器i在某个条件下会改变其值。
你也需要显示一个警告,你不觉得吗?

 
Sergey Gridnev #:
假设你写了一个循环。
for(int i=...; ....; i++) {
...
}
而在循环中,迭代器i在某个条件下会改变其值。
你认为也必须产生一个警告吗?

+++控制票或相同功能或结构的数组中的函数变量,或病人的温度和压力的x,而不是y。

ZY控制的x或igc)))),而不是温度)))
 
Sergey Gridnev #:
假设你写了一个循环。
for(int i=...; ....; i++) {
...
}
而在循环中,迭代器i在某个条件下会改变其值。
你认为也应该产生一个警告吗?

是的。
,但我认为进一步讨论这个问题没有意义,因为我不认为警告会在这样的条件下实施。

 
Andrei Sokolov #:

是的。
,但我认为进一步讨论这个问题是没有意义的,因为我不认为警告会在这样的条件下实施。

在Bayscore中,这通常是一种伤害,而在这里,自上而下的循环也不会改善编程环境和算法。

这只是算法的严谨性和正确性。再也没有了。对语言的规则和可能性的理解。

 
Andrei Sokolov #:

是的。
,但我认为进一步讨论这个问题没有任何意义,因为我不认为在这些条件下会实施警告。

从一开始,讨论这个问题的意义就完全不存在。你在讨论mql5问题的线程中写了一个关于mql4的问题。如果你从一开始就说这个问题涉及mql4,没有人会回答你。

 
Alexey Viktorov #:

你写了一个关于mql4的问题,在一个讨论mql5问题的主题中。

这一点在哪里有说明?

 
Alexey Viktorov #:

从一开始,讨论这个问题的意义就完全没有。

阿列克谢,首先你试图指出,现在你试图为别人决定哪里有意义,哪里没有意义。

如果没有建设性的答案,你就不能挑起这种无意义的通信。

 
Andrei Sokolov 函数调用,就会显示警告。

昨天整晚都在寻找这个错误,这已经是第二次因为这个原因了。

void Trailing()
{
   for(int i=OrdersTotal()-1; i>=0; i--)
   {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber()==magic)
         {
            if(OrderType() == OP_BUY)
            {
               if(Bid >= GetAveragePrice(OP_BUY)+start_tral_level*Point)//OrderOpenPrice()
               {
                  if(Bid >= OrderStopLoss()+(tral_stop+tral_step)*Point || OrderStopLoss()==0)
                  {
                     if(!OrderModify(OrderTicket(), OrderOpenPrice()
                     , NormalizeDouble(Bid-tral_stop*Point, Digits), OrderTakeProfit(), OrderExpiration())) 
                     {
                        Print("Trailing buy err ", GetLastError());
                     }
                  }
               }
            }
            if(OrderType()==OP_SELL)
            {
               if(Ask <= GetAveragePrice(OP_SELL)-start_tral_level*Point)//OrderOpenPrice()
               {
                  if(Ask <= OrderStopLoss()-(tral_stop+tral_step)*Point || OrderStopLoss()==0)
                  {
                     if(!OrderModify(OrderTicket(), OrderOpenPrice()
                     , NormalizeDouble(Ask+tral_stop*Point, Digits), OrderTakeProfit(), OrderExpiration())) 
                     {
                        Print("Trailing sell err ", GetLastError());
                     }
                  }   
               }   
            }   
         }
      }
   }
}
double GetAveragePrice(int in_type)//расчет средней цены позиций
{
   double dRes=-1;
   double dSum=0;
   double dLot=0;
   double dComission=0;
   double dSwap=0;
   int iTotalPos=OrdersTotal();
   for(int cnt=0;cnt<iTotalPos;cnt++)
   {
      if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) Print( "Error Select Order");
      {
         if(OrderType()==in_type && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
         {
            dSum+=OrderOpenPrice()*OrderLots();
            dLot+=OrderLots();
            dSwap+=OrderSwap();
            dComission+=OrderCommission();
         }
      }    
   }     
   if(in_type==OP_BUY && dLot!=0) dRes=dSum/dLot-dSwap/dLot*Point-dComission/dLot*Point;
   if(in_type==OP_SELL && dLot!=0) dRes=dSum/dLot+dSwap/dLot*Point+dComission/dLot*Point;
   
   return dRes;
}
你已经收到了很多建设性的答案。只剩下鼓手关注这个话题中关于mql4问题的讨论...
 
Alexey Viktorov #:

这段代码清楚地表明,它是关于mql4的。我希望我一开始就注意到了这一点。

你已经收到了很多建设性的答案。只剩下Tumblr关注这个主题中关于mql4问题的讨论...

哪里说只讨论mql5的问题了?

 
Andrei Sokolov #:

那么,哪里说过只讨论mql5的问题?

mql4正在储备中--在论坛上有一个单独的部分 。其他都是mql5