Здравствуйте, не нашел в свойствах Chart привязанного символа ( Терминал МТ5 ).
То есть не создавать на графике новый объект-график, а изменить свойство самого графика.
bool ChartSetSymbolPeriod( long chart_id, // идентификатор графика string symbol, // имя символа ENUM_TIMEFRAMES period // период );
Период можно поставить текущий.
- www.mql5.com
bool ChartSetSymbolPeriod( long chart_id, // идентификатор графика string symbol, // имя символа ENUM_TIMEFRAMES period // период );
Спасибо, это то что нужно.
Однако есть проблемы: "Команда меняет значения символа и периода указанного графика. Функция работает асинхронно, то есть отдает команду и не ждет окончания ее выполнения. Отданная команда поступает в очередь сообщений графика и выполняется только после обработки всех предыдущих команд."
Я поставил эту команду в обработку OnChartEvent.
В результате символ графика меняется, но возникает ошибка: 2023.12.16 11:47:01.492 (USDJPY,H1) ChartWindowsHandle, Error Code = 4022 , ссылающаяся на старый сивмол (новый у меня EURUSD)
Поставил после ChartSetSymbolPeriod(...); Sleep(1000);
(Это помогает, но не всегда.) Нет не помогает
Спасибо, это то что нужно.
Однако есть проблемы: "Команда меняет значения символа и периода указанного графика. Функция работает асинхронно, то есть отдает команду и не ждет окончания ее выполнения. Отданная команда поступает в очередь сообщений графика и выполняется только после обработки всех предыдущих команд."
Я поставил эту команду в обработку OnChartEvent.
В результате символ графика меняется, но возникает ошибка: 2023.12.16 11:47:01.492 (USDJPY,H1) ChartWindowsHandle, Error Code = 4022 , ссылающаяся на старый сивмол (новый у меня EURUSD)
Поставил после ChartSetSymbolPeriod(...); Sleep(1000);
(Это помогает, но не всегда.) Нет не помогает
На всякий случай: смена символа/периода вызывает переинит.
При смене символа или таймфрейма графика, к которому эксперт прикреплен, выгрузка и загрузка эксперта не производится. При этом последовательно вызываются обработчики OnDeinit() на старом символе/таймфрейме и OnInit() на новом символе/таймфрейме (если они есть), значения глобальных переменных и статических переменных не сбрасываются. Все события, поступившие для эксперта до завершения инициализации (функции OnInit()), пропускаются.
Спасибо, это то что нужно.
Однако есть проблемы: "Команда меняет значения символа и периода указанного графика. Функция работает асинхронно, то есть отдает команду и не ждет окончания ее выполнения. Отданная команда поступает в очередь сообщений графика и выполняется только после обработки всех предыдущих команд."
Я поставил эту команду в обработку OnChartEvent.
В результате символ графика меняется, но возникает ошибка: 2023.12.16 11:47:01.492 (USDJPY,H1) ChartWindowsHandle, Error Code = 4022 , ссылающаяся на старый сивмол (новый у меня EURUSD)
Поставил после ChartSetSymbolPeriod(...); Sleep(1000);
(Это помогает, но не всегда.) Нет не помогает
Я не понял что за ошибка
| ERR_PROGRAM_STOPPED | 4022 | Тестирование было прекращено принудительно извне. Например, прервана оптимизацию, или закрыто окно визуального тестирования, или остановлен агент тестирования |
Но на всякий случай можно поставить под условие, если текущий символ не совпадает с новым. И после ChartSetSymbolPeriod надо ставить не Sleep(), а ChartRedraw()
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, не нашел в свойствах Chart привязанного символа ( Терминал МТ5 ).
То есть не создавать на графике новый объект-график, а изменить свойство самого графика.