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

 
Alexey Viktorov:

Через три минуты экспериментов, я пришёл к выводу, что смещение происходит от


а не от текущего положения.

И что? Номер видимых баров-то меняется. Лучше б проверил когда отрабатывает перемещение графика мышью. Её же можно отловить. А раз есть смещение графика с воздействием мышью, то это не отработка функции.
 
Artyom Trishkin:
И что? Номер видимых баров-то меняется. Лучше б проверил когда отрабатывает перемещение графика мышью. Её же можно отловить. А раз есть смещение графика с воздействием мышью, то это не отработка функции.

Я не говорил о проверке выполнения. Если руками сдвинуть график вправо на 100 баров, а потом скриптом попытаться сдвинуть ещё на 10 и тоже в право, то смещение будет установлено на 10 от метки указанной на снимке. Фактически, в этом примере, смещение произойдёт не вправо на 10, а влево на 90.

Что касается проверки... какой смысл проверять то что работает не так как ожидалось? Точней написано не так как хотелось. Чтобы неоднократно двигать график надо смещение делать от CHART_CURRENT_POS а в том примере CHART_END.

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

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

Aleksey Vyazmikin, 2018.04.12 15:43

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

   long handle=ChartID(); 
   if(handle>0) // если получилось, дополнительно настроим 
     { 
      ChartNavigate(handle,CHART_END,-2000); 
     } 

Отсюда вся проблема.

 
Alexey Viktorov:

Я не говорил о проверке выполнения. Если руками сдвинуть график вправо на 100 баров, а потом скриптом попытаться сдвинуть ещё на 10 и тоже в право, то смещение будет установлено на 10 от метки указанной на снимке. Фактически, в этом примере, смещение произойдёт не вправо на 10, а влево на 90.

Что касается проверки... какой смысл проверять то что работает не так как ожидалось? Точней написано не так как хотелось. Чтобы неоднократно двигать график надо смещение делать от CHART_CURRENT_POS а в том примере CHART_END.


Отсюда вся проблема.

Я не читал там код. Может ему так нужно.

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

Так вот, исходя из этого, я говорю про ловлю именно события исполнения команды смещения графика...

Было бы время на эксперименты... Но, увы...

 

В профайлере не видно сигнатуры функций, из-за не понимаешь сразу, какая из перегруженных функций имеется в виду


Т.е. список заполняет __FUNCTION__, а хотелось бы __FUNCSIG__.

 

Помогите найти пост разработчика, где был выложен исходник ArrayResize. Поиск через гугл "site:mql5.com/ru/forum ArrayResize+reserve" не помогает.

Помню, что был исходник. В нем сразу видно, какая логика реализации reserve-параметра.

 
fxsaber:

Помогите найти пост разработчика, где был выложен исходник ArrayResize. Поиск через гугл "site:mql5.com/ru/forum ArrayResize+reserve" не помогает.

Помню, что был исходник. В нем сразу видно, какая логика реализации reserve-параметра.

Исходник, или все-таки псевдокод? Это кардинально разные вещи.

 
Artyom Trishkin:

Если полагаться лишь на факт смещения, то график ведь можно и руками сместить - вот и дырка в логике...

Надо проверить смещение на расчетный бар видимо, а не просто смещение. Только надо сообразить, как это реализовать правильно...

Alexey Viktorov:

Я не говорил о проверке выполнения. Если руками сдвинуть график вправо на 100 баров, а потом скриптом попытаться сдвинуть ещё на 10 и тоже в право, то смещение будет установлено на 10 от метки указанной на снимке. Фактически, в этом примере, смещение произойдёт не вправо на 10, а влево на 90.

Что касается проверки... какой смысл проверять то что работает не так как ожидалось? Точней написано не так как хотелось. Чтобы неоднократно двигать график надо смещение делать от CHART_CURRENT_POS а в том примере CHART_END.


Отсюда вся проблема.

Мне нужно CHART_END , так-как предполагается делать смещение в цикле по датам, а даты удобней искать либо от начала, либо с конца данных, а не от середины...

 
Sergey Dzyublik:

Исходник, или все-таки псевдокод? Это кардинально разные вещи.

Вроде, был прямо исходник выложен. Но даже если и псевдокод, и он будет полезен.

 
Aleksey Vyazmikin:

Надо проверить смещение на расчетный бар видимо, а не просто смещение. Только надо сообразить, как это реализовать правильно...

Мне нужно CHART_END , так-как предполагается делать смещение в цикле по датам, а даты удобней искать либо от начала, либо с конца данных, а не от середины...

Ну так и нет проблем. Незаметно смещение будет только если пытаться сдвинуть на одно и то-же количество баров 2 и более раз при неизменном периоде.

Надеюсь не забыл отключить автосмещение графика?

ChartSetInteger(0, CHART_AUTOSCROLL, 0, false);
 
Alexey Viktorov:

Ну так и нет проблем. Незаметно смещение будет только если пытаться сдвинуть на одно и то-же количество баров 2 и более раз при неизменном периоде.

Надеюсь не забыл отключить автосмещение графика?

Автоскролл, конечно, отключен.