MarketInfo возвращает "unknown symbol", как быть?

 

Добрый, код почти весь скопипастеный, местами малость подправил, но не суть. Вот такая вот наколенка:

   if(OrderSelect(43972783,SELECT_BY_TICKET)){
      string symb = OrderSymbol();
      Print(symb);
      double iPoint = MarketInfo(symb,MODE_POINT);
      Print("Error: ", ErrorDescription(GetLastError()));
      Print("iPoint = ",iPoint);
   }else{
      Print(ErrorDescription(GetLastError()));
   }

Выводит мне вот такой вот результат:

2016.09.30 00:24:17.472 Script Test EURUSD,H1: removed
2016.09.30 00:24:17.472 Test EURUSD,H1: uninit reason 0
2016.09.30 00:24:17.472 Test EURUSD,H1: iPoint = 0.0
2016.09.30 00:24:17.472 Test EURUSD,H1: Error: unknown symbol
2016.09.30 00:24:17.472 Test EURUSD,H1: EURJPY
2016.09.30 00:24:17.472 Test EURUSD,H1: initialized

 Как быть, спасайте-выручайте!! ))

Изначально это был скрипт, который брал и скидывал в файл информацию по ордерам из истории... так вот, при подсчете профита в пунктах он, естественно, стал падать при делении на ноль. Начал я разбираться откуда у меня оно взялось, и... вот, собственно - приплыл.

Т.е. я не могу сказать, что мне  MarketInfo ничего не опознает - она некоторые символы вполне нормально переваривает, а некоторые (2х суток не прошло с момента закрытия ордера) - знать не знает... 

Куда копать-то? На странице с описанием этой функции ни про коды возврата, не про дальнейший дебаг - непонятно! (((

 

Сам спросил, сам ответил:

 EURJPY не входит в список, отображаемых по умолчанию, символов (брокер ForexClub). Ордер был установлен, и успешно закрылся в одном экземпляре MT4 (предварительно был нажат пункт меню "показать все символы"). А вот мой скрипт - запускался на другом экземпляре MT4 (под инвесторским заходом, но не суть), в котором никто не игрался со списком символов. Как только EURJPY был открыт в ощем списке - так сразу все и заработало...

 

Теперь остался вопрос: можно ли как-то программно (из того же скрипта)  сначала делать запрос на "отобразить весь список валют", а потом уже обрабатывать историю ордеров, или, может, можно по конкретному символу запрашивать... ?? Никто не сталкивался с такой проблемой?!

 
noob_aka_nk:

Сам спросил, сам ответил:

 EURJPY не входит в список, отображаемых по умолчанию, символов (брокер ForexClub). Ордер был установлен, и успешно закрылся в одном экземпляре MT4 (предварительно был нажат пункт меню "показать все символы"). А вот мой скрипт - запускался на другом экземпляре MT4 (под инвесторским заходом, но не суть), в котором никто не игрался со списком символов. Как только EURJPY был открыт в ощем списке - так сразу все и заработало...

 

Теперь остался вопрос: можно ли как-то программно (из того же скрипта)  сначала делать запрос на "отобразить весь список валют", а потом уже обрабатывать историю ордеров, или, может, можно по конкретному символу запрашивать... ?? Никто не сталкивался с такой проблемой?!

Можно. С помощью SymbolSelect.
 
evillive:
Можно. С помощью SymbolSelect.

- Вообще то, что нужно! Спасибо! )) 

Причина обращения: