错误、漏洞、问题 - 页 2650

 
你能告诉我错误在哪里吗,是在MQL4还是MQL5?
struct A
{
  static const int Array[];
};

static const int A::Array[] = {0};

struct B : public A
{  
  int i[sizeof(B::Array)]; // MQL5 - ok, MQL4 - ok.
  int j[sizeof(A::Array)]; // MQL5 - ok, MQL4 - error.
};
搜索字符串:Oshibka 004。
 
fxsaber:

你能不能也研究一下这个问题?


在我的要求下,版主正在用手更新。但我不可能每次都问。机器没有通过。

纠正了。

 
Anton:

纠正了。

我明白了,谢谢你。

 
Andrey Khatimlianskii:

在所有使用的工具的刻度上。


这是我的代码,用于检查新的刻度线。

void OnTimer()
  {
//+------------------------------------------------------------------+
// Перебор всех символов, которые указаны в внешних переменных
// Recursion of all symbols that are specified in external variables
//+------------------------------------------------------------------+
   string SymbolToTick="";
   for(int si=0; si<12; si++)
     {
      if(si==0)
         SymbolToTick=PAIR1;
      if(si==1)
         SymbolToTick=PAIR2;
      if(si==2)
         SymbolToTick=PAIR3;
      if(si==3)
         SymbolToTick=PAIR4;
      if(si==4)
         SymbolToTick=PAIR5;
      if(si==5)
         SymbolToTick=PAIR6;
      if(si==6)
         SymbolToTick=PAIR7;
      if(si==7)
         SymbolToTick=PAIR8;
      if(si==8)
         SymbolToTick=PAIR9;
      if(si==9)
         SymbolToTick=PAIR10;
      if(si==10)
         SymbolToTick=PAIR11;
      if(si==11)
         SymbolToTick=PAIR12;
     
      if(SymbolToTick=="" && si==0)
        {
         SymbolToTick=Symbol();
        }
      if(SymbolToTick=="")
         continue;
      //|#############################################################################################+
      // проверяем текущий Бид Аск
      MqlTick last_tickSymbol;
      SymbolInfoTick(SymbolToTick,last_tickSymbol);
      double currentBid=last_tickSymbol.bid;
      double currentAsk=last_tickSymbol.ask;

      //|#############################################################################################+
      // Если тик изменился, запускаем тик этого символа
      if(currentBid!=LastBid[si] || currentAsk!=LastAsk[si])
        {
         // Запускаем исполнение тика
         OnTickSymbol(si,SymbolToTick);
         LastBid[si]=currentBid;
         LastAsk[si]=currentAsk;
         TicksAllNumbers[si]++;
        }
      //|#############################################################################################+
     }
  }


创建了一个数组,用于测试所计数的蜱虫数量。


测试两个货币对 EURUSD GBPUSD

在英镑兑美元上运行一个测试。

2020.02.18 14:01:03.802	Core 1	2020.02.16 23:59:58    TICKS EURUSD TicksAllNumbers=621120
2020.02.18 14:01:03.802	Core 1	2020.02.16 23:59:58    TICKS GBPUSD TicksAllNumbers=1143002


在欧元兑美元上运行一个测试。

2020.02.18 14:01:37.129 Core 1  2020.02.16 23:59:58    TICKS EURUSD TicksAllNumbers=621120
2020.02.18 14:01:37.129 Core 1  2020.02.16 23:59:58    TICKS GBPUSD TicksAllNumbers=1143002


虱子似乎是一样的。 .........所以我一定是错过了什么东西.....

谢谢,我将继续挖掘。



决定:_Digit在代码中,我一定是在不看的情况下把它加到环境.....。

不需要评论 :-)

 
Anton:

将存档中的mql5pack-ico.zip文件移至文件夹。

将此文件移至MQL5/Scripts文件夹。这并没有什么帮助。然后把它移到MQL5/Files文件夹中--也没有帮助。

我可能不明白它是怎么回事。

 
Stanislav Korotky:

把它移到了MQL5/Scripts文件夹中。没有帮助。

固定的。

 

Konstantin Gruzdev

你是一个有趣的作者,是这里最有趣的作者。向弗拉迪斯拉夫问了一个问题,我也对多币种感兴趣,因为在新条和不适用所有必要条上有细微的差别

 
多币种问题仍然悬而未决,MQ由于某种原因不想给出信号,我更希望程序员能用时间和间谍问题来填补。这应该不会持续太久。
 
Vladislav Andruschenko:
通过定时器是的。
更有可能增加定时器频率 ......
它少了些许的刻度。这就是为什么在结果上有差异。差异非常小。但只要跳过1个刻度,一切就会被颠覆。

频率会提高结果并不是事实,但肯定会减慢测试的速度。计时器事件并不完美,几乎总是会有一个错误。 即使在一个空的计时器上,你也可以看到错误。如果定时器功能内有计算,误差率可能会更高。 给计算机加载第三方任务也会影响计时器。有可能不是所有的开仓/平仓/修改信号都会在同一时间和同一点位上出现。

值得一提的是,几年前我在一个同时使用近30种工具的重型多货币工具上做了所有这些观察。结果只有在计时器关闭时才匹配。我想,现在没有什么变化。

 
Fast235:

Konstantin Gruzdev

你是一个有趣的作者,是这里最有趣的作者。向弗拉迪斯拉夫问了一个问题,我也对多币种感兴趣,因为在新条和不适用所有必要条上有细微的差别

好的。上面的答案。