Новая версия MetaTrader 4 Client Terminal 387 и MetaTrader 4 Data Center build 387 - страница 8

 
Это не баг репорт, поэтому нет реакции.
 

То есть Вы считаете, что все нормально?

Если так, то кому он нужет, 387-388 билд?

Многие вообще еще на 225 работают. Стабильность людям нужна.

 

При старте оптимизации этого советника MT4 выдает сообщение о том, что на этом комьютере не хватает оперативной памяти (6 Гб оО) и начинает оптимизацию. При этом остается активной кнопка "Старт" вместо "Стоп". Вообщем явный глюк. Предыдущий билд таким бредом не страдал.

 
Renat:
Это не баг репорт, поэтому нет реакции.

:)))

(c) "Видишь суслика? Нет! И я не вижу. А он есть!."

Файлы:
 

В 387-388 билдах переинициализация буферов кастомных индикаторов происходит в непредсказуемые моменты. Это плохо.

Если так уж необходима переинициализация, то решение может быть следующим.

Вводится в язык mql4 дополнительная функция, которая может запрещать такую переинициализацию или разрешать ее.

Вводится булевая функция, которая на выходе дает значение TRUE, если переинициализация произведена терминалом, в противном случае она возвращает значение FALSE. Вторая функция актуальна, если первая функция разрешает переинициализацию.

Таким образом решаются все проблемы. Кому необходимо разрешает автоматическую переинициализацию первой функцией. При этом он может контролировать моменты переинициализации с помощью второй функции.

Возможно все это совместить в одной функции. Это на усмотрение разработчиков.

И все остаются довольные. Ошибки устранены. И сторонние программисты - кастомные программисты - застрахованы от неожиданностей.

Красивое решение.

 
Akkarin:

При старте оптимизации этого советника MT4 выдает сообщение о том, что на этом комьютере не хватает оперативной памяти (6 Гб оО) и начинает оптимизацию. При этом остается активной кнопка "Старт" вместо "Стоп". Вообщем явный глюк. Предыдущий билд таким бредом не страдал.

К сожалению, Вы не указали ни начальных данных, ни тестовых параметров, ни логов.

Кроме того, Вы ссылаетесь на библиотеки (DLL), которые не только требуют массы инсталляций, но и не работают из-за отсутствия дополнительных библиотек (это уже к автору библиотек, который забыл про дополнительные DLL файлы).

Обратитесь к автору этих библиотек за информацией.

 
nen:

В 387-388 билдах переинициализация буферов кастомных индикаторов происходит в непредсказуемые моменты. Это плохо.

По всей видимости, Вы не желаете проверять свой разросшийся код, а пытаетесь спихнуть проблему на нас. Ваша риторика абсолютно прозрачна - "это не мои проблемы".

Мне все равно. У меня проблем нет. Я могу под себя переделать, чтобы все работало нормально. Но переделать все индикаторы, которые используют другие люди, я не могу.

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

Продемонстрируйте с полной выкладкой проблему. Не на словах, а на четких настройках, коде, логах, четких скринах и тд.

Будучи программистом, разумно вести технически подкрепленные, четко описанные по шагам обсуждения. Кусочные ссылки и обрывочные, не собранные в единый репорт сообщения не являются баг репортом.

Качество репорта определяется воспроизводимостью его проблемы сторонними пользователями. Насколько я понимаю, пока в этой ветке никто (включая разработчиков) не смог воспроизвести Вашей проблемы.

 

Ренат.

Я хотел поинтересоваться, можно ли надеяться на возврашение отрисовки кастомных индикаторов после теста в тестере. А то я пока отключил на некоторых терминалах LiveUpdate. Понимаете, нам создателям "кинокартин" торговли на Форексе, мало прочитать или написать сценарии, и посмотреть фильм без изображения, а только со звуком. Нам нужно видеть, что мы там натворили, и сколь удачно.

Были даже такие мысли, что разработчики отключили отрисовку в МТ4 со злости, что МТ5 плохо продвигается. Если это так, то может получается, что трейдерам и брокерам нужно одно, а Вы пытаетесь навязать другое? Может тогда Вам лучше поменять свою позицию в этом смысле.

А если это вызвано скороспелыми техническими решеними, повлекшими за собой такой вред для разработчиков экспертов, то Вам как программистам и флаг в руки, чтобы сделать все хорошо.

Так можно ли надеяться на скорое решение этого вопроса?

 

Хорошо.

Ставлю визуальное тестирование. Советник Moving Average.

Устанавливаю ZUP.

Евро. Часовки.

Учтите, мой разросшися код отслеживает подкачку истории. То есть происходит переинициализация при подкачке истории.

Ранее в этой ветке выкладывал кусок кода. Там вся оптимизация.

Выкладываю картинки. Мой "разросшийся" код предназначен для рисования картинок, все лишь. Автоторговлей он не занимается. И если картинки рисуются неверно, то это является багом.

Первая картинка. Маленькая история. Нарисовался один луч. Все нормально.

Почти сразу после начала тестирования нарисовались несколько лучей зигзага, нарисовалась бабочка. Полет нормальный.

Летим далее. Произошла ВАША переинициализация. Программа этого отследить не может. НЕТ ШТАТНОЙ ВОЗМОЖНОСТИ ОТСЛЕДИТЬ ПЕРЕИНИЦИАЛИЗАЦИЮ.

Так как включена оптимизация расчетов, а сигнала на полный пересчет не поступало, то, соответственно, видим результат:

Немного накопилась новая история. Отрисовался один луч зигазага:

Если сейчас переустановить индикатор, то произойдет начальная инициализация и все будет выглядеть следующим образом:

И так далее. Нет штатных возможностей отслежитвания ВАШЕЙ ПЕРЕИНИЦИАЛИЗАЦИИ индикаторных буферов.

А от пересчета индикатора на каждом тике увольте. Делайте сами такие безобразия. У ВАС долгое время в таком духе многое сделано. И сколько мы Вам на протяжении многих лет ни говорили про многие баги, до Вас это не доходило. А сейчас, когда многие программисты просто устали с Вами бороться и сделали свои обходы Ваших ошибок, Вы начинаете устраивать подлости.

Ваш код не менее разросся. И Вы плохо представляете о последствиях Ваших нововведений.

Тестируем далее.


Опять несколько раз прошла Ваша переинициализация. А должно выглядеть так:

Это трудно воспроизвести? Или просто нет желания?

И далее при тестировании все в том же духе.

Не надо сваливать с больной головы на здоровую. Код разросся.

-------

В заключение повторю. Не о себе беспокоюсь. Я для себя любые Ваши баги программно обойти смогу. А вот пользователи, коих огромное количество, этого сделать не смогут.

Добавлю. Еще ни один из своих индикаторов я не продал, не сделал ни одной платной разработки. Считаю, что, когда компания metaquotes может таким образом, как в 387-388 билде все в корне менять, никто со стороны нормальный бизнес на разработке с помощью языков MQL(*) построить не сможет. Вы не можете пока еще предложить сторонним разработчикам стабильной основы для разработок.

И все платные разработки с помощью Ваших языков на текущий момент считаю неким лохотроном.

 
nen:

Хорошо.

Ставлю визуальное тестирование. Советник Moving Average.

Устанавливаю ZUP.

Евро. Часовки.

Учтите, мой разросшися код отслеживает подкачку истории. То есть происходит переинициализация при подкачке истории.

Ранее в этой ветке выкладывал кусок кода. Там вся оптимизация.

Выкладываю картинки. Мой "разросшийся" код предназначен для рисования картинок, все лишь. Автоторговлей он не занимается. И если картинки рисуются неверно, то это является багом.

Первая картинка. Маленькая история. Нарисовался один луч. Все нормально.

Почти сразу после начала тестирования нарисовались несколько лучей зигзага, нарисовалась бабочка. Полет нормальный.

Летим далее. Произошла ВАША переинициализация. Программа этого отследить не может. НЕТ ШТАТНОЙ ВОЗМОЖНОСТИ ОТСЛЕДИТЬ ПЕРЕИНИЦИАЛИЗАЦИЮ.

Так как включена оптимизация расчетов, а сигнала на полный пересчет не поступало, то, соответственно, видим результат:

Немного накопилась новая история. Отрисовался один луч зигазага:

Если сейчас переустановить индикатор, то произойдет начальная инициализация и все будет выглядеть следующим образом:

И так далее. Нет штатных возможностей отслежитвания ВАШЕЙ ПЕРЕИНИЦИАЛИЗАЦИИ индикаторных буферов.

А от пересчета индикатора на каждом тике увольте. Делайте сами такие безобразия. У ВАС долгое время в таком духе многое сделано. И сколько мы Вам на протяжении многих лет ни говорили про многие баги, до Вас это не доходило. А сейчас, когда многие программисты просто устали с Вами бороться и сделали свои обходы Ваших ошибок, Вы начинаете устраивать подлости.

Ваш код не менее разросся. И Вы плохо представляете о последствиях Ваших нововведений.

Тестируем далее.


Опять несколько раз прошла Ваша переинициализация. А должно выглядеть так:

Это трудно воспроизвести? Или просто нет желания?

И далее при тестировании все в том же духе.

Не надо сваливать с больной головы на здоровую. Код разросся.

-------

В заключение повторю. Не о себе беспокоюсь. Я для себя любые Ваши баги программно обойти смогу. А вот пользователи, коих огромное количество, этого сделать не смогут.

Добавлю. Еще ни один из своих индикаторов я не продал, не сделал ни одной платной разработки. Считаю, что, когда компания metaquotes может таким образом, как в 387-388 билде все в корне менять, никто со стороны нормальный бизнес на разработке с помощью языков MQL(*) построить не сможет. Вы не можете пока еще предложить сторонним разработчикам стабильной основы для разработок.

И все платные разработки с помощью Ваших языков на текущий момент считаю неким лохотроном.

Так. Ладно, в очередной раз отправляем все эмоции на покой и спокойно разбираемся с ситуацией.

Что дано - визуальное тестирование. Запускаем визуальное тестирование и накидываем всё тот же мой индикатор для логирования. При всех тестовых прогонах получаем печальную картинку.

Name;Time;GetTickCount;Bars;LastBarsCount;IndicatorCounted
IndicatorCounted() == 0;2011.02.28 09:39:12;156609840;107;107;0
Новый бар;2011.02.28 09:39:12;156610324;108;107;106
Новый бар;2011.02.28 09:39:13;156610838;109;108;107
... (вырезал)
Новый бар;2011.02.28 09:39:23;156621602;128;127;126
Новый бар;2011.02.28 09:39:24;156621758;129;128;127
IndicatorCounted() == 0;2011.02.28 09:39:24;156622180;2648;2648;0
Новый бар;2011.02.28 09:39:24;156622289;130;129;128
Новый бар;2011.02.28 09:39:25;156622819;131;130;129
Новый бар;2011.02.28 09:39:25;156623147;132;131;130
... (вырезал)
Новый бар;2011.02.28 09:39:31;156629699;144;143;142
Новый бар;2011.02.28 09:39:32;156630027;145;144;143
Новый бар;2011.02.28 09:39:32;156630385;2649;2648;2647
Новый бар;2011.02.28 09:39:33;156631009;146;145;144
Новый бар;2011.02.28 09:39:33;156631399;147;146;145
... (вырезал)
Новый бар;2011.02.28 09:40:15;156673364;275;274;273
Новый бар;2011.02.28 09:40:16;156673785;276;275;274
Новый бар;2011.02.28 09:40:16;156673878;277;276;275
IndicatorCounted() == 0;2011.02.28 09:40:16;156673956;2649;2649;0
IndicatorCounted() == 0;2011.02.28 09:40:16;156674081;2649;2649;0
Новый бар;2011.02.28 09:40:16;156674159;278;277;276
Новый бар;2011.02.28 09:40:16;156674612;279;278;277
... (вырезал)

Новый бар;2011.02.28 09:40:27;156684986;314;313;312

Что-то сломалось именно в визуальном режиме тестирования - попадаются записи, когда Bars вместо ожидаемых 130 равен 2648, а на следующем тике/баре снова 130.

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

Глаза бояться, а руки делают. Ровно 10 минут для поиска и описания бага.

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