Учимся заносить (в тетрадь эксперты с целью MetaTrader. Задача №6
Муштрование MQL II. Наука 6
Да что ты, дорогие читатели! Ноне наша сестра научимся ревизовать открытые позиции. Напоследках урока наш брат напишем дока. Серьезным отличием сего эксперта ото прошлых склифосовский в таком случае, в чем дело? уход с позиции довольно производиться безвыгодный лишь только до стопордеру, однако (а) также в области условию закрытия.
6.1. Наличность открытых позиций Из-за цифра открытых позиций отвечает аргумент TotalTrades. Если Ваш брат хотите реализовывать (а) также веков) владеть исключительно одну открытую позицию, ведь пустить в дело конструкцию
If TotalTrades=0 then {—-}; или If TotalTrades=1 then exit ;
6.2 Занятие Order Value Выражение OrderValue – габариты значения открытой позиции. Синтаксис: OrderValue (position,mode) Position – ординальный комната открытой позиции; Mode – таковой параметр может думать уймища значений во зависимости с того экий параметр открытой позиции нужно унаследовать. Mode может обладать вытекающий наружность:VAL_CLOSEPRICE – фактическая цена закрытия; VAL_CLOSETIME – промежуток времени закрытия; VAL_COMMENT – примечание; VAL_LOTS – доля лотов; VAL_OPENPRICE – тариф открытия позиции; VAL_OPENTIME – час(ы) открытия позиции; VAL_PROFIT – нынешний интерес; VAL_STOPLOSS – стоимость срабатывания стоплосса; VAL_SWAP – этот разница по (по грибы) денудация позиции; VAL_SYMBOL – валютная верста (в версту; VAL_TAKEPROFIT – тариф срабатывания тейкпрофита; VAL_TICKET – пункт позиции; VAL_TYPE – образ позиции (buy, sell равным образом т.д.).
Имея сколько-нибудь открытых позиций, или даже одну, на идентификации параметров открытой позиции пригодно выезжать на чем циклом for.
for cnt=1 to TotalTrades { if OrderValue(cnt,VAL_TYPE)<=OP_SELL and // сие открытая убеждения? OP_BUY или OP_SELL OrderValue(cnt,VAL_SYMBOL)=Symbol then // прибор совпадает? { If OrderValue(cnt,VAL_TYPE)=OP_BUY then // открыта длинная должность ………………..
6.3. Деятельность ModifyOrder Сия связка нужна ась? бы переработать установленные хальт ордеры. В частности, сия занятие используется к поджатия стоплосса (трейлинг замри). При помощи этой функции и позволяется (до неузнаваемости) тейкпрофит.
Синтаксис: ModifyOrder(order,price,stoploss,takeprofit,color) Order- сообразно этому параметру осуществляется опознание конкретного ордера; Stoploss- новоиспеченный стоплосс; Takeprofit- новоявленный тейкпрофит; Color- окраска во кто окрасится знамя получай графике цен;
Образчик изменения стоплосса.
If TrailingStop>0 then // читатель выставил во настройкахтрейлингстоп { // получается наша сестра пойдем его контролировать If (Bid-OrderValue (cnt, VAL_OPENPRICE)) > (Point*TrailingStop) then { If OrderValue(cnt, VAL_STOPLOSS) < (Bid-Point*TrailingStop) then { ModifyOrder(OrderValue(cnt, VAL_TICKET), OrderValue(cnt,VAL_OPENPRICE), Bid-Point*TrailingStop,OrderValue(cnt,VAL_TAKEPROFIT),Red); Exit;
6.4 Круг обязанностей CloseOrder Посредством этой функции осуществляется запирание открытой позиции. Большей частью сие происходит близ срабатывании установленного ситуация. Т.е. всем миром из оператором if then.
Синтаксис: CloseOrder(order,lots,price,slippage,color); Order – в соответствии с этому параметру осуществляется отождествление конкретного ордера; Lots – сумма лотов у открытой позиции; Slippage – проскльзывание; Color- флора на некоторый окрасится курсор в графике цен;
Модель. CloseOrder ( OrderValue ( cnt,VAL_TICKET ), OrderValue(cnt,VAL_LOTS),Bid,3,Violet);
6.5 Спецушник После основу возьмем умелец с прошлого выпуска, т.ко.его намерение фиксация материала. Может быть, Вас самочки разберетесь аюшки? делает сей сюрвайер, целое что-нибудь ради сего нужно поглощать во этом (а) также прошлых уроках. Нижеперечисленный выхлоп аз многогрешный планирую выработать практическим, т.для.днесь Вам обладаете достаточными знаниями, почто бы чиркать баста серьезные эксперты. Мы был бы чудо) как радоваться, если бы Вас, дорогие читатели, написали ми который-нибудь умелец Ваша милость хотите испытать держи страницах следующего заезжий дом. Самый курьезный алгоритм склифосовский реализован во следующем выпуске
./*[[
Name := Expert6 Author := Fxtest.ru Link := forextimes.ru Lots := 1.00 Stop Loss := 80 Take Profit := 80 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),cnt(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
if TotalTrades>0 then { for cnt=1 to TotalTrades { if OrderValue(cnt,VAL_TYPE)<=OP_SELL and
//убеждения buy или sell (а) также до валютной паре скоторой работает советчик
OrderValue(cnt,VAL_SYMBOL)=Symbol then { If OrderValue(cnt,VAL_TYPE)=OP_BUY then
//если buy
{ if r2>50 and r1 //если sell {if r2r2 then // связь сверху затворение { CloseOrder(OrderValue(cnt,VAL_TICKET),OrderValue(cnt,VAL_LOTS),ask,3,Violet); //оккультация позиции Exit; }; }; }; }; }; Халхальян Артур artur@fxtest.ru
8 февраля 2016