Шрифт:
Интервал:
Закладка:
На изображении в комментариях указано, какие блоки за что отвечают.
Чтобы узнать ценовые значения индикаторов нам нужно объявить глобальные переменные типа 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 и видим, в каком порядке и какие данные должны быть указаны:
double iEnvelopes (
– string symbol, // имя символа
– int timeframe, // таймфрейм
– int ma_period, // период
– int ma_method, // метод усреднения
– int ma_shift, // сдвиг средней
– int applied_price, // тип цены
– double deviation, // отклонение (в процентах)
– int mode, // индекс линии
– int shift // сдвиг
);
В нашем коде мы не предусмотрели возможность изменять данные индикатора Envelopes. Давайте это исправим. Нам нужно вывести во внешние параметры Период и Отклонение, выраженное в процентах.
Конец ознакомительного фрагмента.
- Цифровой журнал «Компьютерра» № 159 (full) - Коллектив Авторов - Прочая околокомпьтерная литература
- Цифровой журнал «Компьютерра» № 35 - Коллектив Авторов - Прочая околокомпьтерная литература
- Журнал PC Magazine/RE №04/2009 - PC Magazine/RE - Прочая околокомпьтерная литература
- Цифровой журнал «Компьютерра» № 162 - Коллектив Авторов - Прочая околокомпьтерная литература
- Многопоточное программирование в Java - Тимур Машнин - Прочая околокомпьтерная литература
- Цифровой журнал «Компьютерра» № 183 - Коллектив Авторов - Прочая околокомпьтерная литература
- Цифровой журнал «Компьютерра» № 195 - Коллектив Авторов - Прочая околокомпьтерная литература
- Цифровой журнал «Компьютерра» № 181 - Коллектив Авторов - Прочая околокомпьтерная литература
- Цифровой журнал «Компьютерра» № 178 - Коллектив Авторов - Прочая околокомпьтерная литература
- Цифровой журнал «Компьютерра» № 164 - Коллектив Авторов - Прочая околокомпьтерная литература