Ошибки, баги, вопросы - страница 1506

 
DV2010:

Прошу простить за неполноту информации.

1. Информация во вкладке "Журнал":

2. Тестируемый на удаление индикатор - штатный Bollinger Bands:

- файл индикатора находится по адресу C:\Program Files\Alpari Limited MT5\MQL5\Indicators\Examples\BB.ex5;

- откомпилированный файл добавляется на график вручную;

- оба файла прикрепляю к данному посту.

3. Полный код эксперта, который удаляет индикатор и на котором обнаруживается баг:

   void OnInit(){
      ChartIndicatorDelete(0,0,"Bollinger Bands");
   } 

Результат теста:

После перетаскивания такого "эксперта" (в приложении - DeleteInd.ex5) на график

добавленный туда до этого вручную Bollinger Bands удаляется, однако график после этого при изменении размеров чарта не масштабируется.

Спасибо за столь подробный и качественно оформленный вопрос (давно так никто не писал!). 

У меня происходит вот, что:

  1. Добавляю вручную индикатор ВВ из папки ...\MQL5\Indicators\Examples\BB.mq5.
  2. Запускаю на этом же графике советник. Сам советник немного дополнил:
    //+------------------------------------------------------------------+
    //|                                                      ProjectName |
    //|                                      Copyright 2012, CompanyName |
    //|                                       http://www.companyname.net |
    //+------------------------------------------------------------------+
    void OnInit()
      {
       ResetLastError();
       if(!ChartIndicatorDelete(0,0,"Bollinger Bands"))
          Print("Error delete BB ",GetLastError());
      }
    //+------------------------------------------------------------------+
    Получаю ошибку

    ERR_CHART_INDICATOR_CANNOT_DEL

    4115

    Ошибка при удалении индикатора с графика


Данная ошибка возникает потому, что после удаления индикатора из советника окно графика на котором был BB мы хоть и видим, но на самом деле оно уже уничтожено. Для проверки нужно после запуска советника переключится на другой профиль в терминале, а потом вернуться обратно (на прежний профиль) - и обнаружить, что график как корова языком слизала.

Моя конфигурация:

2016.02.11 18:47:04.915 Terminal        MetaTrader 5 x64 build 1241 started (MetaQuotes Software Corp.)
2016.02.11 18:47:04.915 Terminal        Windows 10 Pro (x64 based PC), IE 11.63, UAC, Intel Core i3-3120M  @ 2.50GHz, RAM: 785 / 3981 Mb, HDD: 68822 / 233310 Mb, GMT+02:00
2016.02.11 18:47:04.915 Terminal        C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\43B472C43247368C5B97C7F22A1AE963
Файлы:
DeleteInd.mq5  1 kb
 
Karputov Vladimir:

Спасибо за столь подробный и качественно оформленный вопрос (давно так никто не писал!). 

У меня происходит вот, что:

  1. Добавляю вручную индикатор ВВ из папки ...\MQL5\Indicators\Examples\BB.mq5.
  2. Запускаю на этом же графике советник. Сам советник немного дополнил:
    Получаю ошибку

    ERR_CHART_INDICATOR_CANNOT_DEL

    4115

    Ошибка при удалении индикатора с графика


Данная ошибка возникает потому, что после удаления индикатора из советника окно графика на котором был BB мы хоть и видим, но на самом деле оно уже уничтожено. Для проверки нужно после запуска советника переключится на другой профиль в терминале, а потом вернуться обратно (на прежний профиль) - и обнаружить, что график как корова языком слизала.

Моя конфигурация:

При выполнении Вашего кода в журнале получаю только:

2016.02.11 20:14:01.996    Experts    expert DeleteInd (XAUUSD,M1) loaded successfully

А вот после переключения на другой профиль и возвращения обратно окна действительно нет (хотя котировки в нем после добавления эксперта менялись).

То есть получается, что это - баг? Ведь, насколько я понимаю, удаление индикатора функцией ChartIndicatorDelete() к такому нештатному поведению графика вести не должно? Возможно ли его исправить?

 
DV2010:

При выполнении Вашего кода в журнале получаю только:

2016.02.11 20:14:01.996    Experts    expert DeleteInd (XAUUSD,M1) loaded successfully

А вот после переключения на другой профиль и возвращения обратно окна действительно нет (хотя котировки в нем после добавления эксперта менялись).

То есть получается, что это - баг? Ведь, насколько я понимаю, удаление индикатора функцией ChartIndicatorDelete() к такому нештатному поведению графика вести не должно? Возможно ли его исправить?

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

Я сделал переключатель. Но получилось следущее: если я компилирую файл mq4 в папке Experts, то программа работает только как советник, как индикатор (при копировании его в папку Indicators) он даже не устанавливается на график. Но стоит его перекомпилировать в этой папке, то всё ОК. И то же самое с советником, он не устанавливается, если был откомпилирован в папке Indicators. Подскажите, в чём тут дело? Режим компиляции строгий, ошибок нет.

 

В последнем билде MT5 1241 функция ChartIndicatorDelete "портит" график. График не перерисовывается при изменении размеров, график не сохраняется при закрытии терминала и т.п.

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

 
Igor Ramensky:
На деске присоветовали, чтобы файл был один,
А можно поинтересоваться номером заявки в сервисдеске
 
Уважаемые разработчики, подскажите, рекурсия функций и методов класса разрешена в MQL? Делаю рекурсивный вызов метода и получаю переполнение стека.
 
coderex:
Уважаемые разработчики, подскажите, рекурсия функций и методов класса разрешена в MQL? Делаю рекурсивный вызов метода и получаю переполнение стека.

Конечно разрешена. Иначе Вы не получили бы переполнения стека.

А что Вы ожидали?

Вы как-нибудь управляете глубиной рекурсии?

 
Slawa:

Конечно разрешена. Иначе Вы не получили бы переполнения стека.

А что Вы ожидали?

Вы как-нибудь управляете глубиной рекурсии?

я уже разобрался :) извиняюсь конечно что ступил, давно рекурсией не пользовался и про контроль глубины рекурсии совсем забыл...
 
С какой периодичностью можно делать активации ? Или по другому после одной активации через сколько можно сделать следующую по времени ?
Причина обращения: