Скачать MetaTrader 5

Как в скрипте можно перебрать программно все инструменты, которые выбраны в окне "Обзор Рынка"?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Рустам
86
Рустам  
Коллеги, подскажите одну вещь, плиз.

Как в скрипте можно перебрать программно все инструменты, которые выбраны в окне "Обзор Рынка" ?

Заранее спасибо.
Igor Malcev
1933
Igor Malcev  

поищите в https://www.mql5.com/en/code/mt4 такой скрипт уже был помнится.

Рустам
86
Рустам  
Еще знать хоть какие-нибудь ключевые слова для поиска.
Владимир
1402
Владимир  
Недавно решал для себя эту задачу. У кого позаимствовал идею перебора уже не помню.
//+------------------------------------------------------------------+  
//----
string Currencies[] = {"AED", "AUD", "BHD", "BRL", "CAD", "CHF", "CNY", 
                       "CYP", "CZK", "DKK", "DZD", "EEK", "EGP", "EUR",
                       "GBP", "HKD", "HRK", "HUF", "IDR", "ILS", "INR",
                       "IQD", "IRR", "ISK", "JOD", "JPY", "KRW", "KWD",
                       "LBP", "LTL", "LVL", "LYD", "MAD", "MXN", "MYR",
                       "NOK", "NZD", "OMR", "PHP", "PLN", "QAR", "RON",
                       "RUB", "SAR", "SEK", "SGD", "SKK", "SYP", "THB",
                       "TND", "TRY", "TWD", "USD", "VEB", "XAG", "XAU",
                       "YER", "ZAR"}; 
string Symbols[];
int    SymbolCount = 0; 
//+------------------------------------------------------------------+
//| СОЗДАЁТ СПИСОК ДОСТУПНЫХ ВАЛЮТНЫХ СИМВОЛОВ                       |
//+------------------------------------------------------------------+
int CreateSymbolList()
  {
   int CurrencyCount = ArrayRange(Currencies, 0);
   int Loop, SubLoop;
   string TempSymbol;
   for(Loop = 0; Loop < CurrencyCount; Loop++)
       for(SubLoop = 0; SubLoop < CurrencyCount; SubLoop++)
         {
           TempSymbol = Currencies[Loop] + Currencies[SubLoop];
           if(MarketInfo(TempSymbol, MODE_BID) > 0)
             {
               ArrayResize(Symbols, SymbolCount + 1);
               Symbols[SymbolCount] = TempSymbol;
               SymbolCount++;
             }
         }
   return(0);
  }
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
//---------------------
int deinit()
  {
  Comment("");
  return(0);
  }
//---------------------
//---------------------
int init()
  {
  return(0);
  }
//---------------------
int start()
  {
  int handle,i,s;
 
  s=CreateSymbolList();
  string n= "currency.txt";
  handle=FileOpen(n, FILE_CSV|FILE_WRITE,'.');
  if(handle>0)
    {
      for(i=0;i<=SymbolCount-1;i++)
      {
      FileWrite(handle,i+1,Symbols[i]);
      }
     FileClose(handle);
    }   
//----
   return(0);
 
  }
Vadim Zhunko
5226
Vadim Zhunko  
VBAG:
Недавно решал для себя эту задачу. У кого позаимствовал идею перебора уже не помню.
Наверно у меня.
'ZZ_All Quotings 0-0080'
Рустам
86
Рустам  
спасибо за ответ. Но я имел в виду не только валютные пары (инструменты). Эти инструменты я могу и вручную ввести. Имелось в виду огромное многообразие различных фьючерсов, индексов, американских стоков и т.д.
kombat
3278
kombat  

Увы, но простыми способами это не решить...
Самый интересный вариант был здесь:
'SymbolList fromSet'
Просьба к разработчикам ввести в будущем функцию возвращающую список инструментов.
Например:
- ИНСТР (1, Г) все что есть в дилинге
- ИНСТР (2, Г) все что в окне маркетвоча
Г - это группы, т.е. то что в "Символы" разложены по папочкам.

Это уже просьба, это крик души!!!
Ибо наличие инструментов числом в сотни уже не диковнка,
а вот перебор их вручную... немного дикость в наш век нанотехнологий... ;)))

Vadim Zhunko
5226
Vadim Zhunko  
mricos:
спасибо за ответ. Но я имел в виду не только валютные пары (инструменты). Эти инструменты я могу и вручную ввести. Имелось в виду огромное многообразие различных фьючерсов, индексов, американских стоков и т.д.
Там по ссылке всё есть.
Простой перебор всего, что на данный момент есть. Без синтеза названия.
Валютные пары синтезируются.
Vadim Zhunko
5226
Vadim Zhunko  
kombat:

Увы, но простыми способами это не решить...
Самый интересный вариант был здесь:
'SymbolList fromSet'

Для универсального индикатора или скрипта такой способ не подходит.
kombat
3278
kombat  

Да, и это охладило к нему интерес...
И тоже написал разработчикам в просьбах к МКЛ5.

Попутно уже применительно к терминалу.
Добавить в символсет ещё и группы инструментов.
Сейчас там вроде по умолчанию стоят forex и forexall,
а мы ведь знаем что МТ уже далеко не только форекс... ;)

Igor Kim
2739
Igor Kim  
VBAG:
Недавно решал для себя эту задачу.
Не работает там, где ДЦ к наименованию пары добавляют что-нибудь своё. Например, "m", "!", "." или "_".
1234567
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий