新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 540

 
Rustam Bikbulatov:

谢谢!!!!!,现在我试着把它挤进我的代码!为什么在第一行(void)?

如果函数名称说它考虑买入订单,为什么还要指定订单类型
 
Artyom Trishkin:
如果函数名称说它考虑买入订单,为什么还要指定订单类型

名称可以在几秒钟内改变,但代码本身是一个问题

 
Rustam Bikbulatov:

你可以在几秒钟内改变名称,但代码本身有问题

问题不是出在代码上,而是出在你对你所做的事情的理解上 :)

//+------------------------------------------------------------------+
int fMarketOrdersOpen(const ENUM_ORDER_TYPE order_type)
  {
   int total=OrdersTotal(), count=0;
   for(int i=total-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS))
        {
         if(OrderType()!=order_type) continue;
         if(OrderMagicNumber()==123 && OrderSymbol()==Symbol())
            count++;
        }
     }
   return count;
  }
//+------------------------------------------------------------------+
 
Rustam Bikbulatov:
伙计们。我的大脑已经开始冒泡了(((请告诉我如何使用这个订单数量 的定义。

使得体积的数量以手为单位?有什么需要改变或调整的?

double fMarketOrdersOpenB(int type){
   double c=0,aBuyCount=0;
   for(int i=0;i<OrdersTotal();i++){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==123){
            switch(OrderType()){
               case OP_BUY:aBuyCount+=OrderLots();break;
              }}}else{return(-1);}}
   if(type==OP_BUY)c=aBuyCount;return(c);}

如果你未能选择至少一个订单,这个函数将返回-1。

如果类型对应于OP_BUY - 你将得到买入手数的数量。

如果类型的值不同,该函数将返回0。

如果我没有理解错的话--将单位数改为BUY订单的批次数
 
Kirill Belousov:

如果至少有一个订单没有被正确选择,函数将返回-1。

如果类型对应的是OP_BUY - 你将得到买入的手数。

如果类型的值不同,这个函数将返回0。

如果我没有理解错的话,就是把件数改为BUY订单的批数。

是的,没错,我想不出来了

 
Artyom Trishkin:

问题不在于代码,而在于你对你所做的事情的理解:)

我同意我并不完全了解编程。好吧,这不是我的事((((。

 
最初,这个代码
int fMarketOrdersOpenB(int type){
   int c=0,aBuyCount=0;
   for(int i=0;i<OrdersTotal();i++){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==123){
            switch(OrderType()){
               case OP_BUY:aBuyCount++;break;
              }}}else{return(-1);}}
   if(type==OP_BUY)c=aBuyCount;return(c);}

我需要插入

     .........
double lts=fMarketOrdersOpenB(OP_BUY);
   if(lts>0){
         int irv2=OrderSend(Symbol(),OP_BUY,lts,Ask,3,0,0,NULL,123,0,CLR_NONE);}

我的代码打印了订单的数量,但我需要所有买入订单的批量。

 
Rustam Bikbulatov:
这个代码最初是

我需要插入

我的代码打印了订单的数量,我需要所有买入订单的批量。

最重要的是要提出正确的问题。

自己找出 需要什么

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
 
Vitaly Muzichenko:

最重要的是要提出正确的问题。

自己看自己需要什么

见过并试过。已经帮助了很多,但我的理解有一个限度

 
Rustam Bikbulatov:
伙计们。我的大脑已经沸腾了(((你能告诉我如何使这个定义中的订单数 吗?

使得体积的数量以手为单位?有什么需要改变或调整的?

double fMarketOrdersOpenB(const ENUM_ORDER_TYPE type)
{
     double lots=0;
     for(int i=0;i<OrdersTotal();i++)
     {
          if( !OrderSelect(i,SELECT_BY_POS,MODE_TRADES) )   continue;
          if( OrderSymbol()!=Symbol() )                     continue;
          if( OrderMagicNumber()!=123 )                     continue;
          if( OrderType() != type )                         continue;
          lots += OrderLots();
     }
     return(lots);
}