Смотри, как бесплатно скачать роботов
Ищи нас в Twitter!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Советники

Blue_Dream - эксперт для MetaTrader 4

Просмотров:
8248
Рейтинг:
(5)
Опубликован:
2010.03.09 17:06
Обновлен:
2016.11.22 07:33
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Обсуждаем технологию здесь https://www.mql5.com/ru/forum/124515

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

Программа, скорее является не советником а ДВИЖКОМ СОВЕТНИКА (не скрипт), который в сочетании с индикаторами является мощным и легко перенастраиваемым комплексом, который и будет называться советником. Таким образом, я разделяю программу на модули, что должно значительно упростить создание советников.

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

РАБОТАЕТ ЭТО ТАК:

Индикатор выставляет сигнал на установку ордера - покупка "плюс 1" продажа "минус 1", если вы используете несколько индикаторов, то каждый из них должен выставлять свой сигнал. Эти сигналы должны выставляться индикаторами на уровне терминальной переменной.

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

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

Пока ДВИЖОК открывает и закрывает единственный ордер по сигналам выбранных вами индикаторов.

Сигнал выбранного вами индикатора должен изменять глобальную переменную на уровне терминала следующим образом:

  • на открытие ордера BUY сигнал должен быть плюс +1;
  • на открытие ордера SELL сигнал должен быть минус -1;
  • на закрытие ордера BUY сигнал должен быть минус -1;
  • на закрытие ордера SELL сигнал должен быть плюс +1.

Имена глобальных переменных на открытие: 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;

Всего пять возможных сигналов на открытие и пять на закрытие. Думаю, этого вполне достаточно.

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

Например, вы используете для открытия стохастик и МА5, тогда вы должны в свойствах советника задать количество используемых сигналов на открытие задать значение 2, а ваши индикаторы должны изменять соответствующим образом: глобальные переменные на уровне терминала"Signal_OPEN_1" и "Signal_OPEN_2". Аналогично для закрытия, ваши индикаторы должны изменять соответствующим образом:  глобальные переменные на уровне терминала"Signal_CLOSED_1" и "Signal_CLOSED_2".

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

The approach I propose is based on an idea enabling a quick creation of a new Adviser (expert) not only by programmers but also by persons not familiar with programming. This is due to an Advisor is constructed from full-function modules like children’s construction toys. A user can change Advisor properties just by running appropriate modules.

The Advisor consists of three main modules:

  1. Analytical module (Analyzer) analyses indicator signals and outputs a buying, a sale or an order-close signal.
  2. Executive module receives signals from the Analyzer and operates with the orders.
  3. The module of signal visualization allows one to control a global variable state and to eliminate signal conflicts.

Analytical and Executive modules interact through Terminal Global Variables (TGV).

A user can change both the number of signal through the Analyzer settings and a quantity of the signals used by means of the Executive module.

The Executive module, Blue_Dream, is added to and available in the Code Base.

This is a pilot project that is of limited capabilities and, in its current version, controls the only order. If the order set by Blue_Dream is closed manually, the module has to be reinstalled. The code will be completed and updated in the near future.

At present, Blue_Dream may receive up to five open signals and up to five close signals.

 Blue_Dream analyses a state of terminal variables by simple summation of signals so that if you use, e.g., three open indicators, their sum will be equal to 3 or -3 when signal coincide and Advisor opens an order in corresponding direction. Similar situation is for closing an order.

After a signal is executed, the Executive module reduces TGV to zero.

Pay your attention to the fact, that amounts of opening and closing signals can be different. You may do opening procedure, analyzing, e.g., stochastic and MA indicators, and closing one, basing on the analysis of price level, profits, MACD indicators or something else. It should be marked, however, that for each opening/closing signal a separate analytical module must exist.

TGV names for opening are Signal_OPEN_1, Signal_OPEN_2, Signal_OPEN_3, Signal_OPEN_4, Signal_OPEN_5.

TGV names for closing are Signal_CLOSED_1, Signal_CLOSED_2, Signal_CLOSED_3, Signal_CLOSED_4, Signal_CLOSED_5.

 The analytical module, when analyzing indicator states, has to create a unique signal and, basing on this, to change only one of TGVs.

The signal has to be

  • +1 to open order BUY,
  • -1 to open order SELL,
  • -1 to close order BUY, and
  • +1 to close order SELL. 

Therefore, an analytical module you create should contain, e.g., the following text:

GlobalVariableSet("Signal_OPEN_X",1),

where X has to be substituted by the number of corresponding signal. 

ATTENTION!  If you manually close the order set by the source code, the Advisor needs to be re-run.

At this moment, in the framework of this project, the following codes are added to Code Base:

Analiz_Sum_Speed_MA_V0 – the Price Change Rate Analyzer, (needs for indicator Speed_MA_V2).

I would appreciate any critical remarks or wishes.

chann123 chann123

Индикатор рисует каналы.

Ingrit 8 Ingrit 8

Свечной советник

Speed_MA Speed_MA

Индикатор определяет скорости MA5(жёлтая линия), MA15(зелёная линия), MA60(голубая линия) в процентах.

Zero Point Force Zero Point Force

Сила нулевой точки, построено на двух SimpleMA.