Отладчик в советнике

 

Здравствуйте! Не знаю в чем проблема, может так и должно быть - но тогда не понимаю как отлаживать советника в режиме отладки! Проблема следующая - если ставить точку остановки в событии OnInit() то отладчик работает как надо, а если поставить точку остановки в событие OnTick() то точка остановки не работает. Если так и должно быть - то как отслеживать событие OnTick() в режиме отладки? На форуме люди писали об этом но так ответа никто не дал...



 

Что-то странное - останов должен нормально происходить...

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

 
George Merts:

Что-то странное - останов должен нормально происходить...

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

//+------------------------------------------------------------------+
//|                                                        Debug.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   int array[10];
   ArrayInitialize(array,0);
   for (int i=0;i<10;i++){
   array[i]=i;
   Comment("");
   }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   int array[10];
   ArrayInitialize(array,0);
   for (int i=0;i<10;i++)
   array[i]=i;
   Comment("");
  
  }
//+------------------------------------------------------------------+
 
Tango_X:
   int array[10];
   ArrayInitialize(array,0);
   for (int i=0;i<10;i++)
   array[i]=i;
   Comment("");

Суббота - тики отсутствуют. Написал скрипт -работает... i - меняется, массив присваивается, Comment и Alert выводят данные. Что еще надо?


 
STARIJ:

Суббота - тики отсутствуют. Написал скрипт -работает... i - меняется, массив присваивается, Comment и Alert выводят данные. Что еще надо?


А зачем тогда вообще скрипт нужен, если можно и так в onInit() делать? В любом случае спасибо за Вашу помощь и разъяснения!!!
 
Tango_XА зачем тогда вообще скрипт нужен, если можно и так в onInit() делать? В любом случае спасибо за Вашу помощь и разъяснения!!!
Скрипт был нужен для того, чтобы прояснить ситуацию. Вместо отладчика обычно использую Alert().
 
Tango_X:    Здравствуйте! Не знаю в чем проблема, может так и должно быть ... если поставить точку остановки в событие OnTick() то точка остановки не работает ...

Опытные регулировщики радиоэлектронной аппаратуры при возникновении отклонения в работе вместо вопроса "Где ошибка" ставят более продуктивный вопрос "Что надо сделать, чтобы получить этот эффект". Опытные программисты при отладке программ используют этот же метод. Применительно к данному случаю: чтобы точка останова в ФУНКЦИИ OnTick() перестала работать, надо запретить выполнение этой функции. Ага!!! Ставим Alert() в функцию OnInit() - выполняется. Ставим Alert() в функцию OnTick() - глухо.Ага! Так и есть!!! далее... Как запретить выполнение OnTick() ? Надо прекратить поток тиков. Тики откуда идут? Через интрнет с сервера. Как их прекратить? Ну, например, отключить интернет. Остановить сервер. ... Понял, сегодня суббота!!!