Один новый брокер, назовем его "G" передает названия пар таким образом: "EURUSD....".
Программа должна создать файл с названием символа "EURUSD.....txt". На что возвращает ошибку "5002", якобы не правильное название файла. Вручную файл создается нормально, а программно не хочет.
Как можно решить такое? Раньше символы были с некими префиксами "EURUSDhb" и файлы создавались нормально. Чистить название файла от посторонних символов, так в MQL нет регулярных выражений...
Спасибо.
MQL достаточно крутой язык для решения практически всех задач с целью построения АТС.
Вариант 1. Выведите во внешние переменные префикс в названии инструмента.
Этот префикс будет использоваться для создания имени файла для чтения/записи:
extern string Prefix="..."
Имя файла = "EURUSD"+Prefix+".txt"; //результат "EURUSD...txt""
Вариант 2. Название файла создается не прямым указанием имени инструмента, а косвенным, т.е. командой Symbol().
Имя файла = Symbol()+".txt"; //результат "EURUSD....txt"
Вариант 3. Вырезаем из имени инструмента только значимую часть
Имя файла = StringSubstr(Symbol(),0,6)+".txt"; //результат "EURUSD.txt"
Выбирайте, в зависимости от того, что Вы хотите получить, т.к. Ваш вопрос задан расплывчато.
MQL достаточно крутой язык для решения практически всех задач с целью построения АТС.
Вариант 1. Выведите во внешние переменные префикс в названии инструмента.
Этот префикс будет использоваться для создания имени файла для чтения/записи:
extern string Prefix="..."
Имя файла = "EURUSD"+Prefix+".txt"; //результат "EURUSD...txt""
Вариант 2. Название файла создается не прямым указанием имени инструмента, а косвенным, т.е. командой Symbol().
Имя файла = Symbol()+".txt"; //результат "EURUSD....txt"
Вариант 3. Вырезаем из имени инструмента только значимую часть
Имя файла = StringSubstr(Symbol(),0,6)+".txt"; //результат "EURUSD.txt"
Выбирайте, в зависимости от того, что Вы хотите получить, т.к. Ваш вопрос задан расплывчато.
Большое спасибо за ответы. Сейчас поясню.
Вопрос был в том, что брокер в ответ вызова функции Symbol () возвращает название символа "EURUSD...". То есть не обычный евробакс, а с префиксом "...". И префикс может меняться для другого символа.
Необходимо создавать файлы с названиями инструментов. Это может быть как форекс (6 символов), так и фонды (не фиксированное к-во символов). Через программный код создать файл с названием "EURUSD..." не получается, выдается ошибка.
Большое спасибо за ответы. Сейчас поясню.
Вопрос был в том, что брокер в ответ вызова функции Symbol () возвращает название символа "EURUSD...". То есть не обычный евробакс, а с префиксом "...". И префикс может меняться для другого символа.
Необходимо создавать файлы с названиями инструментов. Это может быть как форекс (6 символов), так и фонды (не фиксированное к-во символов). Через программный код создать файл с названием "EURUSD..." не получается, выдается ошибка.
В момент получения имени уберите (программно) точки.
Да, так и сделал. Через функцию StringReplace создал переменную с значением функции Symbol и затер точки.
Метод 100%? Есть ли еще какие-то ограничения (символы) у MQL4 для создания файлов?
Да, так и сделал. Через функцию StringReplace создал переменную с значением функции Symbol и затер точки.
Метод 100%? Есть ли еще какие-то ограничения (символы) у MQL4 для создания файлов?
Есть еще ограничения на расширения файлов, читайте в доке.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Один новый брокер, назовем его "G" передает названия пар таким образом: "EURUSD....".
Программа должна создать файл с названием символа "EURUSD.....txt". На что возвращает ошибку "5002", якобы не правильное название файла. Вручную файл создается нормально, а программно не хочет.
Как можно решить такое? Раньше символы были с некими префиксами "EURUSDhb" и файлы создавались нормально. Чистить название файла от посторонних символов, так в MQL нет регулярных выражений...
Спасибо.