Обсуждение статьи "Какие проверки должен пройти торговый робот перед публикацией в Маркете" - страница 6

 

День добрый.

В скрипте Check_OrderLevels.mq4  ошибка проверки Тейкпрофита.

//--- проверим - есть ли изменения в уровне Takeprofit
      bool TakeProfitChanged=(MathAbs(OrderTakeProfit()-sl)>tp)
 
Andrej Hermann:

День добрый.

В скрипте Check_OrderLevels.mq4  ошибка проверки Тейкпрофита.

Спасибо, поправили

 

ВОПРОС по автоматическому тестированию.

Раньше в торговых роботах у меня проверки входных параметров были прописаны в функции OnInit. И автоматическое тестирование не "ругалось" на это.

Теперь же тестирование выдает ошибку инициализации:


Почему я теперь не могу остановить выполнение программы с некорректными параметрами?


 

При автоматическом тестировании вываливаться с такой ошибкой. Как мне ее воспроизвести в обычном тестере, так как там у меня подобных проблем нет. Ну и второй вопрос, как поправить это?

test on EURUSD,H1 (hedging)
 2016.04.29 20:20:01   failed instant sell 2.00 EURUSD at 1.14491, close #20 buy 2.00 EURUSD 1.14426 [Modification failed due to order or position being close to market]
 2016.04.29 20:20:02   failed instant sell 2.00 EURUSD at 1.14490, close #20 buy 2.00 EURUSD 1.14426 [Modification failed due to order or position being close to market]
 2016.04.29 20:20:02   failed instant sell 2.00 EURUSD at 1.14491, close #20 buy 2.00 EURUSD 1.14426 [Modification failed due to order or position being close to market]
 
Alexandr Gavrilin:

При автоматическом тестировании вываливаться с такой ошибкой. Как мне ее воспроизвести в обычном тестере, так как там у меня подобных проблем нет. Ну и второй вопрос, как поправить это?

Модификация не удалась из-за того, что заказ или позиция были близки к рынку.

Наверное пропустили проверку на freeze level stopl level... Не сталкивался, но скорее всего в этом причина. 

 

У меня индикатор мультивалютный и наименования символов указываются во входных параметрах. У меня в терминале он работает (символы находит) а при тестировании для публикации он не может найти символы которые указаны по стандарту во входных параметрах

Что можно сделать в этой ситуации?


Вот код который отвечает за проверку наличия введённых символов в инициализации

//--- Проверка на корректность введённых символов -----------------
   bool s1 = false, s2 = false, s3 = false;
   for(int s = 0; s < SymbolsTotal(true); s++)
     {
      if(SymbolName(s,true) == symbol1) {s1 = true;};
      if(SymbolName(s,true) == symbol2) {s2 = true;};
      if(SymbolName(s,true) == symbol3) {s3 = true;};
     };
   s3 = (s3 == false && visualize == qs2 ? true : s3);
   if(s1 == false) {Print("Symbol ",symbol1," not found (Symbol №1)"); return(INIT_FAILED);};
   if(s2 == false) {Print("Symbol ",symbol2," not found (Symbol №2)"); return(INIT_FAILED);};
   if(s3 == false) {Print("Symbol ",symbol3," not found (Symbol №3)"); return(INIT_FAILED);};
 

Также для тестера есть упоминание в справке: для тестера нужно в OnInit принудительно выбрать символ. То есть сначала SymbolSelect по трём символам и только потом проверка.

Мультивалютное тестирование

Особенности тестирования - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Особенности тестирования - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха, ему неведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...
 
Vladimir Karputov:

Также для тестера есть упоминание в справке: для тестера нужно в OnInit принудительно выбрать символ. То есть сначала SymbolSelect по трём символам и только потом проверка.

Мультивалютное тестирование

Спасибо большое!

 
Доброго времени суток. Во время валидации советника у меня возникает ошибка "no trading operations".  Получается, что советник должен совешить хотя бы одну торговую операцию? Я правильно понимаю? Советник скальпирующий и предполагается, что данные для анализа будут браться из таймфрэйма М1.
 
Alexandr Gladkiy:
Доброго времени суток. Во время валидации советника у меня возникает ошибка "no trading operations".  Получается, что советник должен совешить хотя бы одну торговую операцию? Я правильно понимаю? Советник скальпирующий и предполагается, что данные для анализа будут браться из таймфрэйма М1.

если данные беруться из м1, то берите их из м1 прямо в советнике. 

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