Ошибки, баги, вопросы - страница 2737
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В МТ4, во время отладки индикаторов, отладчик намертво повисает если переключиться на график.
Воспроизводится, например, во время запуска отладки стандартного индикатора CCI.
1. Поставить точку останова;
2. Нажать F5;
3. Переключиться на график.
Результат - график отладчика зависает.
Также можно просто несколько раз нажать F5 во время отладки - график повисает.
Билд 1260.
Настройки отладчика:
Результат поиска удаляет часть текста.
Вот оригинал.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы
fxsaber, 2020.05.11 20:31
Наверное, Тестеру нет смысла создавать opt-файлы, у которых Header.passes_passed == 0.Как оказалось, установка цвета фона невозможна для объекта типа OBJ_LABLE, необходимо использовать OBJ_EDIT.
При использовании OBJ_EDIT возникла новая проблема - необходимость установить размер OBJPROP_XSIZE и OBJPROP_YSIZE, чтобы в соответствующие размеры объекта помещался весь текст.
Вопрос: как определить размер OBJPROP_XSIZE и OBJPROP_YSIZE, что бы туда поместился весь текст?
Рассмотрел два варианта:
1. Создание объекта OBJ_LABLE, считывание размеров, удаление объекта OBJ_LABLE.
Не подходит из-за того, что считывание размеров возможно только после фактического создания объекта и не возможно, когда объект находится в очереди на ChartRedraw.
2. Использование TextSetFont с последующим TextGetSize.
Не подходит, так как результат кардинально отличается от результатов метода №1, отличия в 2.5 - 2.9 раз в зависимости от размера шрифта.
Возможно причина в 4К мониторе и 175% DPI.
Спасибо Geess за решение.
Необходимо домножить на -10 размер шрафта при передаче в TextSetFont.
Очень редко работаю с графическими объектами, возникла необходимость закрасить фон для OBJ_LABLE (установить OBJPROP_BGCOLOR) .
Как оказалось, установка цвета фона невозможна для объекта типа OBJ_LABLE, необходимо использовать OBJ_EDIT.
При использовании OBJ_EDIT возникла новая проблема - необходимость установить размер OBJPROP_XSIZE и OBJPROP_YSIZE, чтобы в соответствующие размеры объекта помещался весь текст.
Вопрос: как определить размер OBJPROP_XSIZE и OBJPROP_YSIZE, что бы туда поместился весь текст?
Рассмотрел два варианта:
1. Создание объекта OBJ_LABLE, считывание размеров, удаление объекта OBJ_LABLE.
Не подходит из-за того, что считывание размеров возможно только после фактического создания объекта и не возможно, когда объект находится в очереди на ChartRedraw.
2. Использование TextSetFont с последующим TextGetSize.
Не подходит, так как результат кардинально отличается от результатов метода №1, отличия в 2.5 - 2.9 раз в зависимости от размера шрифта.
Возможно причина в 4К мониторе и 175% DPI.
Во-первых, размер текста и размер объекта - это не одно и тоже. Как минимум должен существовать бордюр. И поэтому эти значения не могут совпадать.
Во-вторых, лучше использовать OBJ_BITMAP_LABEL, у которого нет никаких ограничений.
А если уж его использовать, то лучше тогда воспользоваться классом CCanvas.
В результате получаем тот же объект, только с большими возможностями. Например, добавив прозрачность текстовой метки.
Во-первых, размер текста и размер объекта - это не одно и тоже. Как минимум должен существовать бордюр. И поэтому эти значения не могут совпадать.
Спасибо большое за помощь.
Адаптируется готовое решение под собственные нужды, по этому не видится необходимости во внедрении библиотек.
Изначально предложенное вами решение можно представить как:
К сожалению из-за дефекта в МТ5 - предложенное решение невозможно нормально использовать.
Размер текста получается в 3 раза меньше необходимого на 4К мониторе с 175% Windows DPI.
Приходится домножать размер шрифта на DPI / 100% * [1.6 ... 1.8]
Спасибо Geess за решение.
Необходимо домножить на -10 размер шрафта при передаче в TextSetFont.
Спасибо большое за помощь.
Адаптируется готовое решение под собственные нужды, по этому не видится необходимости во внедрении библиотек.
Изначально предложенное вами решение можно представить как:
К сожалению из-за дефекта в МТ5 - предложенное решение невозможно нормально использовать.
Размер текста получается в 3 раза меньше необходимого на 4К мониторе с 175% Windows DPI.
Приходится домножать размер шрифта на DPI / 100% * [1.6 ... 1.8]
https://www.mql5.com/ru/docs/objects/textsetfont
нужно делать так:
Не понимаю, почему Вам так нужен OBJ_LABEL? Вы же реализовали вариант без библиотек с OBJ_BITMAP_LABEL. В чем его преимущество? Вижу только ограниченность.
https://www.mql5.com/ru/docs/objects/textsetfont
Не понимаю, почему Вам так нужен OBJ_LABEL? Вы же реализовали вариант без библиотек с OBJ_BITMAP_LABEL. В чем его преимущество? Вижу только ограниченность.
Спасибо большое еще раз.
Не знал, не видел, не читал, о умножении на -10. Проблема решена.
OBJ_LABEL использовался для наглядности проблемы и возможности ее воспроизведения.
Подскажите пож-та в чём проблема.
Разные индикаторы, корректно работающие и обновляющиеся, синхронно начинают показывать что-то иное, не основывающиеся на графике цены, отображаемом в основном окне. Происходит это эпизодически, не каждый день.
Сначала грешил на индикаторы, но перепробовав разные, включая нативные MT5, начинаю подозревать сам терминал. Проблему наблюдаю давно, ещё с прошлого года, на разных версиях терминала. Сначала наблюдал на кастомной версии Альпари, теперь тоже самое на оригинальной версии. И на демо счёте, и на реальном ecn.
Брокер Альпари. MT5 билд 2363 от 13.03.2020. На других периодах не помню, но на M1 точно такое происходит.
Скрины:
«Слетевший» вариант. Кроме зигзага все индикаторы встроенные. Зигзаг с корректной работой с историей. Между собой показания индикаторов сходятся. Расходятся с ценами.
После обновления.
Версия МТ5
Добрый день.
Наткнулся на непонятную вещь и не пойму в чем дело.
Есть две функции, которые используются в разных стратегиях. По логике вещей код в проверках типа
выполняться не должен, если одно из условий не верно. Но он почему-то выполняется, если магик номер позиции и переданный в функцию магик НЕ РАВНЫ.
Вроде сравнение целочисленных типов происходит. Почему, не могу понять. Ниже на скриншоте журнала это видно.