Здравствуйте.
Подскажите какие бывают разделители префикса и суффикса валютных пар.
Я встречал только "." и "_" (EURUSD.m и EURUSD_m)
Может кто знает еще какие есть, или как получить чистое название символа по другому
На данный момент использую функцию
string NameSymb="EURCAD,USDCAD,EURUSD,AUDCAD,EURNZD,NZDUSD,AUDUSD,#CAT"; int OnInit() { // Создадим массив символов для работы SymbTrade[]. Добавление в данном случае по лоту string FillSymb[]; StringReplace(NameSymb," ",""); // Удаляем случайно вставленные пробелы в строку с символами CountSymbol=StringSplit(NameSymb,StringGetCharacter(",",0),FillSymb); int k=-1; for(int d=0;d<CountSymbol;d++) { string tSymb=FillSymb[d]; string rSymb=""; if(RealSymbol(tSymb,rSymb)) { double minlot=SymbolInfoDouble(rSymb,SYMBOL_VOLUME_MIN); if(minlot>0 && minlot<=Lots) { // Проверка на минимальный лот для правильной работы советника k++; ArrayResize(SymbTrade,k+1); SymbTrade[k]=rSymb; // Создадим массив торговых символов if(!SymbolInfoInteger(rSymb,SYMBOL_SELECT)) SymbolSelect(rSymb,true); // Покажем символы в "Обзор рынка" Print(k+1,": Trade: ",tSymb," = ",rSymb,", MinLot: ",minlot); } else Print("-: Trade not allowed: ",rSymb,", MinLot: ",minlot); // Лот не подходит для торговли } else Print("-: No symbol on server: ",tSymb); // Нет такого символа на сервере } } //=============================================================================================== //------------------------ Преобразование символа к терминальному виду -------------------------+ //=============================================================================================== bool RealSymbol(string temp,string& real) { int cn=SymbolsTotal(false); for(int i=0;i<cn;i++) { string symb=SymbolName(i,false); if(StringFind(symb,temp,0)>-1) { real=symb; return(true); }} return(false); }
Спасибо, но немного не то.
Ваша функция возвращает есть ли символ с таким названием в обзоре рынка или нет, а мне нужно получить чистое название символа без префиксов и суффиксов.
Не проще использовать StringFind. И пусть там будет любой разделитель, или даже без него. Есть основа символа, значит наш.
StringFind не представляю как использовать
например: в одном терминале EURUSD_m, на другом терминале i.EURUSD, мне нужно чтобы они друг друга поняли что это один и тот-же символ.
задавать префиксы/суффиксы, название символа через внешние переменные можно конечно, но хочется сделать это все на автомате.
Спасибо, но немного не то.
Ваша функция возвращает есть ли символ с таким названием в обзоре рынка или нет, а мне нужно получить чистое название символа без префиксов и суффиксов.
Ну так вот же оно:
string NameSymb="EURCAD,USDCAD,EURUSD,AUDCAD,EURNZD,NZDUSD,AUDUSD,#CAT";
Или чистый - это что-то другое?
StringFind не представляю как использовать
В функции RealSymbol как раз показано, как использовать.
например: в одном терминале EURUSD_m, на другом терминале i.EURUSD, мне нужно чтобы они друг друга поняли что это один и тот-же символ.
задавать префиксы/суффиксы, название символа через внешние переменные можно конечно, но хочется сделать это все на автомате.
Да, именно это и было дано во втором посте. Осталось только расширить набор имен символов в строке NameSymb, если требуется.
Ну так вот же оно:
Или чистый - это что-то другое?
В функции RealSymbol как раз показано, как использовать.
Да, именно это и было дано во втором посте. Осталось только расширить набор имен символов в строке NameSymb, если требуется.
Там видимо копировщик, и нужно с мастера получать к примеру EURUSD_m, а применять уже к EURUSD.е
Ну так вот же оно:
Или чистый - это что-то другое?
В функции RealSymbol как раз показано, как использовать.
Да, именно это и было дано во втором посте. Осталось только расширить набор имен символов в строке NameSymb, если требуется.
Например:
Я устанавливаю советник №1, который записывает тики/котировки в файл по символу, на который он установлен.
название файла должно содержать имя символа, но это имя символа не должно содержать ни префиксов ни суффиксов.
на второй терминал я ставлю советник №2, который читает тики/котировки из файла по символу, на который он установлен.
- хранение файла в общей папке, название содержит имя символа, который передал советник №1.
- советник №2 ищет файл с названием символа на который он сам установлен.
так вот, у советника №1 символ называется EURUSD_m, а у советника №2 символ называется i.EURUSD
задача состоит в том, чтобы советник №1 писал название символа EURUSD, а советник №2 искал файл с названием символа EURUSD
Там видимо копировщик, и нужно с мастера получать к примеру EURUSD_m, а применять уже к EURUSD.е
да, типа того - хочется это дело все на автомате, без лишних движений
Например:
Я устанавливаю советник №1, который записывает тики/котировки в файл по символу, на который он установлен.
название файла должно содержать имя символа, но это имя символа не должно содержать ни префиксов ни суффиксов.
на второй терминал я ставлю советник №2, который читает тики/котировки из файла по символу, на который он установлен.
- хранение файла в общей папке, название содержит имя символа, который передал советник №1.
- советник №2 ищет файл с названием символа на который он сам установлен.
так вот, у советника №1 символ называется EURUSD_m, а у советника №2 символ называется i.EURUSD
задача состоит в том, чтобы советник №1 писал название символа EURUSD, а советник №2 искал файл с названием символа EURUSD
Используй StringFind . Только так.
if(StringFind(Symbol(),"USDCAD",0)!=-1) { Alert("USDCAD"); } else { Alert(" не USDCAD"); }
не. название "USDCAD", может быть и "ххх.USDCAD" а на другом сервере "yyy.USDCAD"
задавать руками не хочется.
наверное проще всего в функции которую я привел в первом посте, сделать перебор разделителей.
только вот какие еще могут быть разделители кроме как "." и "_" ?
ENUM_SYMBOL_INFO_STRING
Идентификатор | Описание | Тип свойства |
SYMBOL_BASIS | Имя базового актива для производного инструмента | string |
SYMBOL_CURRENCY_BASE | Базовая валюта инструмента | string |
SYMBOL_CURRENCY_PROFIT | Валюта прибыли | string |
SYMBOL_CURRENCY_MARGIN | Валюта в которой вычисляется залоговые средства | string |
SYMBOL_BANK | Источник текущей котировки | string |
SYMBOL_DESCRIPTION | Строковое описание символа | string |
- www.mql5.com
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте.
Подскажите какие бывают разделители префикса и суффикса валютных пар.
Я встречал только "." и "_" (EURUSD.m и EURUSD_m)
Может кто знает еще какие есть, или как получить чистое название символа по другому
На данный момент использую функцию