MQL4-программирование: торговый робот за один вечер. Евгений Ждан
Чтение книги онлайн.

Читать онлайн книгу MQL4-программирование: торговый робот за один вечер - Евгений Ждан страница 3

СКАЧАТЬ английский язык, Справка (F1) получается тоже на английском языке. Не всем это удобно.

      ПОЛУЧАЕМ ДАННЫЕ ИНДИКАТОРОВ

      Открываем свой MetaTrader4 и нажимаем кнопку F4 на клавиатуре, или левой кнопкой мыши здесь:

      В открывшемся редакторе кода нажимаем

      New

      (Создать), затем

      Expert

      Advisor

      (

      template

      ), потом Далее, в поле

      Name

      после

      Experts

      \ дописываем

      MyFirstEA

      – это будет названием вашего первого советника. Получится Experts\MyFirstEA. Поля

      Autor

      ,

      link

      нам в этом учебном советнике не важны. Нажимаем

      кнопку

      Далее

      .

      Появится

      окошко

      Event Handles of the Expert Advisor.

      Здесь ничего отмечать не нужно и просто нажмем Далее. В появившемся окошке

      Tester

      event

      handless

      of

      the

      Expert

      Advisor

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

      На изображении в комментариях указано, какие блоки за что отвечают.

      Чтобы узнать ценовые значения индикаторов нам нужно объявить глобальные переменные типа double для верхней и нижней линии индикатора Envelopes. Назовем их enveUP и enveDW. Эти названия можно придумывать самим. То же самое надо сделать и для получения ценового значения индикатора ZZ. Назовем эту переменную ZZ. Почему именно глобальные переменные? Для того, чтобы эти значения мы могли вызывать в любом месте программы (т. е. советника). Дело в том, что мы будем вызывать значения индикаторов не на каждом приходящем тике, а один раз на одной свече. Это существенно повысит производительность, т. к. терминалу не нужно будет выполнять одну и ту же операцию на каждом тике. Если мы обернем в фигурные скобки вызов наших индикаторов с записью их значений НЕ в глобальные переменные, то эти значения будут видны только в рамках этих же фигурных скобок. И за пределами их мы получим ошибку. Более подробно постараюсь описать на рисунке ниже.

      Перепишите этот код в свой редактор:

      //+–+

      //| MyFirstEA.mq4 |

      //| Copyright 2017, |

      //+–+

      #property copyright "Copyright 2017"

      #property link ""

      #property version "1.00"

      #property strict

      //+–+

      double enveUP, enveDW, ZZ;

      datetime open;

      //+–+

      int OnInit()

      {

      return(INIT_SUCCEEDED);

      }

      void OnDeinit(const int reason)

      {

      }

      void OnTick()

      {

      if(Open[0] != open)

      {

      enveUP = iEnvelopes(NULL,0,13,MODE_SMA,10,PRICE_CLOSE,0.2,MODE_UPPER,1);

      enveDW СКАЧАТЬ