OnChartEvent: Взаимоотношение пользователя с графической панелью в тестере стратегий - страница 4

 
Alexey Volchanskiy:
Я дал ссылку на запись в своем блоге, там как раз реализован советник с опросом кнопок в тестере. Пост быстренько удалили. В чем дело???? Можно получить ответ, с какого *** удаляют пост, который не несет никакой рекламы? Форум стал совсем безумным, почти сюда уже не захожу...
Там просто код закрытый,  мне то что на него смотреть?? Да,  круто. Опрос как делаете?  ObjectGetInteger? В тестере стратегий?  И я так делаю. 

 
Alexey Volchanskiy:
Я дал ссылку на запись в своем блоге, там как раз реализован советник с опросом кнопок в тестере. Пост быстренько удалили. В чем дело???? Можно получить ответ, с какого *** удаляют пост, который не несет никакой рекламы? Форум стал совсем безумным, почти сюда уже не захожу...

Я удалил. Тут обсуждается код, а не закрытый чёрный ящик. Да и не "быстренько удалил", а как заметил сообщение, так и убрал бесполезный пост. Что человеку делать с твоей игрушкой, когда он просит помощи?

 
Vladislav Andruschenko:


да о нем. 


проблема в ObjectGetInteger 

Никакой проблемы в нет. Вот опрашивается ЧЕТЫРЕ кнопки на каждом тике. Где задержка???



Вот кусок кода

   if(OrdersTotal()>0 && ObjectGetInteger(0,"C",OBJPROP_STATE)==true)
     {
      CloseAll();
      ObjectSetInteger(0,"C",OBJPROP_STATE,false);
     }
 
Alexey Viktorov:

Никакой проблемы в нет. Вот опрашивается ЧЕТЫРЕ кнопки на каждом тике. Где задержка???

Вот кусок кода

На самом деле задержка есть, в МТ4 не критична, а вот в МТ5 очень заметна.

При этом не всегда нужно проверять OrdersTotal()>0, потому как ними ещё можно не только закрывать
 
Vitaly Muzichenko:

На самом деле задержка есть, в МТ4 не критична, а вот в МТ5 очень заметна.

При этом не всегда нужно проверять OrdersTotal()>0, потому как ними ещё можно не только закрывать

Виталий, OrdersTotal()>0 в этом куске кода обязательно по той простой причине, что этот кусок кода из действующего советника и там так задумано.

В этой ветке, как я понял речь о коде на mql4, а не mql5. Я хотел этот советник переписать на mql5 но в тестере МТ5 вносить изменения в поле ввода нет возможности, не работает. Так и кинул эту затею до лучших времён. Так-что сравнить мне нечем, да и не интересно.

Ну и некритичная задержка происходит от любого набора if() так и что от этого???

 
Alexey Viktorov:

Виталий, OrdersTotal()>0 в этом куске кода обязательно по той простой причине, что этот кусок кода из действующего советника и там так задумано.

В этой ветке, как я понял речь о коде на mql4, а не mql5. Я хотел этот советник переписать на mql5 но в тестере МТ5 вносить изменения в поле ввода нет возможности, не работает. Так и кинул эту затею до лучших времён. Так-что сравнить мне нечем, да и не интересно.

Ну и некритичная задержка происходит от любого набора if() так и что от этого???

По сути ничего, просто есть чувствительная задержка, и её по всей вероятности в тестере не избежать.

 
Vitaly Muzichenko:

По сути ничего, просто есть чувствительная задержка, и её по всей вероятности в тестере не избежать.

Код и на мт5 и на мт4. Разделения нет 

Чем больше ObjectGetInteger тем больше тормозов. Если одна кнопка на графике то ладно. А если их 20 то уже задержки. 
И в мт4 больше тормозов чем в мт5. 
 
Vitaly Muzichenko:

По сути ничего, просто есть чувствительная задержка, и её по всей вероятности в тестере не избежать.

Чувствительная это сколько микросекунд на проверку 30 (тридцати) кнопок???

2018.02.24 14:49:28.276 2017.01.03 17:05:33  Test button click EURUSD,H1: 43
2018.02.24 14:49:27.466 2017.01.03 17:05:33  Test button click EURUSD,H1: 36
2018.02.24 14:49:27.466 2017.01.03 17:05:33  Test button click EURUSD,H1: Нажата кнопка C2 - 7
2018.02.24 14:49:26.656 2017.01.03 17:05:33  Test button click EURUSD,H1: 28
2018.02.24 14:49:26.656 2017.01.03 17:05:33  Test button click EURUSD,H1: Нажата кнопка C2 - 6
2018.02.24 14:49:25.856 2017.01.03 17:05:32  Test button click EURUSD,H1: 15
2018.02.24 14:49:25.046 2017.01.03 17:05:32  Test button click EURUSD,H1: 20
2018.02.24 14:49:24.236 2017.01.03 17:05:32  Test button click EURUSD,H1: 19


А если запустить на максимальной скорости, то будет 7-8 но нажимать кнопки не успеваю...

Файлы:
 
Alexey Viktorov:

Чувствительная это сколько микросекунд на проверку 30 (тридцати) кнопок???


А если запустить на максимальной скорости, то будет 7-8 но нажимать кнопки не успеваю...


буду искать причину тормозов у себя

 
Vladislav Andruschenko:


буду искать причину тормозов у себя

Повторюсь - в МТ5, обращение к объектам идет не на прямую (как в МТ4), а через очередь чарта - это особенность МТ5 и исправить это могут только Метаквоты.

тормозят все функции типа: ObjectFind, ObjectGetDouble, ObjectGetInteger

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