Имеется интересная торговая идея. Помогите найти ошибки в коде (mql4). - страница 7

 
Sergey Gritsay:
Такой вариант подходит если советник одновалютный, если делать мульти валютный, то надо в ините для всех пар индикаторы создавать.
а понял - пропустил этот момент, он значит по всем валютам, что в терминале открыты?
 
Над версией для МТ5 надо еще работать, вариант который я выкладывал довольно глючный получился
 
Сергей Криушин:
а понял - пропустил этот момент, он значит по всем валютам, что в терминале открыты?

да 

 

Всем привет! Переписал советник под мт5 с использованием стандартных классов. Пока полет нормальный, тестируем и отписываемся по ошибкам. Для тестирования советника в тестере в режиме визуализации нужно прописать необходимые символы, функция выглядит так. 

bool symbol_tester(string symbol)
  {
   if(!MQLInfoInteger(MQL_VISUAL_MODE))return(true);
//if(!MQLInfoInteger(MQL_TESTER))return(true);
//if(!MQLInfoInteger(MQL_OPTIMIZATION))return(true);

   if(symbol=="EURUSD")return(true);
   if(symbol=="AUDUSD")return(true);
   if(symbol=="GBPUSD")return(true);
   if(symbol=="USDCAD")return(true);
   if(symbol=="USDCHF")return(true);
   if(symbol=="USDJPY")return(true);
   if(symbol=="NZDUSD")return(true);
   if(symbol=="GBPCAD")return(true);

   return(false);
  }
Файлы:
 

Что-то с классами индикаторов я намудрил или они действительно тяжелые, тестер прям на глазах теряет скорость. В общем переделал обработку индикаторов без стандартных классов. Также добавил выбор сигналов.

 signal_01 - если cci(13)  меньше -100 для бай, больше 100 для селл

signal_02 - если cci(13) пересекла -100 сверху вниз для бай, если cci(13) пересекла 100 снизу вверх для селл

signal_03 - если cci(13)  пересекла - 100 снизу вверх для селл, если cci(13)  пересекла 100 сверху вниз для селл

signal_04 - если cci(13) пересекла 100 снизу вверх для селл, если cci(13) пересекла -100 сверху вниз для селл

signal_05 - если cci(13)  больше 100 для бай, меньше -100 для селл.

 

Убрал некоторые глюки в работе панели, исправил поиск тренда при перезапуске советника. 

Файлы:
 
добавил выбор сигналов в версии для мт4
Файлы:
 

исправил получение ошибки неверные стопы. Также обратил внимание что в тестере МТ5 в функции OnTick() советник работает быстрее чем в OnTimer(). Поэтому рекомендую заменять их в коде при запуске на тестере.

Файлы:
 
Sergey Gritsay:

исправил получение ошибки неверные стопы. Также обратил внимание что в тестере МТ5 в функции OnTick() советник работает быстрее чем в OnTimer(). Поэтому рекомендую заменять их в коде при запуске на тестере.

В тестере вообще  перестал работать...Непонятно как накручивает лоты без остановки в мт5 и выставляет позиции по парам, которых нет в терминале: USDSEK; USD ZAR; USDMXM, но они есть в обзоре рынка... может из-за этого и тестер тормозит...

 
таблица стала в 2 столбца на весь экран - один столбец
 

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

Файлы: