Проблема заключается в том, что в новом MQL4 строки - юникодные. Во всех остальных местах: объекты, индикаторы, графики, имена символов, журналы, настройки и т.п. - строки остались ансишными. Поэтому при общении с "внешним миром" в MQL4-программах каждый раз производится преобразование WideCharToMultiByte. В обычном случае символы строк однобайтовые (но в разных кодировках - разные), в Юго-Восточной Азии это - мультибайт (в китайской раскладке 1 символ занимает от 1 до 4 байт.
То есть, не только китайцы, но и европейцы не поймут надписей, предполагающих кодовую страницу 1251
Проблема заключается в том, что в новом MQL4 строки - юникодные. Во всех остальных местах: объекты, индикаторы, графики, имена символов, журналы, настройки и т.п. - строки остались ансишными. Поэтому при общении с "внешним миром" в MQL4-программах каждый раз производится преобразование WideCharToMultiByte. В обычном случае символы строк однобайтовые (но в разных кодировках - разные), в Юго-Восточной Азии это - мультибайт (в китайской раскладке 1 символ занимает от 1 до 4 байт.
То есть, не только китайцы, но и европейцы не поймут надписей, предполагающих кодовую страницу 1251
В чём вся соль: Создаём объект с кириллическим название, далее по клику обрабатывает его в OnChartEvent, но там его названия не видно.
Сегодня проверим в пятёрке, будет ли это место иметь проблему.
Функция MQLSetInteger() предназначена для изменения текущей кодовой страницы в запущенной mql4-программе. Это может понадобиться в тех случаях, когда для запускаемых mql4-программ терминал устанавливает по умолчанию кодовую страницу, отличающаяся от той, которая использовалась при её компиляции. Например, mql4-программа скомпилирована на...
Yes
Проблема заключается в том, что в новом MQL4 строки - юникодные. Во всех остальных местах: объекты, индикаторы, графики, имена символов, журналы, настройки и т.п. - строки остались ансишными. Поэтому при общении с "внешним миром" в MQL4-программах каждый раз производится преобразование WideCharToMultiByte. В обычном случае символы строк однобайтовые (но в разных кодировках - разные), в Юго-Восточной Азии это - мультибайт (в китайской раскладке 1 символ занимает от 1 до 4 байт.
То есть, не только китайцы, но и европейцы не поймут надписей, предполагающих кодовую страницу 1251
Проблема заключается в том, что в новом MQL4 строки - юникодные. Во всех остальных местах: объекты, индикаторы, графики, имена символов, журналы, настройки и т.п. - строки остались ансишными. Поэтому при общении с "внешним миром" в MQL4-программах каждый раз производится преобразование WideCharToMultiByte. В обычном случае символы строк однобайтовые (но в разных кодировках - разные), в Юго-Восточной Азии это - мультибайт (в китайской раскладке 1 символ занимает от 1 до 4 байт.
То есть, не только китайцы, но и европейцы не поймут надписей, предполагающих кодовую страницу 1251
В чём вся соль: Создаём объект с кириллическим название, далее по клику обрабатывает его в OnChartEvent, но там его названия не видно.
Сегодня проверим в пятёрке, будет ли это место иметь проблему.
В чём вся соль: Создаём объект с кириллическим название, далее по клику обрабатывает его в OnChartEvent, но там его названия не видно.
Сегодня проверим в пятёрке, будет ли это место иметь проблему.
В пятёрке работать будет
А для Вашего случая есть решение и в четвёрке
В OnInit вызовите MQLSetInteger(MQL_CODEPAGE,CP_ACP);
Тогда строковые преобразования "туда-сюда" будут адекватными
данный код запускается на EURUSD 30m
терминал выдаёт ошибку:
handle при распечатке выдаёт -1;
подскажите пожалуйста кто знает, что я делаю не так:
данный код запускается на EURUSD 30m
терминал выдаёт ошибку:
А так:
?
подскажите пожалуйста кто знает, что я делаю не так:
данный код запускается на EURUSD 30m
терминал выдаёт ошибку:
подскажите пожалуйста кто знает, что я делаю не так:
данный код запускается на EURUSD 30m
терминал выдаёт ошибку:
Какой однако "сложный" вопрос. Из документации - 4302: Символ не выбран в MarketWatch.
Нужно выбрать AAPL в обзор рынка.
А так:
?
так конечно запустится, смысл в том что бы вместо Symbol() подставить свой символ (например : "AAPL") который отличается от текущего графика
Какой однако "сложный" вопрос. Из документации - 4302: Символ не выбран в MarketWatch.
Нужно выбрать AAPL в обзор рынка.
это первое что я проверил, символ принудительно добавляет и при запуске этого кода все символы добавлены в обзоре рынка
так конечно запустится, смысл в том что бы вместо Symbol() подставить свой символ (например : "AAPL") который отличается от текущего графика
Перед тем, как отдавать чужой символ (отличающийся от родного), проверьте сначала название этого чужого символа при помощи SymbolSelect.