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

 

然后,他还需要使信息的输出不是通过评论,而是通过对象,而且是以更大的方式。

一个人永远不会学会用这样的方式思考。

 
artmedia70:
请记住,这个变量在重启时将被重新初始化。因此,这种方法对于测试人员来说是可以接受的,但对于真正的交易来说是不行的。


谢谢你的信息,那么该怎么做呢?我应该把这个值写进GV吗?或者是否有一些其他的选择来进行真正的交易...

 
ALXIMIKS:

谢谢你的信息,那我应该怎么做?在GV中的得分值?还是有一些其他的选择是真正的...
忘记全球的旗帜。我不知道你为什么需要旗子,也不知道它们表示什么。这就是为什么很难就你的情况提出建议。
 
Zolotai:
朋友们,你们能建议一个指标吗?它是基于两张幻灯片。当它穿过时,它以箭头的形式给出了方向。找不到了,谢谢。
i-PSI@MA_Signal 从这里
 
ALXIMIKS:

日安,如果不是太难的话,请给一个新手提供建议。

1) 如何声明一个大小等于某个变量值的数组?(如果i=7声明数组双Muss[7],以此类推)。

已回答

2) 如果条件总是假的,为什么用户函数中的数组被认为是充分声明和使用的?

while (false){

Alert("aaaaaaaaaa")。

static double Buf_max [9000000];

静态双Buf_min [9000000];}静态双Buf_min [9000000];}。

因为它被声明为静态。在MQL中,所有的静态变量 在调用init()函数之前都被初始化了。

3) 在用户函数中和一般情况下,简单数组和静态数组有什么区别吗?

一个简单的数组将在你第一次进入声明它的函数时被初始化。然而,在退出时,如果你之前已经调整了它的大小,新的值不会被重置,下次调用该函数时,数组的大小将与我们上次离开时一样。

也就是说,大体上,简单和静态的区别只在初始化的时刻。

 
对于错误 "1"-->(没有错误,但结果未知) 可以做什么
 

我在这里写了一个删除待定订单的 函数。但由于某些原因,它并没有删除它们。以下是代码。

void DeletePendingOrders()
{
    int NumberOfTry = 0,
        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();
      
         while (NumberOfTry < 3)
         {
            while (!IsTradeAllowed()) Sleep(5000);
      
            if (OrderDelete(ticket, Red))
                NumberOfTry = 3;
            else
                err = GetLastError();
      
            if (err > 0)
            { 
              Print(NumberOfTry," #",ticket," Error modifing order: (", err , ") ");
              Sleep(5000); RefreshRates(); NumberOfTry++;
            }
         }
      }
   }
}

为什么它不能正常工作?我知道可以用不同的方式重写,但我想了解为什么这段代码不能实现其目的。

 
hoz:

我在这里写了一个删除待定订单的函数。但由于某些原因,它并没有删除它们。以下是代码。

为什么它不能正常工作?我明白可以用不同的方式重写,但我想了解为什么这段代码不能按预期工作。

我将插入一行,以便不特别改变代码。

            while (!IsTradeAllowed()) Sleep(5000);
            err=0;
            if (OrderDelete(ticket, Red))
                NumberOfTry = 3;
            else
                err = GetLastError();
      
            if (err > 0)
 
Sepulca:

我本想插入一行,以便不特别改变代码。


而这将给我们带来什么?仍然没有关闭订单,也没有错误。

代码已被修改。

void DeletePendingOrders()
{
    int NumberOfTry = 0,
        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();
      
         while (NumberOfTry < 3)
         {
            while (!IsTradeAllowed()) Sleep(5000);
                err = 0;
              Print("IsTradeAllowed() = ", IsTradeAllowed());
              Print("err = ", err);

            if (OrderDelete(ticket, Red))
            {
                NumberOfTry = 3;
                Print("NumberOfTry", NumberOfTry);
            }
            else
            {
                err = GetLastError();
                Print("err = ", err);
            }
      
            if (err > 0)
            { 
              Print(NumberOfTry," #",ticket," Error modifing order: (", err , ") ");
              Sleep(5000); RefreshRates(); NumberOfTry++;
            }
         }
      }
   }
}

记录本的右侧部分。

2013.09.11 22:24:19     2012.01.02 08:05  Perevorot EURUSD,M5: modify #10 sell stop 0.01 EURUSD at 1.29279 sl: 0.00000 tp: 1.29179 ok
2013.09.11 22:24:19     2012.01.02 08:05  Perevorot EURUSD,M5: open #10 sell stop 0.01 EURUSD at 1.29279 ok
2013.09.11 22:24:19     2012.01.02 08:02  Perevorot EURUSD,M5: Ôóíêöèÿ DeletePendingOrders çàâåðøåíà
2013.09.11 22:24:19     2012.01.02 08:02  Perevorot EURUSD,M5: NumberOfTry3
2013.09.11 22:24:19     2012.01.02 08:02  Perevorot EURUSD,M5: delete #9 sell stop 0.64 EURUSD at 1.29279 sl: 0.00000 tp: 1.29179 ok
2013.09.11 22:24:19     2012.01.02 08:02  Perevorot EURUSD,M5: err = 0
2013.09.11 22:24:19     2012.01.02 08:02  Perevorot EURUSD,M5: IsTradeAllowed() = 1
2013.09.11 22:24:19     2012.01.02 08:02  Perevorot EURUSD,M5: Ôóíêöèÿ ClosePosBySortLots çàêðûëà âñå ðûíî÷íûå îðäåðà
2013.09.11 22:24:19     2012.01.02 08:02  Perevorot EURUSD,M5: close #3 sell 0.01 EURUSD at 1.29303 tp: 1.29203 at price 1.29487
2013.09.11 22:24:19     2012.01.02 08:02  Perevorot EURUSD,M5: close #4 buy 0.02 EURUSD at 1.29403 tp: 1.29503 at price 1.29480
2013.09.11 22:24:19     2012.01.02 08:02  Perevorot EURUSD,M5: close #5 sell 0.04 EURUSD at 1.29286 tp: 1.29186 at price 1.29487
2013.09.11 22:24:19     2012.01.02 08:02  Perevorot EURUSD,M5: close #6 buy 0.08 EURUSD at 1.29386 tp: 1.29486 at price 1.29480
事实证明,该命令已被删除。但有一点。还有一个人,另一个人。但它没有被删除。但这个周期是针对所有的订单。
 

注意你的NumberOfTry 变量

它必须对每张票 进行清零,否则它将被分配一个3或更大的值,并且进一步的条件将不会对所有票执行。

只有一个能满足条件