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

 
Nikolai Semko #:
В индикаторах МТ5 в режиме тестирования с визуализацией можно поймать события  мышки только при нажатой кнопки мышки, но нельзя поймать просто движение мышки.
В советниках МТ5, к сожалению, вообще нельзя ничего поймать. 
Клик по объекту же можно. Если это кнопка) 
 
Artyom Trishkin #:
Клик по объекту же можно. Если это кнопка) 
Так можно.  Придётся так и делать.   В мт4 вообще можно при тестировании с визуализацией есть панелька с инструментами ТА.  Т их можно рисовать.   А в более новой 5 нет такого функционала.

 
Artyom Trishkin #:
Клик по объекту же можно. Если это кнопка) 

хм. Действительно  OBJ_BUTTON работает. Не знал. Спасибо Артем.

 
Иван #:

Уважаемые специалисты, вопрос о структурах. В конструкторе структуры (находящейся в функции OnTick()) для вспомогательных целей я объявляю некоторые статические переменные, значения которых не должны сбрасываться от вызова к вызову, то есть от тика к тику. Тем не менее, это происходит, т.к. я что-то не учитываю (ранее особо не имел дела со структурами). Как решить эту проблему? И вообще - в конструкторах структур допустимы статические переменные?

Ну что, никто не знает? Или, может, я не в ту ветку обратился? Тогда прошу перенести куда следует.
 
Иван #:
Ну что, никто не знает?

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

Тем не менее, описанная вами ситуация не воспроизводится:

void OnStart()
  {
   Print("#1:");
   test();
   Print("#2:");
   test();
   Print("#3:");
   test();
   Print("end");
  }

void test()
  {
   const struct Indies
    {
       double a1,a2;
       bool v1,v2;
       Indies(int PT)
       {
           static int SAR_Old = -1,SAR_M1_Old = -1;
           Print("before: ", SAR_Old," ",SAR_M1_Old);
           SAR_Old = PT; SAR_M1_Old = PT * 2;
           Print("after: ", SAR_Old," ",SAR_M1_Old);
       }
     } Indie(MathRand() % 100);
  }



[edit]

Vladislav Boyko

описывать структуру внутри функции

Наверное более правильно было бы сказать "определять структуру внутри функции". Я немного путаюсь в этих терминах.
 

баг, который работает

#define del(x)  /*x*/
 

про поломанные скользящие средние

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

Звоночки, раз : https://www.mql5.com/ru/forum/160683/page2579#comment_56302328

Два : https://www.mql5.com/ru/forum/483868#comment_56321597 (у ТС очевидно где-то в данных есть EMPTY_VALUE и две AMA не сходятся друг с другом)

"Встроенные" индикаторы с большой долей вероятности будут показывать фигню

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - Попробуйте перезагрузить компьютер.
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - Попробуйте перезагрузить компьютер.
  • 2025.03.28
  • Alexey Viktorov
  • www.mql5.com
И кнопка старт справа внизу опять становится активна - а тестер висит. Постоянно такое окно и тестер висит - как настроить тестер чтобы тестил. Выбрал другой символ после перезагрузки компа и заработал вроде тестер
 
Maxim Kuznetsov #:

про поломанные скользящие средние

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

Звоночки, раз : https://www.mql5.com/ru/forum/160683/page2579#comment_56302328

Два : https://www.mql5.com/ru/forum/483868#comment_56321597 (у ТС очевидно где-то в данных есть EMPTY_VALUE и две AMA не сходятся друг с другом)

"Встроенные" индикаторы с большой долей вероятности будут показывать фигню

 
Vladislav Boyko #:
PLOT_DRAW_BEGIN

и куда его воткнуть при вызове iCustom или iAMA ? ;-) Или накладывая iMA из поставки на другой индикатор 

ошибка в индикаторах платформы, на прикладе её не исправить. Единственный выход - не использовать встроенные, делать свои

 
Maxim Kuznetsov #:

и куда его воткнуть

В Abs (тот индикатор, в подокно которого вы дропаете встроенный MA).

Прочитайте эту страницу полностью: https://www.mql5.com/ru/docs/customind

Там есть пример:

https://www.mql5.com/ru/docs/customind

Значение параметра begin будет в точности равно количеству начальных баров, для которых значения индикатора Accelerator не рассчитывается в соответствие с логикой этого индикатора. Если мы посмотрим исходный код пользовательского индикатора Accelerator.mq5, то увидим в функции OnInit() такие строчки:

//--- sets first bar from what index will be drawn
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,37);

Именно функцией PlotIndexSetInteger(0, PLOT_DRAW_BEGIN, empty_first_values) мы сообщаем количество несущественных первых значений в нулевом индикаторном массиве пользовательского индикатора, которые нам не нужно принимать для расчетов (empty_first_values). Таким образом, у нас есть механизмы, чтобы:

  1. сообщить о количестве начальных значений индикатора, которые не стоит использовать для расчетов в другом пользовательском индикаторе;
  2. получить информацию о количестве первых значений, которые необходимо игнорировать при вызове другого пользовательского индикатора, не вдаваясь в логику его расчетов.