Доступность перечня символов "Обзора рынка" в режиме тистирования - страница 2

 
Rich:
Поседеть можно, если формируешь для тестирования портфель инструментов и вместо потыкать в окошке Обзора интересующие инструменты вынужден кодить ручками неимоверное число различных вариантов портфеля...

В обзоре рынка правой кнопкой - Наборы - Сохранить как, потом из эксперта открывать файл. Незначительное количество лишних телодвижений.

Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
Rich:

Ренат, спасибо, это я уже ручками потыкал, попробовал, понял...

Весь то прикол как раз в том, чтобы в "Обзоре..." выбрать нужные символы, по ним, и только по выбранным в окошке символам протестироваться, убрать ненужные (опять же в окошке), добавить недостающие - опять потестироваться, и потом - на торговлю. И все это без внесения изменений в исходники, без перекомпиляции. Ну вот, жизненный пример: у меня три различных профиля, в каждом профиле куча разных инструментов, чтобы потестировать многовалютный советник в каждом профиле, как Вы и писали, ручками в коде формирую портфели, компилю, тестю, а мог бы просто выбрал новый профиль - и тестю только на тех инструментах, который в профиле загружаются в "Обзор...".

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

По тексту прозвучало "...по умолчанию..." - и это значит, что кроме умолчаний есть и другие режимы старта тестера. Интересующий меня есть? Если да - как к нему получить доступ? 

А если через файл загружать нужные символы и параметры для мультивалютника? Когда параметры передаются в блок инициализации советника он выбирает его в MarketWatch.
Файлы:
 
Konstantin83:
А если через файл загружать нужные символы и параметры для мультивалютника? Когда параметры передаются в блок инициализации советника он выбирает его в MarketWatch.
Там еще сам символ нужно передать в блок инициализации)
 
Integer:

В обзоре рынка правой кнопкой - Наборы - Сохранить как, потом из эксперта открывать файл. Незначительное количество лишних телодвижений.

 

Дмитрий, спасибо, именно так я сейчас всё и реализовал. Но это всё-таки как минимум один лишний шаг. А вот Ренат писал:

Renat 2011.09.25 19:34 

Тестер по умолчанию стартует на одном символе...

 Т.е. не по умолчанию можно грузить весь MarketWatch, чего бы и хотелось...

 
Rich:

Рашид, Вы написали скрипт. Во вложении он же, но переделанный в эксперт. Не поленитесь, откройте в MarketWatch-е несколько инструментов и откройте хоть один график из выбранных инструментов. Киньте на любой  график эксперт - посмотрите результат: в файле будут аккуратно перечислены все инструменты. Но это мне не интересно! 

Сделал, только немного оптимизировал, чтобы он не писал в файл на каждом тике

//+------------------------------------------------------------------+
//|                                     GiveMeCurrentMarketWatch.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                https://www.mql5.com/ru/forum/4739 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link      "https://team.metaquotes.ru/email/view/599588"
#property version   "1.00"
//--- input parameters
input bool     fromMarketWatch=true;
bool  first=true;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {

   if(first)
     {
      MakeList();
      first=false;
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void MakeList()
  {
//--- всего символов
   int total=SymbolsTotal(fromMarketWatch);
   string list=" \r\n";
//--- соберем список символов
   for(int i=0;i<total;i++)
     {
      StringAdd(list,SymbolName(i,fromMarketWatch)+"\r\n");
     }
   Comment(list);

//--- запишем в файл  
   ResetLastError();
   int handle=FileOpen("MarketWatchSymbols.txt",FILE_WRITE);
   if(handle!=INVALID_HANDLE)
     {
      FileWrite(handle,list);
      FileClose(handle);
      Print("Symbols from MarketWatch have been saved");
     }
   else
     {
      PrintFormat("Error code=%d",GetLastError());
     }
  }
//+------------------------------------------------------------------+
 

В статье Основы тестирования в MetaTrader 5 говорится:

При тестировании эмулируется также и "Обзор рынка", из которого можно получать информацию по инструментам. По умолчанию в начале тестирования в "Обзоре рынке" тестера есть только один символ - символ на котором запущено тестирование. Все необходимые символы подключаются к "Обзору рынка" тестера (не терминала!) автоматически при обращении к ним.  

Перед началом тестирования мультивалютного эксперта необходимо выбрать требуемые для тестирования инструменты в "Обзоре рынка" терминала и подкачать данные на нужную глубину. При первом же обращении к "чужому" символу будет автоматически произведена синхронизация по этому символу между агентом тестирования и клиентским терминалом. "Чужой" символ - это символ, отличающийся от того, на котором запущено тестирование.

...

Для каждого инструмента генерируется собственная тиковая последовательность в соответствие с выбранным режимом генерации тиков. Кроме того, можно явно запросить историю для нужных символов с помощью вызова функции SymbolSelect() в обработчике OnInit() - загрузка истории будет произведена сразу же до начала тестирования советника.

В данные момент обнаружилось, что в тестере происходит при вызове функций типа SymbolName(i,true) происходит обращение к общему списку символов на сервере, а не к списку символов из MarketWatch терминала. Это будет исправлено.
 
Rosh:

В статье Основы тестирования в MetaTrader 5 говорится:

В данные момент обнаружилось, что в тестере происходит при вызове функций типа SymbolName(i,true) происходит обращение к общему списку символов на сервере, а не к списку символов из MarketWatch терминала. Это будет исправлено.
Рашид, не получилось дотянуть ожидание до года. Как там поживает исправление? Возможно ли ожидать в обозримом будущем выбор в режиме тестирования всех символов из MarketWatch?