Максисальная длина названия символа на FOREX - страница 3

 
Vitaly Muzichenko:

Но Я не пойму задачу, почему туда нельзя сразу подставить символ, независимо от его длины

Потому что Magic имеет тип ulong (8 байт) 6 байт используются для основного магика, а два байта для вариаций этого магика

 
Vitaly Muzichenko:

Но Я не пойму задачу, почему туда нельзя сразу подставить символ, независимо от его длины

Вот кусочек кода. Думаю увидите

string FindSymbol(const string str)
{
     
     string symbol = NULL, sym = str;
     if( !StringToUpper( sym ) ) return symbol;

     for(i=0; i<SymbolsTotal(false); i++)
     {
          string s = SymbolName(i, false);
          if( !StringToUpper( s ) ) continue;
          if(StringFind(sym, s, 0) < 0 &&
             StringFind(s, sym, 0) < 0) continue;
          symbol = SymbolName(i, false);
          break;
     }

     return symbol;
}
Ситуации бывают разные. Особенно если пишется для клиентов, то лучше бывает перепроверить.
 
prostotrader:

Потому что Magic имеет тип ulong (8 байт) 6 байт используются для основного магика, а два байта для вариаций этого магика

Может так?

string GetForexName(string Str)
  {
  string ch, res;
  string mass[26]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
  int Len=StringLen(Str);
  // цикл по буквам строки
   for(int i=0;i<Len;i++)
     {
      ch=StringSubstr(Str,i,1);
      for(int c=0;c<26;c++)
       {
        if(mass[c]==ch)
          res+=ch;
          break;
       }
     }
//---
   return(res);
  }

//Print( GetForexName(/*_Symbol*/".AUDCHFnosp") ); // получим чистый символ, без префиксов и суффиксов "AUDCHF"
 
Alexander Bereznyak:

если использовать только валютные пары:

Для функции SymbolInfoString()

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

SYMBOL_FORMULA

Формула для построения цены пользовательского символа

string

SYMBOL_ISIN

Имя торгового символа в системе международных идентификационных кодов ценных бумаг — ISIN (International Securities Identification Number). Международный идентификационный код ценной бумаги  — это 12-разрядный буквенно-цифровой код, однозначно идентифицирующий ценную бумагу. Наличие данного свойства символа определяется на стороне торгового сервера.

string

SYMBOL_PAGE

Адрес интернет страницы с информацией по символу. Данный адрес будет отображаться в виде ссылки при просмотре свойств символа в терминале

string

SYMBOL_PATH

Путь в дереве символов

string

Спасибо, а кто-нибудь может проверить что возвращается если запросить SYMBOL_DESCRIPTION и SYMBOL_ISIN на символах ecn______ и .AUDCHFnosp ?

 
prostotrader:

Спасибо, а кто-нибудь может проверить что возвращается если запросить SYMBOL_DESCRIPTION и SYMBOL_ISIN на символах ecn______ и .AUDCHFnosp ?

Вот:

Print( "SYMBOL_CURRENCY_BASE=",SymbolInfoString("AUDNZD",SYMBOL_CURRENCY_BASE)," || SYMBOL_ISIN=",SymbolInfoString("AUDNZD",SYMBOL_ISIN) );

2018.08.24 11:58:36.727	Sym AUDNZD,H1: SYMBOL_CURRENCY_BASE=AUD || SYMBOL_ISIN=
 
Vitaly Muzichenko:

Вот:

Спасибо, а SYMBOL_DESCRIPTION ?

Т.е Базовый символ всегда стоит первым в паре?
 
Виталий, проверьте пожалуйста появляется ли сообщение "FOREX done." на "кривых" символах
Файлы:
 
prostotrader:
Виталий, проверьте пожалуйста появляется ли сообщение "FOREX done." на "кривых" символах

prostotrader, прошу прощения, но сейчас не могу - нет времени совсем, у меня стройка. Подхожу к компьютеру на перекурах всего пару минут.

 
Vitaly Muzichenko:

prostotrader, прошу прощения, но сейчас не могу - нет времени совсем, у меня стройка. Подхожу к компьютеру на перекурах всего пару минут.

Ок

Ребята, проверьте пожалуйста на символах отличными от 6 букв

 
prostotrader:

Ок

Ребята, проверьте пожалуйста на символах отличными от 6 букв

prostotrader, подключите форекс-счёт, и на нём тестируйте, у вас-же есть терминал мт5. Так будет быстрее, и будете видеть все логи