Технология Blue_Dream - советник конструктор.

 

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

 

Собственно советник строится из трёх основных модулей:

  1. Аналитический модуль (анализатор) – анализирует сигналы индикаторов и выдаёт сигнал на покупку, продажу или закрытие ордера.
  2. Исполнительный модуль – Получает сигналы от аналитического модуля и работает с ордерами.
  3. Модуль визуализаци сигналов – позволяет контролировать состояние глобальных переменных и устранять конфликты между сигналами.

Аналитический и Исполнительный модули взаимодействуют через ГПТ (Глобальные Переменные Терминала).

Пользователь может изменять при помощи настроек Аналитического модуля  - номер используемого сигнала, а при помощи Исполнительного модуля  - количество используемых сигналов.

 

Исполнительный Модуль - программа Blue_Dream, выложена мной в кодо-базу.

Это прототип. Он имеет ограниченные возможности и управляет пока единственным ордером. Причём, если ордер установленный при помощи Blue_Dream закрыт вручную, то модуль нужно переустановить. В ближайшее время модуль будет доработан.

В настоящий момент Blue_Dream может получать до 5 сигналов на открытие и до 5 сигналов на закрытие.

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

После исполнения сигнала Исполнительный модуль обнуляет ГПТ.

  Обращаю ваше внимание, что количество сигналов на открытие и на закрытие могут быть различным и не совпадать. Вы  можете открываться анализируя, например, стохастик и МА, а закрываться по анализу уровня цены или прибыли или MACD или ещё бог знает как. Но

 

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

 

Имена ГПТ на открытие: Signal_OPEN_1, Signal_OPEN_2, Signal_OPEN_3, Signal_OPEN_4, Signal_OPEN_5;

Имена ГПТ на закрытие: Signal_CLOSED_1, Signal_CLOSED_2, Signal_CLOSED_3, Signal_CLOSED_4, Signal_CLOSED_5;

 

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

на открытие ордера BUY сигнал должен быть плюс +1

на открытие ордера SELL сигнал должен быть минус -1

на закрытие ордера BUY сигнал должен быть минус -1

на закрытие ордера SELL сигнал должен быть плюс 1

 

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

GlobalVariableSet("Signal_OPEN_X",1), где вместо Х нужно поставить соответствующий номер сигнала.

 

   ВНИМАНИЕ

  Если вы закрыли ордер установленный ДВИЖКОМ вручную, то советника нужно перезапустить.

На данный момент в рамках проекта выложены в Code Base следующие программы

Blue_Dream – Исполнительный модуль 

Analiz_Sum_Speed_MA_V0 – Анализатор скорости движения графика, (для его работы необходим индикатор Speed_MA_V2).

Буду благодарен всем за критику и пожелания.

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

Просто и понятно. Модульная система - это прогресс.

 
Модульная система является прогрессом, когда ведет к упрощению логики и более четкому выделению сущностей. Ну и уж точно не тогда, когда добавляет дыры в и без того дырявую сущность.
 
vasya_vasya писал(а) >>
А кто будет пользоваться этим чудом? Программисты, которым это не нужно, или Трейдеры у которых достаточно бабла, чтобы нанять программиста?

Трейдеры у которых недостаточно бабла, чтобы нанять программиста.

 
Бред какой то.
 
Roger >>:

Трейдеры у которых недостаточно бабла, чтобы нанять программиста.


Вряд ли, таким будет проще написать без использования этого чуда(времени меньше уйдёт).
 
valenok2003 >>:

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

 
когдато я тоже хотел было сделать "универсального торговца"... чем больше писал кода для поддержания этого самого универсализма - тем дальше уходил от основной цели (торговля и прибыль).
сейчас пришел к тому, что самое эффективное (для торговли) - набор специализированных скриптов каждый из которых делает только свою определенную работу. Отпадают (практически) все вопросы с синхронизацией отдельных болков (и "перезапусками")
Кода - меньше, мест где можно внести ошибку соответственно - меньше. правки вносить - гораздо проще.
короче - K.I.S.S. ;)
 
Мне кажется, что Вам в советник лучше включать более распространенные, а потому понятные большинству индикаторы. Для того чтоб началось какое-то обсуждение нужно заинтересовать аудиторию, а для этого желательно чтоб в базе советника было хотя бы с десяток индикаторов. Если вы на это решитесь, то желательно чтоб индикаторы были отключаемыми, т.е. из 10 можно было бы оставить включенными 2 - 3, и варировать ими. Если Вы хотите брать нестандартные индикаторы, то наверно лучше брать те, по которым идет значительное обсуждение.
Если Вам нужно ТС от которой можно было бы оттолкнуться, то могу посоветовать на вскидку:
возьмите Стохастик из https://www.mql5.com/ru/code/9546, там 8 шт., но если коэффициент взять 1, то останется один и стандартный MACD из МТ.
Переменные у Стохастика добавляются - это уровни верхний и нижний.

Соответственно алгоритм советника можно описать так для сделок БАЙ:
Все Стохастики находятся ниже нижнего уровня (переменной);
Гистограмма MACD растущая, т.е. сигнальный (закрывшийся) бар больше предыдущего.
При этом, сигнальная линия MACD должна иметь меньшее значение, чем гистограмма MACD.
Закрытие можно для начала сделать по устанавливаемому профиту.

Для СЕЛ, соответственно все наоборот.
 
Rus >>:
 Мне кажется, что Вам в советник лучше включать более распространенные, а потому понятные большинству индикаторы. 

возьмите Стохастик из https://www.mql5.com/ru/code/9546, там 8 шт., но если коэффициент взять 1, то останется один и стандартный MACD из МТ.
Переменные у Стохастика добавляются - это уровни верхний и нижний.

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