эмуляция ошибок. мт5

 
Мне надо проверить как робот обрабатывает ошибки. Соответствующий блок обработки написан, но как теперь его проверить?
Допустим пришло время купить, робот отправляет сигнал на покупку и получает реткод 10020 или 10010 или что нить другое и начинает эту ошибку обрабатывать.
В теории, да и в коде, выглядит всё замечательно, но как это проверить в отладчике или в реалтайме (не ожидая вечность пока ошибка возникнет) ума не проложу.
Есть у кого какие мысли или соответствующий опыт?
 
Alexey Oreshkin:
Мне надо проверить как робот обрабатывает ошибки. Соответствующий блок обработки написан, но как теперь его проверить?
Допустим пришло время купить, робот отправляет сигнал на покупку и получает реткод 10020 или 10010 или что нить другое и начинает эту ошибку обрабатывать.
В теории, да и в коде, выглядит всё замечательно, но как это проверить в отладчике или в реалтайме (не ожидая вечность пока ошибка возникнет) ума не проложу.
Есть у кого какие мысли или соответствующий опыт?
Послать заведомо ложный параметр в MqlTradeRequest
 
Alexey Volchanskiy:
Послать заведомо ложный параметр в MqlTradeRequest
А вот есть ли другой вариант ? Не правильный запрос итак обработается как надо. Хочется чтобы ушёл правильный и возникла ошибка.
 
Прям такой сложный алгоритм, не очевидно понятный?
 
Alexey Oreshkin:
А вот есть ли другой вариант ? Не правильный запрос итак обработается как надо. Хочется чтобы ушёл правильный и возникла ошибка.
Проще пареной репы. Устройтесь на работу системным программистом к брокеру и генерите на торговом сервере ошибки на правильные запросы. Желательно, сразу для всех клиентов, ну чтобы ничего не упустить ))
 

А если примерно так

bool mql_Debug;

int OnInit()
{
 mql_Debug = MQLInfoInteger(MQL_DEBUG);
}

void OnTick()
{
 open();
}

int open()
{
 if(mql_Debug)
  return(10020);
 else
  {
   // или поменять последовательность...
  }
}
 
Alexey Viktorov:

А если примерно так

Ошибка-то не возникнет, GetLastError вернет ERR_NO_ERROR
 
Alexey Volchanskiy:
Ошибка-то не возникнет, GetLastError вернет ERR_NO_ERROR
Алексей, ну это-же только намёк на направление, а дальше полёт фантазии. Ведь не надо именно GetLastError() а главное проверить ход выполнения при получении номера ошибки. При получении тоже можно поставить условие if(mql_Debug)
 

Подмените методы Trade (или какой вы используете?) и GetLastError, чтоб не отправляли приказов и устанавливали один из нужных кодов ошибки.

В МТ5 можно использовать режим теста "произвольная задержка", помогает элементарные реквоты проверить на некоторых серверах. 

А полноценно все равно только в реале получится проверить. 

 
Andrey Khatimlianskii:

А полноценно все равно только в реале получится проверить. 

Уважаемые коллеги, напоминаю: Вы живете реальной жизнью. И всего один раз. 
 
Алексей Тарабанов:
Уважаемые коллеги, напоминаю: Вы живете реальной жизнью. И всего один раз. 

Неправда, эта Вселенная самораспадется, когда я проснусь )) Не будите ...

 

-------- З.Ы. 

А я в последние год-два сразу тестирую на центовых. Ну, на тестере прогоню, чтобы убедиться, что нет явных ошибок именно в коде.

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