Новая версия MetaTrader 4 Client Terminal 387 и MetaTrader 4 Data Center build 387 - страница 10
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Это не баг визуального режима. Это именно обнуление индикаторных буферов - переинициализация буферов 388 версией.
Увы, Вы ошибаетесь. Это штатная работа механизма под названием IndicatorCounted() - обнуление индикаторных буферов при существенном изменении истории (этот механизм был во всех билдах).
В данном случае появился баг в визуальном режиме (в реальном я такого за неделю не обнаружил). Что за баг я уже описал.
Я постом ниже полностью нашёл причину этого поведения.
Спасибо за проверку, теперь ясно в какую сторону копать.
Постараемся найти, исправить и как можно скорее выпустить обновление.
Ну вот видите - Вы сами и отвечаете себе
Ошибся, в последних разработках IndicatorCounted() не применяется. В ZUP как раз применяется. И не ловит эту переинициализацию.
Хочу сообщить что в терминале и в последнем билде есть Баг а именно индикатор iBands при указании параметра deviation 0.8 ставит 0 . При любом указании меньше 1 ставит 0. Я понимаю что этот параметр отностится к int и должен быть целым числом Но при прикреплении индикатора к графику значение deviation можно ставить меньше 1 . Почему на графике можно ставить меньше 1 а в эксперте нет ...... или как это победить обойти ..............
Хочу сообщить что в терминале и в последнем билде есть Баг а именно индикатор iBands при указании параметра deviation 0.8 ставит 0 . При любом указании меньше 1 ставит 0. Я понимаю что этот параметр отностится к int и должен быть целым числом Но при прикреплении индикатора к графику значение deviation можно ставить меньше 1 . Почему на графике можно ставить меньше 1 а в эксперте нет ...... или как это победить обойти ..............
Да. посмотрите на тип передаваемых параметров.
он int
поэтому используйте iCustom BBands
Да. посмотрите на тип передаваемых параметров.
он int
поэтому используйте iCustom BBands
а как его использовать ?????
ни разу не пользовался ....
а как его использовать ?????
ни разу не пользовался ....
вообще говоря проблема чуть шире чем здесь обсуждается. терминалу явно не хватает функции вроде GetTerminalState которая должна вернуть какойто код (набор битов), по которому можно напрямую "спросить" терминал чем он щас занят? например IsConnected (которая кстати не всегда корректно возвращает результат после перелогинов) сообщает только да или нет. а хотелось бы подробненько:
- offline (пытался соединится, не получилось, стою ничего не делаю)
- connecting (пытаюсь соединится)
- connected (есть связь с сервером)
в последнем случае тоже нужны уточнения:
- HistoryOrdersLoading, HistoryOrdersLoaded (закачивается, закачана вся история по ордерам. для больших историй это занимает большое время и хотелось бы значть что терминал уже имеет ВСЮ историю)
- HistoryBarsLoading, HistoryBarsLoaded (зачачивается, закачана вся история по ценам. сюда же может и обсуждаемую проблему пометить както)
при обработке ордеров тоже совсем не лишне знать что была послана команда открытия ордера и сейчас терминал ожидает открытия ордера или модификации или закрытия. Ведь ордер никогда не исполняется мгновенно и хорошо бы знать над чем именно сейчас терминал задумался (тики идут а терминал почемуто не торгует - почему?) ;)
состояния о разрешении работы/торговли экспертов тоже можно сюда же "упаковать".
Хорошо.
Ставлю визуальное тестирование. Советник Moving Average.
Устанавливаю ZUP.
Евро. Часовки.
Учтите, мой разросшися код отслеживает подкачку истории. То есть происходит переинициализация при подкачке истории.
Ранее в этой ветке выкладывал кусок кода. Там вся оптимизация.
Выкладываю картинки. Мой "разросшийся" код предназначен для рисования картинок, все лишь. Автоторговлей он не занимается. И если картинки рисуются неверно, то это является багом.
Первая картинка. Маленькая история. Нарисовался один луч. Все нормально.
Почти сразу после начала тестирования нарисовались несколько лучей зигзага, нарисовалась бабочка. Полет нормальный.
Летим далее. Произошла ВАША переинициализация. Программа этого отследить не может. НЕТ ШТАТНОЙ ВОЗМОЖНОСТИ ОТСЛЕДИТЬ ПЕРЕИНИЦИАЛИЗАЦИЮ.
Так как включена оптимизация расчетов, а сигнала на полный пересчет не поступало, то, соответственно, видим результат:
Немного накопилась новая история. Отрисовался один луч зигазага:
Если сейчас переустановить индикатор, то произойдет начальная инициализация и все будет выглядеть следующим образом:
И так далее. Нет штатных возможностей отслежитвания ВАШЕЙ ПЕРЕИНИЦИАЛИЗАЦИИ индикаторных буферов.
А от пересчета индикатора на каждом тике увольте. Делайте сами такие безобразия. У ВАС долгое время в таком духе многое сделано. И сколько мы Вам на протяжении многих лет ни говорили про многие баги, до Вас это не доходило. А сейчас, когда многие программисты просто устали с Вами бороться и сделали свои обходы Ваших ошибок, Вы начинаете устраивать подлости.
Ваш код не менее разросся. И Вы плохо представляете о последствиях Ваших нововведений.
Тестируем далее.
Опять несколько раз прошла Ваша переинициализация. А должно выглядеть так:
Это трудно воспроизвести? Или просто нет желания?
И далее при тестировании все в том же духе.
Не надо сваливать с больной головы на здоровую. Код разросся.
-------
В заключение повторю. Не о себе беспокоюсь. Я для себя любые Ваши баги программно обойти смогу. А вот пользователи, коих огромное количество, этого сделать не смогут.
Добавлю. Еще ни один из своих индикаторов я не продал, не сделал ни одной платной разработки. Считаю, что, когда компания metaquotes может таким образом, как в 387-388 билде все в корне менять, никто со стороны нормальный бизнес на разработке с помощью языков MQL(*) построить не сможет. Вы не можете пока еще предложить сторонним разработчикам стабильной основы для разработок.
И все платные разработки с помощью Ваших языков на текущий момент считаю неким лохотроном.
Сделал всё так как описано. Но с некоторыми изменениями.
Вот лог.
После последнего удаления бабочки (две строки triangle deleted) никакой переинициализации буферов не было!
Кстати, такое же самое поведение воспроизводится и в любимом Вами 225 билде