Скачать MetaTrader 5

Торговые системы: Как разработать надежный и безопасный торговый робот на языке MQL4

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MetaQuotes Software Corp.
Модератор
187108
MetaQuotes Software Corp.  

New article Как разработать надежный и безопасный торговый робот на языке MQL4 has been published:

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

Author: Shashev Sergei

MQL4 Comments
16319
MQL4 Comments  

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

Shashev Sergei
258
Shashev Sergei  
Для этого можно в процедуре Deal() отправлять соответствующие ордера со стоп-лоссами. Согласен, при стоп-лоссах будет спокойнее спать, но лучше их ставить подальше, чтобы случайные колебания рынка их не выбили, что, к сожалению, так часто происходит.
MQL4 Comments
16319
MQL4 Comments  
Почему при компиляции появляется такая ошибка #include <TradeContext. mqh>?
Shashev Sergei
258
Shashev Sergei  
Эксперт использует библиотеку, которая выложена в прикрепленых файлах .Нужно скопировать библиотеку TradeContext.mqh в папку experts\include. Тогда откомпилируется.
Andrey Khatimlianskii
136
Andrey Khatimlianskii  
Мне тоже статья понравилась. Очень просто и доступно всё расписано.
Понятно, что для реального эксперта нужна намного более сложная система обработки ошибок, но представленный пример лучше, чем ничего. Сейчас, к сожалению, во многих экспертах нет и такого блока обработки...

Бросились в глаза 3 опечатки, лучше всё-таки исправить. В главе "Торговые ошибки", в коде: два раза "if(ticket > 0)" и один раз "RefleshRates();".

А в общем, спасибо автору за статью ;)
MQL4 Comments
16319
MQL4 Comments  

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

Теперь все работает (правда, отрывает сразу по 10 позиций). На тестере RefreshRates() не работает и надо ставить выход из безконечного цикла основной программы.
Вообще, статья нужная. Этот шаблон эксперта - лучший, который я видел с обработкой ошибок. Конечно, требует доработок по обработке ошибок, "защите от дурака", естественно, нормального блока аналитики. .. А в целом, очень неплохо. Думаю использовать как базовый для написания эксперта на цифровых индикаторах.

Shashev Sergei
258
Shashev Sergei  
Да этот шаблон собственно и не для тестера. В тестере эксперты с бесконечным циклом работают неважно.
Denis
6
Denis  

Я запускал на тестере в функции start поменял while(Trade) на if (Trade==true) иначе не хотело работать, да и кажется ж функция start запускается при поступлении нового тика, так что в необходимости цикла вроде как нет необходимости, потом в этой же функции после if(action == 3) идет еще один if в котором идут фигурные скобки на несколько строк, тоже вроде бы не так нужно, так как опять не хотело работать, пока не поменял как по аналогии было сделано ниже и выше в коде, т.е. вот так получилось:

if(action == 3)

{

if(TradeIsBusy() < 0)//после этого if убраны фигурные скобки

return(-1);

Так что не знаю правильно сделал или нет, но так заработало. И также в одной из статей взял логгинг и прикрутил сюда чтобы можно было видеть как все работает. А так тоже взял для основы этот код.

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