Евгений Ждан

MQL4-программирование: торговый робот за один вечер


Скачать книгу

робот.

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

      Чтобы узнать ценовые значения индикаторов нам нужно объявить глобальные переменные типа 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 = iEnvelopes(NULL,0,13,MODE_SMA,10,PRICE_CLOSE,0.2,MODE_LOWER,1);

      ZZ = iCustom(Symbol(),0,"ZigZag",0,1);

      if(enveUP > 0 && enveDW > 0 && ZZ > 0) open = Open[0];

      }

      }

      Разберем, что же означает каждая строчка.

      В глобальных переменных, кроме переменных для значений индикаторов, мы объявили переменную типа datetime с названием open. Сейчас она содержит 0.

      ВАЖНЫЙ МОМЕНТ: установите курсор на слово datetime и нажмите на клавиатуре F1 – появится СПРАВКА с описанием, что означает тип datetime. Так можно делать НА всех встроенных командах!

      if(Open[0] != open) : Если Время Открытия Нулевой Свечи НЕ РАВНО open (т. е. нулю), то выполнится код в фигурных скобках. Команда Open[0] означает Время Открытия Нулевой (т. е. текущей, еще не закрытой свечи). Также, установите курсор на Open и нажмите F1 – почитайте, что это за команда.

      EnveUP = iEnvelopes(NULL,0,13,MODE_SMA,10,PRICE_CLOSE,0.2,MODE_UPPER,1); – нажимаем на iEnvelopes и видим, в каком порядке и какие данные должны быть указаны:

      Конец ознакомительного фрагмента.

      Текст предоставлен ООО «ЛитРес».

      Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.

      Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

/9j/4AAQSkZJRgABAQEASABIAAD/4gHHSUNDX1BST0ZJTEUAAQEAAAG3AAAAAAJAAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLVF0BQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlyWFlaAAAA8AAAABRnWFlaAAABBAAAABRiWFlaAAABGAAAABR3dHB0AAABLAAAABRjcHJ0AAABQAAAAAxyVFJDAAABTAAAABBnVFJDAAABTAAAABBiVFJDAAABTAAAABBkZXNjAAABXAAAAFtYWVogAAAAAAAAb58AADj0AAADkVhZWiAAAAAAAABilwAAt4cAABjbWFlaIAAAAAAAACShAAAPhAAAttRYWVogAAAAAAAA81EAAQAAAAEW03RleHQAAAAATi9BAHBhcmEAAAAAAAAAAAAAdF1kZXNjAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9sAQwAKBwcIBwYKCAgICwoKCw4YEA4NDQ4dFRYRGCMfJSQiHyIhJis3LyYpNCkhIjBBMTQ5Oz4+PiUuRElDPEg3PT47/9sAQwEKCwsODQ4cEBAcOygiKDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7/8AAEQgCWAJYAwEiAAIRAQMRAf/EABwAAQACAwEBAQAAAAAAAAAAAAAFBgMEBwIBCP/EAFsQAAEEAQIDBQQEBgwKCAUEAwEAAgMEBQYREiExBxNBUWEUInGBFTKRoRYjQlKxwRczNmJyc4KSorLC0SRDU1RVk6Oz0vAlNDU3RGN08QhkZaThdYOFlLTT4v/EABsBAQACAwEBAAAAAAAAAAAAAAAEBgIDBQEH/8QANhEBAAECAwUECAYCAwAAAAAAAAECAwQFERITITFRIkFhcQYUM4GhsdHwFTI1U5HBsuEWQlL/2gAMAwEAAhEDEQA/AOzIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiIC