Новая версия платформы MetaTrader 4 build 1340 - страница 3

 
fxsaber:

Просьба исправить.

Исправлено, ждите следующий билд, пожалуйста.

 

Посмотрите, пожалуйста, функцию отслеживания объектов.

Возникает проблема (сильные тормоза вплоть до зависания) в отслеживании удалений объектов bmp (чаще всего когда их много) при использовании советника (с графикой bmp) и 2-х подобных индикаторов.

Переводил всю графику советника в индикатор и при использовании 3-х индикаторов проблемы нет. А вот, когда продукт - советник, то уже идёт внутренняя борьба.

К сожалению, пока нет времени написать прототипы под это дело, а оригиналы дать не могу, т.к. многолетние продукты, ждущие своё время на публикацию.


Могу только дать такой другой пример.

В первом изменяются объекты, в другом - удаляются и создаются. Во втором прототипе сразу зависает терминал.

Пример первого - всё летает.

Если сможете что-то сделать с терминалом, чтобы второй прототип "Объекты-удаляются-и-создаются-(зависнет).mq4" (в прикреплении) летал, то это будет качественный рывок вперёд и сильно ускорит множество продуктов.


Также посмотрите и попробуйте решить следующую проблему рисования линий через буферы. Это касается всех версий терминалов МТ4 и МТ5.

Чем толще линии, тем медленнее работает изменение масштаба. Сузьте график и попробуйте менять масштаб, всё увидите.

С объектами такой проблемы нет. Любая толщина и всё летает, как и буферное рисование с тонкими линиями.

Файлы:
 

MetaTrader 4 build 1340

Не возможно найти индикатор на своем/другом графике.

Код для воспроизведения.

//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
 
long window[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   EventSetTimer(1);
 //  IndicatorShortName("Test");
 //  IndicatorSetString(INDICATOR_SHORTNAME,"Test");
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   return(rates_total);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTimer()
  {
   Print(" ======================================================== ");

   long currChart = ChartFirst();
   int i = 0;
   while(i < CHARTS_MAX)
     {
      ArrayResize(window, i + 1);
      window[i] = currChart;
      currChart = ChartNext(currChart);
      if(currChart == -1)
         break;
      i++;
     }

   for(int k = 0; k < ArraySize(window); k++)
      if(ChartWindowFind(window[k], MQLInfoString(MQL_PROGRAM_NAME)) >= 0)
         Print("Индикатор " + MQLInfoString(MQL_PROGRAM_NAME) + " ПРИСУТСВУЕТ на графике " + (string)window[k]);
      else
         Print("Индикатор " + MQLInfoString(MQL_PROGRAM_NAME) + " ОТСУТСВУЕТ на графике " + (string)window[k]);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

Результат

2021.08.05 12:49:31.606 Test EURUSD,M1: Индикатор Test ОТСУТСВУЕТ на графике 132292606219765167
2021.08.05 12:49:31.605 Test EURUSD,M1: Индикатор Test ОТСУТСВУЕТ на графике 132292606219765166
2021.08.05 12:49:31.605 Test EURUSD,M1: Индикатор Test ОТСУТСВУЕТ на графике 132292606219765165
 

После вставки скопированного часть кода компилятор ничего не компилирует если закрыть едитор спрашивает сохранить изминения или нет нажимаю сохранить не сохраняет и не закрывается. Если внести изменения в любом виде тоже не компелируется .

 MetaTrader 4 build 1340

 
Golden Ratio:

После вставки скопированного часть кода компилятор ничего не компилирует если закрыть едитор спрашивает сохранить изминения или нет нажимаю сохранить не сохраняет и не закрывается. Если внести изменения в любом виде тоже не компелируется .

 MetaTrader 4 build 1340

Решил только так.

Создал новый проект в новом билде МТ едитор  и перенес вес текст кода . Теперь все нормально

 
Golden Ratio:

После вставки скопированного часть кода компилятор ничего не компилирует если закрыть едитор спрашивает сохранить изминения или нет нажимаю сохранить не сохраняет и не закрывается. Если внести изменения в любом виде тоже не компелируется .

 MetaTrader 4 build 1340


У меня проблем не было. Копировал части кода и компилятор нормально работает.

 
Прошу прошения . Все файлы терминала случайно провел под скрытые .Перевел обратно все как прежде можно редактировать.
 
1340
при запуске советника = "Global initialization failed"
при компиляции файлов в MetaEditor = "ext_init_ea"
 
Vladislav Shablinsky:
1340
при запуске советника = "Global initialization failed"
при компиляции файлов в MetaEditor = "ext_init_ea"

В коде есть DebugBreak();?

 

В Билде 1340 есть проблема с советником 

И в терминале в разделе сообщений  выдаёт  сообщение об этой ошибке " global initialization failed "

Попытки удаления советника и установка заново не запускается.

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