Новая версия платформы MetaTrader 5 build 2980: Push-уведомления о торговых операциях - страница 49

 
fxsaber #:

Профайлер (а значит и релиз) включает в себя закомментированный код!


Если нужен исходник, готов скинуть в ЛС.

Да, нужен исходник, предоставьте пожалуйста мне на исследование

 
Ilyas #:

Да, нужен исходник, предоставьте пожалуйста мне на исследование

Отправил в ЛС.

 

v3032

Размер релизной версии увеличился. в 2 раза. 

вернули  32? 

 

Проблема при работе с Хендлами индикаторов

При запросе хендла другого индикатора не возможно удалить индикатор инициировавший запрос. 

Если точнее то индикатор удаляется с графика но OnDeinit не вызывается и индикатор продолжает работать....

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

  • Выпуск Windows 11 Pro
  • Версия 21H2
  • Дата установки ‎10.‎09.‎2021
  • Сборка ОС 22000.184
  • Взаимодействие Windows Feature Experience Pack 1000.22000.184.0

#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers      0
#property indicator_plots        0
//************************************************************************************************/
//                                                                                               */
//************************************************************************************************/
struct indicators
  {
   string            m_name;
   int               m_handle;
  };
indicators        ind[];
int  m_indicators_total;
//************************************************************************************************/
//                                                                                               */
//************************************************************************************************/
int OnInit()
  {
   EventSetTimer(1);
   Print("OnInit");
   return(INIT_SUCCEEDED);
  }
//************************************************************************************************/
//                                                                                               */
//************************************************************************************************/
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
   Print("OnCalculate");
   return(rates_total);
  }
//************************************************************************************************/
//                                                                                               */
//************************************************************************************************/
void OnTimer()
  {
   Print("OnTimer");
   int m_window_total     = (int)::ChartGetInteger(0, CHART_WINDOWS_TOTAL);
   int total = 0;

   for(int i = 0; i < m_window_total; i++)
     {
      if((total =::ChartIndicatorsTotal(0, i)) > 0)
        {

         ::ArrayResize(ind, total, 1000);

         for(int k = 0; k < total; k++)
           {
            // ================================================================
            // === Увеличиваем массив индикаторов
            ind[k].m_name       = ::ChartIndicatorName(0, i, k);
            ind[k].m_handle     = ::ChartIndicatorGet(0,  i, ind[k].m_name);  // Если отключить то все норм
           }
        }
     }

  }
//************************************************************************************************/
//                                                                                               */
//************************************************************************************************/
void OnDeinit(const int reason)
  {
   Print("OnDeinit");
  }
//************************************************************************************************/
//                                                                                               */
//************************************************************************************************/
 
Vladimir Pastushak #:

Проблема при работе с Хендлами индикаторов

При запросе хендла другого индикатора не возможно удалить индикатор инициировавший запрос. 

Если точнее то индикатор удаляется с графика но OnDeinit не вызывается и индикатор продолжает работать....

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

  • Выпуск Windows 11 Pro
  • Версия 21H2
  • Дата установки ‎10.‎09.‎2021
  • Сборка ОС 22000.184
  • Взаимодействие Windows Feature Experience Pack 1000.22000.184.0

Справка по ChartIndicatorGet что говорит?

Документация по MQL5: Операции с графиками / ChartIndicatorGet
Документация по MQL5: Операции с графиками / ChartIndicatorGet
  • www.mql5.com
ChartIndicatorGet - Операции с графиками - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Rashid Umarov #:

Справка по ChartIndicatorGet что говорит?

Спасибо, не сразу понял что создал рекурсию..

 
fxsaber #:

Отправил в ЛС.

Спасибо, исправлено.

Проблема была в координатах кода для операции инициализации статических переменных функций (неверный номер файла)

 

Предположение:
Контекстное меню в редакторе предлагает скопировать весь путь.
Было бы хорошо и полезно, если бы он также предлагал соответствующую команду include, если файл mqh находится в \include\:
Скопируйте директиву include
=> копирует в буфер обмена: #include <Symbol.mqh>

Suggestion:
The context menu in the editor offers to copy the whole path.
It would be nice and helpful if it would also offer the corresponding include command if the mqh file is in \Include\:
Copy include directive
=> copies to the clipboard:  #include <Symbol.mqh>
 
Ilyas #:

Спасибо, исправлено.

Проблема была в координатах кода для операции инициализации статических переменных функций (неверный номер файла)

Отлично, рад внести свой скромный вклад.

В текущем виде, к сожалению, пока не получается использовать профилировщик. Надеюсь, разберетесь с моими, в частности, репортами.


ЗЫ Жаль, до исторических кешей у Вас руки нескоро дойдут.

О профилировщике кода MT5
О профилировщике кода MT5
  • 2021.09.10
  • www.mql5.com
Я начал использовать новый профайлер. В этом разделе мы могли бы централизовать информацию о том, как его правильно использовать...
 

Тестер стратеги, фьючерс на Nasdaq

Тестирование в режиме Прибыль в пипсах для ускорения тестирования

Тоже самое но без этой галочки

Разве после проведения теста результаты в писпах не должны переводиться в USD ?

А то долго понять не мог почему на двух терминалах очень разные тесты....

Оказалось что на одном была включена эта функциональность.