Ошибки, баги, вопросы - страница 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

Запускаю тест на 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


Запускаю тест на EURUSD:

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

Вы интересный автор, самый интересный здесь., задали вопрос Владиславу, мне тоже интересно по мультивалютнику, т.к. есть нюансы по новому бару и по непримености всех нужных баров

Ок. Ответ выше.

Причина обращения: