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

Тут можно читать онлайн Евгений Ждан - MQL4-программирование: торговый робот за один вечер - бесплатно ознакомительный отрывок. Жанр: Прочая околокомпьтерная литература, издательство Литагент Ридеро. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

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

MQL4-программирование: торговый робот за один вечер - описание и краткое содержание, автор Евгений Ждан, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Чтобы освободиться от рутины и сберечь нервы, каждый трейдер задумывается об автоматизации своей торговли. Эта книга поможет освоить mql4-программирование любому человеку с любым уровнем образования. Книга написана простым языком без сложной терминологии. На протяжении всей книги автор и читатель вместе разрабатывают торговый советник для платформы MetaTrader4.

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

MQL4-программирование: торговый робот за один вечер - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Евгений Ждан
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Торговые сигналы будут формировать два стандартных индикатора Envelopes и ZigZag. Эти индикаторы встроены в MetaTrader4 и дополнительно скачивать их не нужно. Я выбрал два именно этих индикатора, т. к. их значения вызываются разными способами. Для Envelopes – с помощью стандартной функции iEnvelopes, а ZigZag вызывается функцией iCustom – ее вам необходимо изучить (хотя, это громко сказано), чтобы в дальнейшем вы умели вызывать данные почти любых не стандартныхиндикаторов для MetaTrader4.

Составим краткое техническое задание Если верхний пик индикатора ZigZag - фото 2

Составим краткое техническое задание:

– Если верхний пик индикатора ZigZag (далее – ZZ) сформировался выше верхней линии индикатора Envelopes (с параметром Shift = 10, остальные – стандартные), выставляем ордер на продажу фиксированным лотом, определенным в настройках советника.

– Если нижний пик ZZ сформировался ниже нижней Envelopes – сигнал на покупку (т. е. наоборот от buy-сигнала).

– Путем модификации (почему модификации, а не сразу при установке ордера – позже, когда будем писать этот код) советник должен устанавливать у ордеров Стоп-Лосс и Тейк-Профит.

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

Если вы читаете эту книгу, я надеюсь, на вашем компьютере уже установлен торговый терминал MetaTrader4 и вы умеете открывать демо-счет. Если нет, нужно этот терминал установить, предварительно зарегистрировавшись у любого брокера, поддерживающего работу MetaTrader4.

А теперь, переведите свой терминал на английский язык!Если уж вы решили заняться программированием, привыкайте к английскому, без этого никуда! Сам редактор кода MetaEditor лучше оставить на русском, т. к. при переводе его на английский язык, Справка (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 снова ничего не выбираем и жмем Готово. Получаем рабочую область, в которой скоро родится наш торговый робот.

На изображении в комментариях указано какие блоки за что отвечают Чтобы - фото 3

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

Чтобы узнать ценовые значения индикаторов нам нужно объявить глобальные - фото 4

Чтобы узнать ценовые значения индикаторов нам нужно объявить глобальные переменные типа 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];

}

}

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

В глобальных переменных кроме переменных для значений индикаторов мы объявили - фото 5

В глобальных переменных, кроме переменных для значений индикаторов, мы объявили переменную типа 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. Давайте это исправим. Нам нужно вывести во внешние параметры Период и Отклонение, выраженное в процентах.

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

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

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

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

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Евгений Ждан читать все книги автора по порядку

Евгений Ждан - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


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


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x