Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Отслеживай все платежи в профиле. Это просто!
Roman Zamozhnyy
2187
Roman Zamozhnyy 2011.09.25 15:43 

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

Я знаю, что если перечислить все символы ручками, эксперт обратится ко всем перечисленным символам. Но хочется символы для тестирования не прописывать ручками, а выбрать в окне "Обзор рынка". 

Sergey Gritsay
6457
Sergey Gritsay 2011.09.25 18:07  
Такая же проблема. Видит только тот символ на котором запускаешь прогон или все символы если запрашиваешь SymbolsTotal с флагом false.

Roman Zamozhnyy
2187
Roman Zamozhnyy 2011.09.25 18:49  
Поседеть можно, если формируешь для тестирования портфель инструментов и вместо потыкать в окошке Обзора интересующие инструменты вынужден кодить ручками неимоверное число различных вариантов портфеля...
MetaQuotes
Админ
24945
Renat Fatkhullin 2011.09.25 19:34  

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

Чтобы он начал моделировать цены по другим инструментам, надо явным образом добавлять символы в маркет вотч тестера. Грубый вариант такой:

  for(int i=0;i<SymbolsTotal(false);i++)
    {
     string name = SymbolName(i,false);
     SymbolSelect(name,true);
    }
Но учтите, что в результате можете получить пропорциональное замедление процесса тестирования. 10 дополнительных символов могут дать замедление в 10 раз.
Roman Zamozhnyy
2187
Roman Zamozhnyy 2011.09.25 22:08  
Renat:

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

Чтобы он начал моделировать цены по другим инструментам, надо явным образом добавлять символы в маркет вотч тестера. Грубый вариант такой:

Но учтите, что в результате можете получить пропорциональное замедление процесса тестирования. 10 дополнительных символов могут дать замедление в 10 раз.

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

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

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

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

MetaQuotes
Админ
24945
Renat Fatkhullin 2011.09.25 22:35  

Речь идет об одиночном прогоне тестирования или об оптимизации параметров?

Если об одиночном тестировании, то включать символы можно как я указал в коде. Можно работать на символах, включенных в маркетвотче.

Если речь об переборе символов в опимизаторе, то есть специальный режим оптимизации "по всем символам, выбранным в Market Watch":



Vladimir Batrudinov
4924
Vladimir Batrudinov 2011.09.25 22:36  
Renat:

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

Чтобы он начал моделировать цены по другим инструментам, надо явным образом добавлять символы в маркет вотч тестера. Грубый вариант такой:

  for(int i=0;i<SymbolsTotal(false);i++)
    {
     string name = SymbolName(i,false);
     SymbolSelect(name,true);
    }
Но учтите, что в результате можете получить пропорциональное замедление процесса тестирования. 10 дополнительных символов могут дать замедление в 10 раз.

Как минимум в последнем билде у меня этот код не работал (верней подобный).

Специально сейчас добавил в блок инициализации данный код.

Результат в режиме тестирования (визуализация) прост - виден список всех символов, но при этом цены есть только у основной пары :(

Roman Zamozhnyy
2187
Roman Zamozhnyy 2011.09.25 22:43  
Renat:

Речь идет об одиночном прогоне тестирования или об оптимизации параметров?

Если об одиночном тестировании, то включать символы можно как я указал в коде. Можно работать на символах, включенных в маркетвотче.

Если речь об переборе символов в опимизаторе, то есть специальный режим оптимизации "по всем символам, выбранным в Market Watch":



Ммм, речь идет об одиночном тестировании... Т.е., как я понимаю, в одиночном тестировании многовалютного эксперта нет НИКАКОЙ возможности не формировать список инструментов вручную (неважно каим образом, важно то, что вручную), а просто меняя профили задавать этим самым и перечень символов, которые будут участвовать в одиночном тестировании?
Anatoli Kazharski
56846
Anatoli Kazharski 2011.09.26 05:40  
Renat:

Речь идет об одиночном прогоне тестирования или об оптимизации параметров?

Если об одиночном тестировании, то включать символы можно как я указал в коде. Можно работать на символах, включенных в маркетвотче.

Если речь об переборе символов в опимизаторе, то есть специальный режим оптимизации "по всем символам, выбранным в Market Watch":

Не рассматривали ли вариант, когда пользователю можно сделать выбор, оптимизировать эксперта в режиме сквозной оптимизации, как сейчас (одни параметры для всех инструментов) либо вариант, когда для каждого символа свои параметры? Нужен и второй вариант для анализа. 
Rashid Umarov
Админ
11815
Rashid Umarov 2011.10.25 18:22  
Rich:

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

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

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

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

Можно легко автоматизировать получение списка символов и ничего объяснять заказчику не нужно. Пусть запускает на нужном наборе. Полученный список можно легко:

  • редактировать
  • использовать в своем коде

Вот набросал за 3 минут, и результат


//+------------------------------------------------------------------+
//|                                     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"
#property script_show_inputs
//--- input parameters
input bool     fromMarketWatch=true;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- всего символов
   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());
     }

  }
//+------------------------------------------------------------------+


Файлы:
Roman Zamozhnyy
2187
Roman Zamozhnyy 2011.10.25 22:37  
Rosh:

Можно легко автоматизировать получение списка символов и ничего объяснять заказчику не нужно. Пусть запускает на нужном наборе. Полученный список можно легко:

  • редактировать
  • использовать в своем коде

Вот набросал за 3 минут, и результат



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

Файлы:
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий