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

 

Неясность вижу свотиться к одному уточнению : как это проявляется?

Поясню : при приходе нового тика идёт замирание на пол секунды те никакие функции не исполняются после чего продолжается исполнение как будто остановленные функции уже исполнены,

те если вы например нумеруете массив 1 2 3 4 5 6 и при этом на цифре 4 пришёл тик то массив будет пронумерован так 1 2 3    5 6

(это наглядный пример а не конкретное исполнение).

Но исполняется так же,

при каждой итерации шары смещаются на одну позицию,

при приходе тика какойто шар может вообще выпасть из отображения (это хорошо видно если поставить задержку в скрипте меньше 500, ну для разных машин по разному возможно на мощной машине задержка должна быть 100 чтоб проявился глюк) ,

а потом на новых итерациях востановится, тоже самое происходит и при загрузке фона(особенно это проявляется на большим разрешении Step 4-3 и меньше)

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

 
stringo:

Когда в клиентский терминал приходит тик, то он должен быть применён сразу в нескольких местах - в обзоре рынка, в истории, на открытых графиках. При этом ещё и индикаторы пересчитываются. А как Вы хотели?

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

А вообще, странная формулировка вопроса. При чём тут OnTick()? И как он врывается в работу других функций? 

В системе в визуальном режиме запущена одна программа МТ-5, в МТ-5 открыт один график , на графике запущен один скрипт(или советник).

И вот при всём этом чтоб изменить координаты трёх объектов не хватает машинного времени при приходе нового тика ????

 
Urain:

И вот при всём этом чтоб изменить координаты трёх объектов не хватает машинного времени при приходе нового тика ????

Не надо забывать, что одновременно на экране находится 3600 текстовых объектов Label, нарисованных не очень экономичным путем (рисовать кружки шрифтом явно недальновидно).

Попробуйте вместо 3600 объектов поставить одну BMP картинку лучше - тормозить сразу перестанет.

Без подложки из 3600 объектов все летает.

 
Renat:

Не надо забывать, что одновременно на экране находится 3600 текстовых объектов Label, нарисованных не очень экономичным путем (рисовать кружки шрифтом явно недальновидно).

Попробуйте вместо 3600 объектов поставить одну BMP картинку лучше - тормозить сразу перестанет.

Без подложки из 3600 объектов все летает.

Это был мой первоначальный план (фон на самом деле должен создаваться при загрузке в зависимости от текущей рыночной ситуации),

но вот создать фон из точек получилось а сохраняется он только в gif ,

загружать же приходится bmp ,

те средствами mql тут не справиться нужна стороняя примочка для перевода формата (а хотелось всё сделать на mql).

ЗЫ а вообще главная для меня проблема по графике это то что я не могу нарисовать стрелку по заданныи координатам

(а приходится привязывать её к цене и времени).

ЗЫЗЫ куда там 3600 при параметре Step=3 их там вообще тысяч 40.

 

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

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

 
Renat:

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

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


Это будет здорово, а то с такими ситуациями довольно часто сталкивался на четвёрке,

ну ясное дело что вы в первую очередь вкладывались в торговые приказы, а графика дело второе.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 

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

 
Prival:

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

Насколько я в теме запрет "автоматической торговли" не означает запрет на работу эксперта. Видимо в коде эксперта нет дополнительных проверок на наличие возможных проблем совершения торговых операций...
 
Prival:

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

 

Все верно, работа эксперта не запрещается, запрещается только автоторговля  

Вот из справки

Разрешить/запретить совершение торговых операций советниками и скриптами. Функция данной кнопки аналогична настройке терминала на вкладке "Советники".

 

Я так понимаю, что запрет этот со стороны терминала.

Поэтому, чтоб не получать в лог сообщения об ошибке при установке ордеров надо использовать перед торговыми приказами функцию AccountInfoInteger(ACCOUNT_TRADE_EXPERT)

 

Запрещаются только торговые операции, а эксперт работает, пытается торговать с выдачей соответствующих ошибок. Чтобы этого не происходило, надо проверять состояние терминала перед анализом на совершение торговых операций с помощью

if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5
Причина обращения: