任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 162

 
ALXIMIKS:

+ 我在某处读到,在选择时也要检查开放票据的OrderClosetime(他们有=0),这很有用
这是为了按票选择。这里是按指数选择。
 

你好!

像往常一样需要帮助,不知道如何通过神奇的数字正确选择挂单。谁能把代码发给我,让我看看如何通过实例来做。提前感谢)。

 
zaqwsx123:

你好!

像往常一样,我需要帮助,我不知道如何正确地通过神奇的数字选择待定订单。谁能把代码发给我,让我看看如何通过实例进行操作。提前感谢)。


alximiks 11.09.2013 21:36 #

void DeletePendingOrders()
{
    int NumberOfTry,
        err,
        ticket;

   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i, SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderMagicNumber() != i_magic) continue;
      if (OrderSymbol() != Symbol()) continue;
      if (OrderType() > 1)
      {
         ticket = OrderTicket();
         NumberOfTry=0;

         while (NumberOfTry < 5)
         {
            while (!IsTradeAllowed()) Sleep(5000);
      
            if (OrderDelete(ticket, Red))
                breake;
            else
                err = GetLastError();
      
            if (err > 0)
            { 
              Print(NumberOfTry," #",ticket," Error modifing order: (", err , ") ");
              Sleep(5000);  NumberOfTry++;
            }
         }
      }
   }
}

有人曾就这段代码寻求帮助,这是一个关于如何删除所有挂单的例子

我不知道测试器中的代码是否总是足够的,我不会说真实的代码。

 
ALXIMIKS:

有人曾向我求助于这段代码,这里有一个如何删除所有挂单的例子

我不知道代码在测试器中是否总是足够的。

我不明白,如果你对代码没有把握,为什么要把它展示给提问者?答案应该永远是正确的,而不是 "也许会成功 - 我在那里犯了一些错误"...
 
zaqwsx123:

你好!

像往常一样,我需要帮助,我不知道如何正确地通过神奇的数字选择待定订单。谁能把代码发给我,让我看看如何通过实例来做。预先感谢)

它选择最后打开的任何给定订单,并返回其票据。如果没有这样的顺序,它返回-1。

//-----------------------------------------------------------------------------+
int GetTicketLastOpenOrder(string sy, int op, int mn) {
   int   i, j=-1, t=0, k=OrdersTotal()-1;
   for (i=k; i>=0; i--) {                       // цикл от конца к началу
      if (OrderSelect(i,SELECT_BY_POS)) {
         if (OrderMagicNumber()!=mn)   continue;// если магик не тот - переходим к следующему
         if (OrderSymbol()!=sy)        continue;// если символ не тот - переходим к следующему
         if (OrderType()!=op)          continue;// если тип не тот - переходим к следующему
         if (t<OrderOpenTime()) {   // выбран нужный, ...
            t=OrderOpenTime();      // ... ищем последний ...
            j=i;                    // ... открытый ордер
            }
         }
      else Print("FUNC GetTicketLastOpenOrder() ошибка выбора ордера "+GetLastError());
      }
   if (OrderSelect(j,SELECT_BY_POS)) return(OrderTicket()); // если найден ордер, вернём его тикет
   return(-1);                                              // иначе - возвращаем -1
}
//-----------------------------------------------------------------------------+
 
artmedia70:
老兄,我不明白,如果你对代码不确定,为什么要给问问题的人看?答案应该永远是正确的,而不是 "也许会成功 - 我在那里犯了一些错误"...

好吧,这就是这个人宣扬自己的方式。

他已经在这里展示了他的傲慢。

 
PapaYozh:

好吧,这就是这个人宣扬自己的方式。

他在这里已经显示了他的傲慢。

嗯......有些人打他们的妻子,有些人在论坛上喋喋不休,有些人制造革命......人们是不同的。每个人都有自己的想法。
 
artmedia70:
好吧......有人打老婆,有人在论坛上喋喋不休,有人搞革命 ....人们是不同的。每个人都有自己的想法。

如果有人在晚上提出问题,答案并不复杂,但由于我没有经验,纯粹是出于原则,我不能保证代码的100%正确性。

他最好等8个小时才得到专业人员的答复?

或者他们可以快速帮助我把代码弄好(如果一个开发人员不是无药可救的话......)。

我选择了第二个选项,我认为这是有道理的,想你所想,做你的快乐。

 
ALXIMIKS:
artmedia70:
嗯......有些人打他们的妻子,有些人在论坛上喋喋不休,有些人在制造革命......人们是不同的。每个人都有自己的想法。

如果有人在晚上提出问题,答案并不复杂,但由于我没有经验,纯粹是出于原则,我不能保证代码的100%正确性。

他最好等八个小时才能得到专业人士的答复?

当然,一个新手最好等到早上在别人的代码中寻找错误,而不是睡个好觉,得到一个合格的答案。

我的意思是,当你回答一个初学者时,考虑到他可能根本没有什么经验。

 

有一个库hoz_LoggingToAnywhere@Library.mq4,它是由头文件hoz_Base@Include.mqh 调用的。

当编译库hoz_LoggingToAnywhere@Library.mq4,我在日志中看到了它。

'StringConcatenate' - incompatible types        D:\Insall'd soft's\Forex\MetaTraderForProgramming\experts\include\hoz_Base@Include.mqh (75, 12)

我去那里...在那里我看到了。

   //---- Контролируем возможные ошибки
   fPrint (StringConcatenate ("fInitBase() => ", fErrorToString (bi_Err)));

从其他库中 调用这个fPrint 函数,在任何地方都不会受到责备,但从头文件中......会受到 责备。为什么会这样呢?它已经被复制到字符之间了...