logo

Просвещение MQL II Наука №3 – Часть 1

Просвещение MQL II Наука №3 - Часть 1

Халхальян Артур fxtest.ru artur@fxtest.ru

Ну и ну дорогие читатели! Что, двум предыдущих урока были посредственно интересными, т.для. грешно было воочию испить результаты своего труда. Поверьте, они были необходимы интересах дальнейшей, полноценной работы. На этом уроке наша сестра научимся отмыкать позиции да разберем синтак-сис обращения для массиву котировок.

3.1. Круг обязанностей SetOrder

При помощи функции SetOrder дозволено отмыкать позиции для покупку (а) также продажу по части текущей цене или расставлять отложенные ордера.

SetOrder(operation,lots,price,slippage,stoploss,takeprofit,color)

SetOrder (воздействие, контингент лотов, плата, максимально допустимое проступание, стоплосс, тейкпрофит, цветик)

3.1.1. Operation (операции)

Операции условно позволительно раздробить 2 вида, сие портал объединение текущей цене или сборка отложенного ордера.

Исполнение) входа за текущей цене бизнес бросьте пользоваться видимость: op_buy или op_sell.

Op_buy -покупка контракта в области текущей цене, во верней всего отмечено .

Op_sell -продажа контракта по мнению текущей цене, на верней всего отмечено .

Угоду кому) выставления отложенного ордера воздействие склифосовский иметьвид: op_buylimit, op_buystop, op_selllimit илиop_sellstop.

Если я хотим поставить угощение отдаленный документ получи и распишись покупку около условии, что такое? настоящая цена пониже. Ant. выше цены исполнения ордера, в таком случае действие хорэ владеть облик op_buystop. Т.е. да мы с тобой планируем, который ценник пойдет подалее во фолиант а направлении (напробой, к истоку).

Если пишущий эти строки хотим выгнать в три шеи отдаленный документ для продажу быть условии, зачем фактическая цена вниз цены исполнения ордера, так сделка склифосовский у кого есть видимость op_selllimit. Т.е. автор этих строк планируем, аюшки? курс развернется равным образом пойдет во противоположном направлении (оборот).

Если автор этих строк хотим выпялить отдаленный ордерок сверху покупку присутствие условии, ась? фактическая цена раньше цены исполнения ордера, так воздействие короче вмещать видимость op_buylimit. Т.е. наша сестра планируем, что такое? тариф развернется (а) также пойдет на противоположном направлении (оборот).

Если наша сестра хотим пропереть отсроченный документ сверху продажу подле условии, аюшки? настоящая цена перед этим цены исполнения ордера, ведь поход хорэ вмещать лик op_sellstop. Т.е. наш брат планируем, в чем дело? такса пойдет опосля на книга но направлении(напробой, книзу).

3.1.2. lots (лоты)

Угоду кому) указания количества лотов во ордере, Ваша милость можете заносить (в тетрадь хорошо количество, примем, 1 или 2. Пишущий эти строки но рекомендую отмечать зарезервированную переменную, т.для. самый на МТ Ваша сестра сможете установить что ни попадя контингент лотов, тем самым Ваш критик достанет сильнее гибким.

3.1.3.Price (достоинство исполнения ордера)

Пользу кого входа в области текущей цене операциями op_buy или op_sell, нужно воспользоваться цены ask (а) также bid, соответствующе. С целью входа а отложенными ордерами дозволительно или отмечать конкретную цену или эксплуатнуть отражение такого вида: ask+30*point. Что-то сие следовательно?

Сие итак настоящий ask ((пред)положим, 1.2800), приобщить 30 пунктов, т.е. ценность входа 1.2830. Point сие стоимостное выражение пункта согласно конкретной валютной паре, угоду кому) EURUSD point=0.0001, на USDJPY point=0.01. Ценник пункта выработаться хозяйка, сие МТ сделает после Вам. (бог) велел известить короче: ask+0.0001 (а) также сие довольно верно, так чтобы подсоединить подобный дока для USDJPY его придется перековывать. В (видах написания побольше гибких экспертов рекомендую завсегда эксплуатировать зарезервированную переменную point.

3.1.4. Slippage (проступание)

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

3.1.5. Stoploss (лосс)

Нужно смекать, сколько stoploss сие просто-напросто авторитет цены, близ котором взгляды закроется насильственно. Т.е на раздолье , допускается попросту черкануть конкретную цену.

Интересах указания аз (многогрешный) рекомендую уходить переменную stoploss, а возле создании эксперта (или на шапке эксперта) определять нужную величину. По причине этому Ваш зн
аток способен паче гибким равным образом величину stoploss (бог) велел бросьте обмениваться напрямую на МТ во настройках эксперта. Отображение достаточно заключать обличье: ask+stoploss*point. Насчёт переменной стоит только во всякое время заметить себе! Сие непредубеждённо пользу кого постоянного стоплосса.

Если Ваша милость хотите вмещать динамический (изменяющийся) stoploss, его (бог) велел отсчитывать на переменной. Так: сие следовательно зачем stoploss равен минимальной цене прошлого бара. Вниз аз (многогрешный) расскажу об этом подробней.

3.1.6. Takeprofit (тейкпрофит)

Совершенно который сказано на пункте 3.1.5. совершенно согласно (а) также угоду кому) takeprofit. Чище говорить нет смысла.

3.1.7. Color (Колер)

Во этом нива указывается цветение, на что полноте раскрашена толковище на окне котировок близ открытии позиции. Вдобавок толковище появится в противность цены по части которой случилось износ ордера. МТ поддерживает без) (счету цветов, на выдержку: gray, gray, red, blue равным образом т.д.

3.1.8 Упражнения использования функции SetOrder.

Заказ получи покупку:

SetOrder(op_buy, lots, ask, 3, bid-stoploss * point, bid + takeprofit * point, green);

Ордерок получи продажу:

SetOrder(op_sell,lots,bid,3,ask+stoploss*point,ask-takeprofit*point,red);

Обратите напирать стопы считаются через bid пользу кого ордера нате покупку да в области ask в (видах ордера в продажу. Сей звезда равным образом меет район в силу того что аюшки?, исполнение) исполнения на практике заложенных, к примеру (сказать) 30 пунктов ступня, его нужно исчислять через реальной цены закрытия ордера!!! Только мало-: неграмотный удивляйтесь, если увидите на тестере, к примеру (сказать), окончание позиции по мнению стоплоссу, далеко не держи 30 ти пунктах убытка, а в 35, спред пустое место опять-таки мало-: неграмотный отменял.

Отложенные ордера:

SetOrder(op_sellstop,1,bid-50*point,3, (bid-50*point) +StopLoss*Point, (bid-50*point) -TakeProfit*Point,blue); ho=h[1]; SetOrder (op_buystop, lots, ho, 3, ho-StopLoss * Point, ho + TakeProfit * Point, blue);

3.2. Требование ко массиву котировкам.

Массивы котировок имеют следующие названия. Close (C) -цена закрытия, Open (O) -цена открытия, High (H) -максимальная плата, Low (L) -минимальная стоимость, Volume (V) – широта.

Ваша сестра можете пускать в ход сии названия или сокращенные, они на скобках. Обращения ко массивам котировок осуществляется, в свой черед ко обычным элементам массива сквозь квадратные скобки. Дефлятор 0, сие нынешний снек-бар, 1 былой да т.д. Т.е. c[1]-цена закрытия прошлого бара, o[0]-цена открытия текущего бара, h[2]-максимальная плата позапрошлого бара. Имейте вследствие аюшки? обращаясь для текущему бару ( числовой показатель0) (бог) велел состоять уверенным за пределами изменности лишь его цены открытия, как-никак прочие его объем (H,L,V,C) могут видоизмениться опосля. Названия массивов минус индексов H, C равно т.д. специалист короче разуметь во вкусе значения держи текущем баре, т.е от индексом 0 (H=H[0], C=C[0]) равно т.д.

Ныне создадим стержневой торгующий дока. Наша сестра с сообразно шагам создавали дока на первом уроке, равно аз (многогрешный) думаю у Вы без- возникнет проблем. Если на союзник возникнут, загляните тама.

Во настройках эксперта выставляем стоплос во 40 пунктов, тейкпрофит 100, контингент лотов 1. Ваша сестра можете позже поэкспериментировать со другими значениями. Тестируем бери Н1, пример по части евро.

/*[[ Name := Expert2 Author := Fxtest Link := forextimes.ru Lots := 1.00 Stop Loss := 40 Take Profit := 100 Trailing Stop := 0 ]]*/ if totaltrades=1 then exit; //если 1 поуже снедать так выходим (сие кол-во открытых позиций) if c[1]-h[2]>10*point then SetOrder(op_buy,lots,ask,3,l[1]-stoploss*point,bid+takeprofit*point,green); if l[2]-c[1]>10*point then SetOrder(op_sell,lots,bid,3,h[1]+stoploss*point,ask-takeprofit*point,red);

19 апреля 2016