Не то, что бы чушь... но просто мы тут навигацию исследуем и перерисовка графика никоим образом не влияет (так как в начале эксперимента было явно указанно, что прокрутку графика нужно отключить).
Тестовый код запускается максимум на минуту - две, компьютеры у нас мощные - поэтому нагрузки плёвая.
Не то, что бы чушь... но просто мы тут навигацию исследуем и перерисовка графика никоим образом не влияет (так как в начале эксперимента было явно указанно, что прокрутку графика нужно отключить).
Тестовый код запускается максимум на минуту - две, компьютеры у нас мощные - поэтому нагрузки плёвая.
Тестовые коды могут запускаться часто. /*Сейчас минуту тут, потом минуту там, потом час в другом месте и т.д. ...*/
Я в этом посте приводила ссылку на слова Рената. У него, полагаю, компы помощнее ваших.
Вы, Владимир, опубликовали эти тестовые коды для того, чтобы показать работу(результаты исследований), для скачивания. Перерисовки графика на каждом тике в них - не уместны
P./S.: Во входных параметрах у вас есть возможность отключить/включить только перерисовку графика через ChartRedraw(). Однако внутри тестовых кодов у вас на каждом тике перерисовка графика через Comment
Тестовые коды могут запускаться часто. /*Сейчас минуту тут, потом минуту там, потом час в другом месте и т.д. ...*/
Я в этом посте приводила ссылку на слова Рената. У него, полагаю, компы помощнее ваших.
Вы, Владимир, опубликовали эти тестовые коды для того, чтобы показать работу(результаты исследований), для скачивания. Перерисовки графика на каждом тике в них - не уместны
Насчет перерисовки Вы правильно говорите. Просто не к месту это сейчас ))
Наткнулся на проблему при работе функции ChartNavigate. Что-то неправильно делаю или действительно есть проблема в работе функции. Отпишитесь, кто использовал достаточно часто.
Итак, суть проблемы: ChartNavigate не смещает график при старте терминала, если вызывать функцию в OnInit(). Специально несколько раз прочитал документацию. Нигде не сказано, что функцию нельзя вызывать при инициализации.
Код индикатора для воспроизведения:
Шаги для воспроизведения:
Выключить автопрокуртку графика.
Прикрепить индикатор к графику. ChartNavigate сработает, переместив график в нужное положение.
Выгрузить терминал.
Загрузить терминал. ChartNavigate не сработает, отобразив график без смещения.
Ладно, если бы функция выдавала ошибку. Но ее нет. Все вызовы проходят успешно, но именно при перезагрузке терминала смещение графика не происходит.
Скажите, пожалуйста, а перед тем, как выгрузить терминал, вы возвращаете график к самым свежим ценам?
Почему спрашиваю:
Применила ваш код для того, чтоб посмотреть, как сработает у меня при таких условиях. При опробовании поначалу решила, что у меня воспроизводится описываемая вами проблема. Позже поняла, что - нет. Поскольку если график вернуть перед выгрузкой к самым свежим ценам, то он после загрузки терминала срабатывает согласно коду. Если же перед выгрузкой не вернуть к свежим ценам, то после загрузки график остаётся там, где был перед выгрузкой.
Итак, суть проблемы: ChartNavigate не смещает график при старте терминала, если вызывать функцию в OnInit().
Вы, Владимир, проводите свои исследования не в OnInit(), а в OnCalculate(). Не по вопросу, описанному автором темы.
Т.е., рассматриваете в этой теме что-то другое.
Если вы обнаружили реальную проблему, то может вам обратиться в Сервисдеск с её описанием?
P./S.: Согласно последнему тестовому коду индикатора, прикреплённому тут, у вас уже не происходит принудительной перерисовки графика на каждом тике. Но вместо этого теперь идёт печать в лог на каждом тике. За счёт того, что нет проверки на то, что изменился ли номер первого бара на графике.
Кроме того, у вас в коде содержится активным удаление комментариев. Т.е., если поставить ваш код на график, где будут созданы какие-то нужные комментарии какой-то другой программой, ваш тестовый код их снесёт
P./S.: Удалила в начале поста дубликат цитируемого, поставила вместо него цитаты из другого, взаимосвязанного.
Автор темы создал её по следующему вопросу - ChartNavigate при инициализации:
Вы, Владимир, проводите свои исследования не в OnInit(), а в OnCalculate(). Не по вопросу, описанному автором темы.
Т.е., рассматриваете в этой теме что-то другое.
Если вы обнаружили реальную проблему, то может вам обратиться в Сервисдеск с её описанием?
P./S.: Согласно последнему тестовому коду индикатора, прикреплённому тут, у вас уже не происходит принудительной перерисовки графика на каждом тике. Но вместо этого теперь идёт печать в лог на каждом тике. За счёт того, что нет проверки на то, что изменился ли номер первого бара на графике.
Кроме того, у вас в коде содержится активным удаление комментариев. Т.е., если поставить ваш код на график, где будут созданы какие-то нужные комментарии какой-то другой программой, ваш тестовый код их снесёт
Дина, а у Вас работает? Я вот уже часа 2-3 (только сегодня, не считая вчерашних тестов) бьюсь в попытках получить неработающий вариант в OnInit но всё безуспешно. Всё и всегда отрабатывает как положено. Замечена только такая особенность: Если поставить индикатор на два графика и перезапустить терминал, то отработает только на том графике который был активен в момент закрытия и открытия терминала. На втором, не активном графике не срабатывает. Но это, на мой взгляд, вполне объяснимо, нет отрисовки графика и нет самого графика несмотря на то, что данные поступают.
Отчего же? Я написала/привела чушь?
Не то, что бы чушь... но просто мы тут навигацию исследуем и перерисовка графика никоим образом не влияет (так как в начале эксперимента было явно указанно, что прокрутку графика нужно отключить).
Тестовый код запускается максимум на минуту - две, компьютеры у нас мощные - поэтому нагрузки плёвая.
Не то, что бы чушь... но просто мы тут навигацию исследуем и перерисовка графика никоим образом не влияет (так как в начале эксперимента было явно указанно, что прокрутку графика нужно отключить).
Тестовый код запускается максимум на минуту - две, компьютеры у нас мощные - поэтому нагрузки плёвая.
Тестовые коды могут запускаться часто. /*Сейчас минуту тут, потом минуту там, потом час в другом месте и т.д. ...*/
Я в этом посте приводила ссылку на слова Рената. У него, полагаю, компы помощнее ваших.
Вы, Владимир, опубликовали эти тестовые коды для того, чтобы показать работу(результаты исследований), для скачивания. Перерисовки графика на каждом тике в них - не уместны
Тестовые коды могут запускаться часто. /*Сейчас минуту тут, потом минуту там, потом час в другом месте и т.д. ...*/
Я в этом посте приводила ссылку на слова Рената. У него, полагаю, компы помощнее ваших.
Вы, Владимир, опубликовали эти тестовые коды для того, чтобы показать работу(результаты исследований), для скачивания. Перерисовки графика на каждом тике в них - не уместны
Насчет перерисовки Вы правильно говорите. Просто не к месту это сейчас ))
Насчет перерисовки Вы правильно говорите. Просто не к месту это сейчас ))
Эмм... Не к месту перерисовка на каждом тике. Не к месту стремления убедить, что это не стоит внимания.
А не сказанное об этом.
Но сейчас, за счёт ваших с Владимиром стремлений убедить, что это не к месту и не стоит внимания, акценты действительно сместились в сторону от темы)
Build 1865.
Внёс изменение в индикатор:
то, есть каждый 12-й тик принудительно передвигаем график. Для чего это нужно:
Пока наметилась теория: сдвиг графика зависит ОТ МАСШТАБА ГРАФИКА!
Индикатор версия 1.002:
убрал все Comment (теперь вывод через Print)
по-умолчанию
Явная зависимость от масштаба графика. Причём какая-то память есть, если успеть сдвинуть график вручную один раз.
Наткнулся на проблему при работе функции ChartNavigate. Что-то неправильно делаю или действительно есть проблема в работе функции. Отпишитесь, кто использовал достаточно часто.
Итак, суть проблемы: ChartNavigate не смещает график при старте терминала, если вызывать функцию в OnInit(). Специально несколько раз прочитал документацию. Нигде не сказано, что функцию нельзя вызывать при инициализации.
Код индикатора для воспроизведения:
Шаги для воспроизведения:
Скажите, пожалуйста, а перед тем, как выгрузить терминал, вы возвращаете график к самым свежим ценам?
Почему спрашиваю:
Применила ваш код для того, чтоб посмотреть, как сработает у меня при таких условиях. При опробовании поначалу решила, что у меня воспроизводится описываемая вами проблема. Позже поняла, что - нет. Поскольку если график вернуть перед выгрузкой к самым свежим ценам, то он после загрузки терминала срабатывает согласно коду. Если же перед выгрузкой не вернуть к свежим ценам, то после загрузки график остаётся там, где был перед выгрузкой.
Build 1865.
Внёс изменение в индикатор:
то, есть каждый 12-й тик принудительно передвигаем график. Для чего это нужно:
Пока наметилась теория: сдвиг графика зависит ОТ МАСШТАБА ГРАФИКА!
Индикатор версия 1.002:
...
Явная зависимость от масштаба графика. Причём какая-то память есть, если успеть сдвинуть график вручную один раз.
Автор темы создал её по следующему вопросу - ChartNavigate при инициализации:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
ChartNavigate при инициализации
Ihor Herasko, 2018.06.25 12:17
...
Итак, суть проблемы: ChartNavigate не смещает график при старте терминала, если вызывать функцию в OnInit().
Вы, Владимир, проводите свои исследования не в OnInit(), а в OnCalculate(). Не по вопросу, описанному автором темы.
Т.е., рассматриваете в этой теме что-то другое.
Если вы обнаружили реальную проблему, то может вам обратиться в Сервисдеск с её описанием?
P./S.: Согласно последнему тестовому коду индикатора, прикреплённому тут, у вас уже не происходит принудительной перерисовки графика на каждом тике. Но вместо этого теперь идёт печать в лог на каждом тике. За счёт того, что нет проверки на то, что изменился ли номер первого бара на графике.
Кроме того, у вас в коде содержится активным удаление комментариев. Т.е., если поставить ваш код на график, где будут созданы какие-то нужные комментарии какой-то другой программой, ваш тестовый код их снесёт
P./S.: Удалила в начале поста дубликат цитируемого, поставила вместо него цитаты из другого, взаимосвязанного.
Автор темы создал её по следующему вопросу - ChartNavigate при инициализации:
Вы, Владимир, проводите свои исследования не в OnInit(), а в OnCalculate(). Не по вопросу, описанному автором темы.
Т.е., рассматриваете в этой теме что-то другое.
Если вы обнаружили реальную проблему, то может вам обратиться в Сервисдеск с её описанием?
P./S.: Согласно последнему тестовому коду индикатора, прикреплённому тут, у вас уже не происходит принудительной перерисовки графика на каждом тике. Но вместо этого теперь идёт печать в лог на каждом тике. За счёт того, что нет проверки на то, что изменился ли номер первого бара на графике.
Кроме того, у вас в коде содержится активным удаление комментариев. Т.е., если поставить ваш код на график, где будут созданы какие-то нужные комментарии какой-то другой программой, ваш тестовый код их снесёт
Дина, а у Вас работает? Я вот уже часа 2-3 (только сегодня, не считая вчерашних тестов) бьюсь в попытках получить неработающий вариант в OnInit но всё безуспешно. Всё и всегда отрабатывает как положено. Замечена только такая особенность: Если поставить индикатор на два графика и перезапустить терминал, то отработает только на том графике который был активен в момент закрытия и открытия терминала. На втором, не активном графике не срабатывает. Но это, на мой взгляд, вполне объяснимо, нет отрисовки графика и нет самого графика несмотря на то, что данные поступают.