MQL4 - automated forex trading   /  

Форум

Статья: Универсальный шаблон экспертов

К списку тем  | 1 2 Авторизуйтесь или зарегистрируйтесь, чтобы создать новую тему

avatar
Модератор
33780
Rosh 13.08.2007 09:46 
Опубликованиа статья Универсальный шаблон экспертов

Большинство сталкивалось с проблемой написания своих экспертов, но с чего начать? Как задать в коде советника тейк-профит, стоп-лосс или трейлинг-стоп? Как проверить стратегию на работоспособность? В этой статье рассматриваются основные функции для создания экспертов. Может кому-нибудь поможет код трейлинг-стопа?

Автор: Вадим Андреевич


article

Интервью с Максимом Кондратюком (maxfade)

Советник пытается поймать «тренд» в 100 пунктов. Поэтому «не видит» глобального тренда. И еще – он очень не любит, когда пара медленно растет без сильных откатов.


avatar
765
cloud666 13.08.2007 11:39 
Ну!? Помог кому-нибудь???

avatar
132
PSmith 13.08.2007 11:46 

Да там просто ошибка на ошибке. И проверок никаких. Особенно убило вот это

int CloseOnlyOrder()
{
   SelectOnlyOrder();
   if(OrderType()==0)  // Закрываем BUY
   {
      OrderClose(OrderTicket(), OrderLots(), Bid, 0, 0);
   }
   else if(OrderType()==0)  // Это просто никогда не срабатывает. Еще один BUY???
   {
      OrderClose(OrderTicket(), OrderLots(), Ask, 0, 0);
   }
   return(0);
}

avatar
1774
xeon 13.08.2007 12:00 
PSmith писал (а):

Да там просто ошибка на ошибке. И проверок никаких. Особенно убило вот это

int CloseOnlyOrder()
{
   SelectOnlyOrder();
   if(OrderType()==0)  // Закрываем BUY
   {
      OrderClose(OrderTicket(), OrderLots(), Bid, 0, 0);
   }
   else if(OrderType()==0)  // Это просто никогда не срабатывает. Еще один BUY???
   {
      OrderClose(OrderTicket(), OrderLots(), Ask, 0, 0);
   }
   return(0);
}

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

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


avatar
765
cloud666 13.08.2007 12:15 
PSmith писал (а):

Да там просто ошибка на ошибке. И проверок никаких. Особенно убило вот это

int CloseOnlyOrder()
{
   SelectOnlyOrder();
   if(OrderType()==0)  // Закрываем BUY
   {
      OrderClose(OrderTicket(), OrderLots(), Bid, 0, 0);
   }
   else if(OrderType()==0)  // Это просто никогда не срабатывает. Еще один BUY???
   {
      OrderClose(OrderTicket(), OrderLots(), Ask, 0, 0);
   }
   return(0);
}
Еще какие? Щас подправлю и на проверку! Давайте хоть своими силами исправлять ситуацию!

avatar
132
PSmith 13.08.2007 12:47 
cloud666 писал (а): Еще какие? Щас подправлю и на проверку! Давайте хоть своими силами исправлять ситуацию!


Статья уже не доступна... Но даже пустой шаблон не приспособлен к реальной торговле.

1. SelectOnlyOrder всегда выбирает первый ордер по истории, не проверяя при этом ни символ, ни магикнумбер.

Т.е. такой эксперт будет мешать сам себе и ручной торговле, будучи установлен на разные символы и/или таймфреймы.

2. В приведенном отрывке проскальзывание=0. В тестере это работает, а в реальной торговле бывают реквоты.

3. Нет проверки результата (того же OrderClose, OrderSend тоже без проверки ставился).

И т.д.

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


avatar
765
cloud666 13.08.2007 13:00 
PSmith писал (а):
cloud666 писал (а): Еще какие? Щас подправлю и на проверку! Давайте хоть своими силами исправлять ситуацию!


Статья уже не доступна... Но даже пустой шаблон не приспособлен к реальной торговле.


1. SelectOnlyOrder всегда выбирает первый ордер по истории, не проверяя при этом ни символ, ни магикнумбер.


Т.е. такой эксперт будет мешать сам себе и ручной торговле, будучи установлен на разные символы и/или таймфреймы.


2. В приведенном отрывке проскальзывание=0. В тестере это работает,  а в реальной торговле бывают реквоты.  


3. Нет проверки результата (того же OrderClose, OrderSend тоже без проверки ставился).


И т.д.


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


 



Статья не доступна из-за исправленной ошибки!
1. Он просто как пример реализации большинства полезных функций.
2. Я использую проскальзывание 0, мой сигнал формируется по дневкам, установит ордер по-любому в течение минуты!!!
3. То же самое, что и пункте 3

avatar
132
PSmith 13.08.2007 13:38 

Да же при сигнале на дневках можно наткунться на необходимость закрыться в 15-30 по Москве и наткнуться на проскальзывание в 2-3 спреда!

Вот такая реакция на новость (не всегда, но регулярно):

Закрыть с рынка с проскальзыванием меньше 3 не получится. Тоже самое при открытии.

-------------------------

Я себе представляю шаблон эксперта примерно таким:

1. Определение возможности торговли (время, наличность и.т.п)

2. Блок инициализации внутренних пременных (можно и в init, в зависимости от ТС), расчет лота, учет ММ и т.п.

3. Поиск установленных ордеров.

4. Если ордера найдены - проверка необходимости закрытия или перемещения трейлинг-стопа. Сброс сигнала на открытие.

5. Если ордеров нет - расчет сигнала на открытие (блок ТС).

6. Есть сигнал на открытие - открытие торгов.

По большому счету всё.


avatar
856
alexjou 13.08.2007 15:11 
Какое-то время тому назад я пытался такое сделать, причем попробовал учесть все случаи, до которых мог дотянуться. В результате получился монстр весом около 70 к (в исходнике), работать с которым было сущим наказанием и казнью египетской. Проще уж было каждый раз ваять эксперта заново. Хотя, может быть, я слишком буквально понял задачу. Тем не менее, на мой взгляд, правильнее идти по пути создания библиотечных модулей -- блоков вроде конструктора, из которых "собирался" бы окончательный вариант эксперта.

avatar
816
FION 13.08.2007 15:19 
А я себе сделал шаблон в виде набора готовых функций, написание эксперта сводится к заданию условий и  указания функций. Все  функции с возможность ввода внешних переменных ,проверки и принты зашиты внутри. Ордера и их параметры определяются "на лету" по магическим номерам. Может немного ресурсозатратно, зато вызывать удобно.

avatar
856
alexjou 13.08.2007 15:27 
2Fion: Вот к этому варианту я в конце концов и пришел. Сейчас ваяю.
К списку тем   | 1 2  

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