Как вывести значение цены в пользовательском TOOLTIP - страница 4

 
Eugeni Neumoin:

Мы разобрались. Чуть выше приведены коды, как это сделать. Cейчас проверю быстродействие на примерно в районе 1000 объектов.

Некоторое замедление есть. На количестве порядка 1000 объектов. Это терпимо.

Сделал пока только для спиралей. Эти две спирали примерно из 1000 отрезков прямых состоят.

Но если отрезок является вертикальным значение цены не выводится.

Скинь пожалуйста шаблон с нанесёнными объектами. Всё-же проверю как будут отображаться тултипы.

 
Alexey Viktorov:

Скинь пожалуйста шаблон с нанесёнными объектами. Всё-же проверю как будут отображаться тултипы.

Пожалуйста:

Файлы:
 
Eugeni Neumoin:

Пожалуйста:

Чё-та не хочет рисовать объекты из шаблона...

Если есть желание, проверь как тормозит-ли советник.

Все функции применённые в советнике одинаковы как для mql5 так и для mql4 поэтому смело можно файл просто переименовать в .mq4 и откомпилировать.

Файлы:
 

А что вообще выводится с этим шаблоном? Картинку можешь показать?

Не выводится, наверное, потому, что нет индикатора.

=========

При переименовании в mq4 компиляция выдает ошибку:

'ObjectsTotal' - ambiguous call to overloaded function with the same parameters    Tooltip_Test.mq4    28    21

После исправления строки  for(int i = 0; i < ObjectsTotal(0); i++) на  for(int i = 0; i < ObjectsTotal(); i++)
выдается предупреждение:

no indicator window property is defined, indicator_chart_window is applied        0    0

=========

Тултипы выводятся для наклонных отрезков. Для вертикальных отрезков выводится 0.00000

В моем коде тоже самое.

 
Eugeni Neumoin:

А что вообще выводится с этим шаблоном? Картинку можешь показать?

Не выводится, наверное, потому, что нет индикатора.

При переименовании в mq4 компиляция выдает ошибку:

'ObjectsTotal' - ambiguous call to overloaded function with the same parameters    Tooltip_Test.mq4    28    21

После исправления строки  for(int i = 0; i < ObjectsTotal(0); i++) на  for(int i = 0; i < ObjectsTotal(); i++)
выдается предупреждение:

no indicator window property is defined, indicator_chart_window is applied        0    0

"Дело было не в бабине, идиот сидел в кабине". Я шаблон пытался применить в МТ5. В МТ4 отобразились все объекты, правда их совсем мало, далеко не 1000. И никаких задержек не наблюдаю.

Для версии mql4 надо удалить нуль выделенный красным. И больше никаких изменений не надо.

PS; Так это-же не индикатор. Сделано в виде советника, для того чтобы выполнялись расчёты в отдельном потоке..

 

Картинки. Для наклонных линий тултип выводится:

Для вертикальных отрезков выводится 0.00000:



Это, наверное, ошибка функции ObjectGetValueByTime

 

Количество отрезков. Для спирали 2 количество отрезков 501.


Для спирали 0 такое же количество. Кроме спиралей там еще есть объекты.

Так что общее количество объектов больше 1000.

 
Eugeni Neumoin:

Тултипы выводятся для наклонных отрезков. Для вертикальных отрезков выводится 0.00000

В моем коде тоже самое.

В принципе можно добавить условие, что если получили 0.0 ... в общем вот заменить

   shiftPrice = ObjectGetValueByTime(0, name, time_);

на

   shiftPrice = ObjectGetValueByTime(0, name, time_) == 0 ? price : ObjectGetValueByTime(0, name, time_);
 
Eugeni Neumoin:

Количество отрезков. Для спирали 2 количество отрезков 501.


Для спирали 0 такое же количество. Кроме спиралей там еще есть объекты.

Так что общее количество объектов больше 1000.

Да, я не вывел все в окне списка объектов.

И не мешало-бы отсеять объекты по типам. Зачем тратить время на объекты OBJ_TEXT и подобные.
 

Это помогло:

shiftPrice = ObjectGetValueByTime(0, name, time_) == 0 ? price : ObjectGetValueByTime(0, name, time_);

С отсеиванием лишнего согласен. Я так и думал это сделать.

Надо еще попробовать с полной нагрузкой, как будет работать. В данном примере размер спиралей взят по умолчанию. На самом деле количетво витков можно задать бОльше. И количество объектов, спиралей в частности, можно задать значительно больше. Для проверки. И плюс поводить мышкой по графику на быстром рынке. Как это будет работать?


---------------

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

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