Обучение MQL II Урок №5
|

Обучение MQL II Урок №5

   Здравствуйте дорогие читатели! Сегодня мы научимся писать эксперты с использованием встроенных индикаторов. В МТ реализовано довольно много индикаторов классического теханализа, так что поле для действий довольно большое. В конце урока мы напишем эксперт.


Онлайн обучение: финансы, форекс, IT и все остальное

Интернет открывает новые возможности для получения новых знаний и компетенций по любой тематике: будь то финансовые рынки и форекс-трейдинг, или любая другая область знаний и умений (программирование, иностранные языки, школьные предметы, и тд и тп).

SEDU.ME – дает возможность оперативного обмена знаниями на взаимовыгодных условиях: продавай свое компетенции и (или) получи новые не выходя из дома. Все, что нужно – компьютер с выходом в интернет. Все остальное (видео-связь и связь голосом, удобное общее учебное поле, вспомогательные инструменты и удобную систему приема и отправки платежей в режиме онлайн) предоставит образовательный сервис SEDU.ME.


5.1. Синтаксис индикатора в общем виде

iInd(period, mode, shift);

Ind – условное название индикатора;
Period – период усреднения;
Mode – чаще всего указывает какое из значений индикатора принимается (для индикаторов из двух линий)
Shift – индекс указывает, какое порядковое значение индикатора брать для расчета (0 это текущее значение индикатора, 1-прошлое, 2-позапрошлое и т.д. по аналогии с индексами при котировках).  Перед названием индикатора <Ind> стоит буква i, это обязательно для всех индикаторов в МТ.

 

5.2. Скользящие средние

Скользящие средние являются самым распространенным индикатором. Поэтому я бы хотел разобрать этот индикатор более подробно.

Moving Average (iMA)
iMA(period, ma_method, shift)

period – период усреднения;
ma_method – этот параметр указывается для метода вычисления средней, параметр может принимать

следующие значения:
MODE_SMA,
MODE_EMA,
MODE_SMMA,
MODE_LWMA.

 Пример:

iMA(21, MODE_SMA, 1)- прошлое значение скользящей средней простого типа с периодом усреднения 21
iMA(9, MODE_EMA, 0)- текущее значение скользящей средней экспоненциального типа с периодом усреднения 9

По умолчанию индикаторы строятся от цен закрытия, поэтому значения индикаторов с индексом 0, т.е текущие значения на формирующимся баре будут все время меняться вместе с ценой.

 

5.3. Extended (расширенные) индикаторы

Как я уже говорил, индикаторы чаще всего строятся от цен закрытия <close>. Это не всегда удовлетворяет запросам пользователей, поэтому в арсенале МТ есть extended (расширенные) индикаторы. На текущий момент существует 7 extended индикаторов:

ADX extended
iADXEx (period ,applied_price, mode, shift)

CCI extended
iCCIEx (period, applied_price, shift)

Bolinger bands extended iBandsEx (period, deviation, bands_shift, applied_price, mode, shift)

MACD extended
iMACDEx (fast_ema_period, slow_ema_period, signal_period, applied_price, mode, shift)

Moving average extended
iMAEx (period, ma_method, ma_shift, applied_price, shift)

Momentum extended
iMomEx (period, applied_price, shift)

RSI extended
iRSIEx (period, period2, applied_price, mode, shift)

Если Вы заметили, у любого из расширенных индикаторов есть параметр <applied_price>. Этот параметр может принимать 7 значений: PRICE_CLOSE, PRICE_OPEN, PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN, PRICE_TYPICAL и PRICE_WEIGHTED. Т.е индикатор может строится от цены закрытия, цены открытия, максимальной цены, минимальной цены, PRICE_MEDIAN ( (high+low)/2), PRICE_TYPICAL ((high+low+close)/3 ), PRICE_WEIGHTED ((high+low+close+close)/4 ). Все названия расширенных индикаторов заканчиваются буквами <Ex>, и только этим отличаются от названий таких же стандартных индикаторов.

 

5.4. Эксперт

Для закрепления знаний, напишем эксперт. Он будет использовать 2 индикатора, скользящую среднюю с большим периодом и RSI. Если RSI выше определенной нами верхней оверзоны, развернулся вниз и средняя направлена вниз, то эксперт будет продавать. Если RSI ниже нижней оверзоны, развернулся вверх и средняя направлена вверх, то покупаем. Выход из позиции осуществляется по выставленным стопам.

/*[[
Name := Expert4
Author := Fxtest.ru
Link := forextimes.ru
Lots := 1.00
Stop Loss := 40
Take Profit := 40
Trailing Stop := 0
]]*/
defines:
per(7), Upzone(70), Downzone(30), BigTrend(100);
//per-период RSI; Upzone, Downzone-оверзоны, BigTrend – период средней показывающей глобальный тренд
var: r1(0), r2(0), m1(0), m2(0);
// r1-прошлое значение RSI r2-позапрошлое значение RSI

r1=iRSI(per,1);
r2=iRSI(per,2);
m1=iMA(BigTrend, MODE_SMA,1); //MA простого типа (SMA)
m2=iMA(BigTrend, MODE_SMA,2);

if TotalTrades<1 then { //играть если открытых позиций нет

if r2>r1 and r2>Upzone and m1<m2 then //если образовался экстремум и он выше верхней оверзоны, и глобальный

тренд вниз, продавай
{SetOrder(op_sell, lots, bid, 3, ask+stoploss*point, ask-takeprofit*point, red); exit;};

if r2<r1 and r2<Downzone and m1>m2 then //если образовался экстремум и он ниже нижней оверзоны, и

глобальный тренд вверх, покупай {SetOrder(op_buy, lots, ask, 3, bid-stoploss*point, bid+takeprofit*point, green);

exit;};};

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

Компания «Fxtest»
Халхальян Артур
техническая поддержка трейдеров
artur@fxtest.ru