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

 
voix_kas:

Что легче/быстрее для МТ5 обработать и вывести на экран: 24*OBJ_LABEL или 1*OBJ_BITMAP_LABEL?

Предполагается, что в OBJ_BITMAP_LABEL также будут поданы 24*TextOut.

Т.е. с точки зрения производительности.

Может, кому будет интересна информации о производительности графических объектов...

Ставилась следующая цель. Увеличить производительность работы советника реал-тайме/тестере за счёт замены 26*OBJ_LABEL на 1*OBJ_BITMAP_LABEL.

Данные графические объекты отображают текущее состояние работы советника. Всего используется 26 меток, 13 из которых постоянно обновляются пересчитываемыми показателями. Т.е. первые 13 - описание параметров, остальные 13 - соответствующие им значения.

 

Общие принципы работы с метками. Создаются, настраиваются выравнивания всех 26 меток в OnInit(). В OnTick() обновляются (текст) лишь 13 из них.

Общие принципы работы с битмапом. Создаётся шаблон канвы в OnInit(). В него стразу закидываются все 13 элементов описания. В OnTick() шаблон канвы (массив uint) копируется в массив рабочей канвы + наносятся остальные 13 меток значений.

 

Что могу сказать? Один Bitmap работает (!)на порядок медленнее, чем 26 обычных меток. Пробывал исключить из OnTick() операцию копирования шаблона в рабочую канву (массив uint 250*410), т.е. работа на одной канве. Выигрыш чувствуется только в реал-тайме. В тестере всё также - абсолютная просадка по производительности. Использовался режим COLOR_FORMAT_ARGB_NORMALIZE, т.к. остальные дают менее эстетический вид. Забегая вперед, надо сказать, что работать на одной канве сложно, так как придётся отслеживать наложение предыдущих надписей (очищать области).

 

Какой вывод сделал для себя.

Если пользователю требуется вывод оперативной статистики - однозначно OBJ_LABEL. Минусов перед  OBJ_BITMAP_LABEL у него два: 1) отсутствие возможности менять стиль шрифта, 2) с точки зрения программиста управлять один элементом (битмапом) проще, чем 26 метками.

 

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

Пробовал

      result&=obj.SetInteger(OBJPROP_HIDDEN,true);
      result&=obj.SetInteger(OBJPROP_SELECTED,false);
      result&=obj.SetInteger(OBJPROP_SELECTABLE,true);
      result&=obj.SetInteger(OBJPROP_ZORDER,100);

в разных вариациях.

Кто сталкивался помогите. 

 
vdv2001:

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

Пробовал

в разных вариациях.

Кто сталкивался помогите. 

Свойство OBJPROP_SELECTABLE отвечает за возможность выделять объект.
 
tol64:
Свойство OBJPROP_SELECTABLE отвечает за возможность выделять объект.

Да объект выделяется но сдвинуть его мышкой (как 4 терминале) не удается.

Или теперь перемещение всех созданных экспертом объектов нужно обрабатывать через события.

 
voix_kas:

Может, кому будет интересна информации о производительности графических объектов...


Респект и уважуха !

 

Господа, подскажите, пожалуйста! Из-за чего индикатор может мерцать?(DRAW_ZIGZAG plot периодически моргает)  И как с этим бороться?

 
vdv2001:

Да объект выделяется но сдвинуть его мышкой (как 4 терминале) не удается.

Или теперь перемещение всех созданных экспертом объектов нужно обрабатывать через события.

У меня выделяются объекты созданные экспертом и их можно перемещать. Покажите, как Вы это делаете (короткий пример).
 
tol64:
У меня выделяются объекты созданные экспертом и их можно перемещать. Покажите, как Вы это делаете (короткий пример).

Есть такое свойство объекта

OBJPROP_SELECTABLE

Доступность объекта

bool

По умолчанию для объектов, созданных программным путем, оно выставляется в false

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5
 
joo:
Как определить во время оптимизации, участок форвард сейчас или нет?
Никак
 
Rosh:

Есть такое свойство объекта

OBJPROP_SELECTABLE

Доступность объекта

bool

По умолчанию для объектов, созданных программным путем, оно выставляется в false

Спасибо, я это знаю. У vdv2001 какая-то проблема с этим:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

vdv2001, 2013.04.25 06:10

Да объект выделяется но сдвинуть его мышкой (как 4 терминале) не удается.

Или теперь перемещение всех созданных экспертом объектов нужно обрабатывать через события.

//---

Хотел посмотреть, как он это делает, чтобы найти у него ошибку.