Скажите, пожалуйста, как программно включать/выключать "Точную шкалу времени" в MetaTrader 5. Что-то не могу это найти. Через CHART_SHOW_DATE_SCALE - это, как понимаю, не то.
Вручную интересующее включается по следующему пути:
Ниже прилагаю тестовый код. Если в торговом терминале вручную включить "Точную шкалу времени", то этот тестовый индикатор строит вертикальные отрезки линий с точками привязок между двумя барами. Если не включать, то не между барами.
На скрине ниже вертикальный отрезок линии, созданной тестовым кодом между барами, когда включена "Точная шкала времени"
Сразу скажу и второе, что интересует:
Если запустить этот код в тестере, то линии не строятся точками привязок между барами. Создаются не как на скрине выше, а как на скрине ниже.
MetaTrader 5 Version: 5.00 build 1295
Тут пока не знаю как точнее задать вопрос, не имея ответа на первый.
P./S.:
Внесла уточнения:
добавила скрины;
заменила тестовый код, убрав из него остававшиеся от варианта до сокращений перед выкладкой не используемую здесь переменную и отображение отдельного окна;
внесённые по тексту уточнения выделила тёмно-синим цветом шрифта.
Исходя из результатов поиска по сайту пришла к выводу, что вроде точно пока ещё нет в Справке по MQL5 функции, с помощью которой можно программно включать/выключать "Точную шкалу времени" в MetaTrader 5.
У меня почему-то отложилось, что в последние времена какие-то изменения были в этом плане. Хотя конечно, видимо ошибаюсь.
Если так, то переформулирую свой первый вопрос выше:
Будет ли введена функция для программного включения/выключения "Точной шкалы времени"?
И в любом случае (будет или не будет введена): как делать в тестере это включение/выключение?
Если скриптом, то можно (реализация совсем иная - без изменения ТФ) вызывать OnCalculate уже какого-то конкретного индикатора на чарте, либо всех сразу.
Но мне для другого надо, и такой вариант не подходит.
Но такой (скрипт) вариант тоже не подходит, если индикатор должен заставить терминал вызвать свой же OnCalculate (MT5).
За нулевым (текущим) баром вправо терминал считает время исходя из семидневной недели. В реальности торговые недели пятидневные. Из-за этого с наступлением новой даты изменяется положение на экране почти всех объектов. Они "съезжают", искажаются. Как программист, понимаю, что это трудно исправить для всех торгуемых инструментов, но этот параметр можно вынести в настройки, чтобы пользователи могли подобрать оптимальный.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Через CHART_SHOW_DATE_SCALE - это, как понимаю, не то.
Вручную интересующее включается по следующему пути:
Терминал -> Сервис -> Настройки -> Графики -> Точная шкала времени
Ниже прилагаю тестовый код. Если в торговом терминале вручную включить "Точную шкалу времени", то этот тестовый индикатор строит вертикальные отрезки линий с точками привязок между двумя барами. Если не включать, то не между барами.
На скрине ниже вертикальный отрезок линии, созданной тестовым кодом между барами, когда включена "Точная шкала времени"
Сразу скажу и второе, что интересует:
Если запустить этот код в тестере, то линии не строятся точками привязок между барами. Создаются не как на скрине выше, а как на скрине ниже.
MetaTrader 5 Version: 5.00 build 1295
Тут пока не знаю как точнее задать вопрос, не имея ответа на первый.
P./S.:
Внесла уточнения:
Как в MT5 заставить САМ терминал вызвать OnCalculate? ChartRedraw не помогает. DLL-вариант не подходит.
Иными словами, нужно создать событие Calculate: https://www.mql5.com/ru/docs/runtime/event_fire#calculate
Исходя из результатов поиска по сайту пришла к выводу, что вроде точно пока ещё нет в Справке по MQL5 функции, с помощью которой можно программно включать/выключать "Точную шкалу времени" в MetaTrader 5.
У меня почему-то отложилось, что в последние времена какие-то изменения были в этом плане. Хотя конечно, видимо ошибаюсь.
Если так, то переформулирую свой первый вопрос выше:
Будет ли введена функция для программного включения/выключения "Точной шкалы времени"?
И в любом случае (будет или не будет введена): как делать в тестере это включение/выключение?
Как в MT5 заставить САМ терминал вызвать OnCalculate? ChartRedraw не помогает. DLL-вариант не подходит.
Если найдете, мне тоже скажите )
На данный момент насколько я знаю ответ "никак".
Если найдете, мне тоже скажите )
На данный момент насколько я знаю ответ "никак".
Если советником, то так
Но мне для другого надо, и такой вариант не подходит.
Если советником, то так
Если скриптом, то можно (реализация совсем иная - без изменения ТФ) вызывать OnCalculate уже какого-то конкретного индикатора на чарте, либо всех сразу.
Но мне для другого надо, и такой вариант не подходит.
Но такой (скрипт) вариант тоже не подходит, если индикатор должен заставить терминал вызвать свой же OnCalculate (MT5).
В индикаторе я вообще OnCalculate() последнее время не использую - и ничего, морда шире только становится. :)
А серьёзно: используйте OnChartEvent (). Подходит для всех случаев в жизни (имхо).
В индикаторе я вообще OnCalculate() последнее время не использую - и ничего, морда шире только становится. :)
А серьёзно: используйте OnChartEvent (). Подходит для всех случаев в жизни (имхо).
Баг. Неточность, но сильно мешает и раздражает.
За нулевым (текущим) баром вправо терминал считает время исходя из семидневной недели. В реальности торговые недели пятидневные. Из-за этого с наступлением новой даты изменяется положение на экране почти всех объектов. Они "съезжают", искажаются. Как программист, понимаю, что это трудно исправить для всех торгуемых инструментов, но этот параметр можно вынести в настройки, чтобы пользователи могли подобрать оптимальный.
Например,
торговых_дней_в_неделе = 5.