extern int TakeProfit = 300 ; //Тейк профит extern int StopLoss = 350 ; //Стоп лосс extern double Lots = 0.1 ; //Лоты extern int Bezubitoc = 150 ; //Перенос лося в безубыток extern bool TWO_order = true ; //азрешить второй ордер extern bool MODIFICUL = true ; //============================================= extern bool COMMENT = true ; //Разрешить комментарии extern int time = 10 ; //Переодичность комментариев //============================================= extern int Distanciay = 80 ; //Размер свечи extern int MA1_period = 8 ; //Период быстрого мувинга extern int MA1_type = 1 ; //Тип мувинга extern int MA1_price = 0 ; //Тип цены extern int MA1_shift = 0 ; //Сдвиг относительно графика //============================================= extern int MA2_period = 18 ; //Период медленного мувинга extern int MA2_type = 1 ; //Тип мувинга extern int MA2_price = 0 ; //Тип цены extern int MA2_shift = 0 ; //Сдвиг относительно графика //============================================= extern int MagicNumber = 227 ; //Магический номер extern int Slip = 50 ; //Проскальзывание //================================================================== int start () { time=time*60000 ; //Старт и приведение времени к норме double spid = iMA(NULL,0,MA1_period,MA1_shift,MA1_type,MA1_price,0);//Быстрая скользящая double sred = iMA(NULL,0,MA2_period,MA2_shift,MA2_type,MA2_price,0);//Медленная скользящая //================================================================== double slb =NormalizeDouble(Bid - (StopLoss * Point),Digits);//Стоп лосс для бай ордеров double tpb =NormalizeDouble(Ask + (TakeProfit* Point),Digits);//Тейк профит для бай ордеров double sls =NormalizeDouble(Ask + (StopLoss * Point),Digits);//Стоп лос для селл ордеров double tps =NormalizeDouble(Bid - (TakeProfit* Point),Digits);//Тейк профит для селл ордеров //================================================================== int distanciya=NormalizeDouble(Distanciay*(Point),Digits); //Нормализация параметра double dis =spid-sred; //Разность мувингов int total=OrdersTotal(); //Присвоение общего колличества ордеров int b=0, s=0; //Обнуление переменных for (int i=total-1; i>=0; i--) //Перебор ордеров { if(OrderSelect(i, SELECT_BY_POS)) //Разбор ордера { if(OrderSymbol()!=Symbol())continue; //Если ордер не графика то перебор снова { if (OrderType()==OP_BUY) //Если ордер наш и БАЙ { string VALB=OrderSymbol (); //Присвоение символа double tpbb=OrderTakeProfit (); //Присвоение тейк профита double slbs=OrderStopLoss (); //Присвоение Стоп лосса double lotb=OrderLots (); //Присвоение лота double otkb=OrderOpenPrice (); //Присвоение цены открытия double magb=OrderMagicNumber(); //Присвоение магического номера b++ ; //Счетчик ордеров } if (OrderType()==OP_SELL) //Если ордер наш и СЕЛЛ { string VALS=OrderSymbol (); //Присвоение символа double tpbs=OrderTakeProfit (); //Присвоение тейк профита double slss=OrderStopLoss (); //Присвоение Стоп лосса double lots=OrderLots (); //Присвоение лота double otks=OrderOpenPrice (); //Присвоение цены открытия double mags=OrderMagicNumber(); //Присвоение магического номера s++ ; //Счетчик ордеров }}}} //============================================= if (TWO_order==true) { if(b==1) //Если есть ордер БАЙ { OrderSend(VALB,OP_BUY, lotb,Ask,Slip,slb,0,NULL,MagicNumber,0,CLR_NONE);//Открыть БАЙ } if(s==1) //Если есть ордер СЕЛЛ { OrderSend(VALS,OP_SELL,lots,Bid,Slip,sls,0,NULL,MagicNumber,0,CLR_NONE);//Открыть СЕЛЛ }} //============================================= if (MODIFICUL==true) { for (int k=total-1; k>=0; k--) //Перебор ВСЕХ ОРДЕРОВ { if(OrderSelect(k, SELECT_BY_POS)) //Разбор ордера { if(OrderType()==OP_BUY&&OrderStopLoss()==0) //Если есть БАЙ и Если Стоп Лосс равен 0 { OrderModify(OrderTicket(),OrderOpenPrice(),slb,tpb,0,Blue); //Модифицировать поставить профит и стоп } if(OrderType()==OP_SELL&&OrderStopLoss()==0) //Если есть СЕЛЛ и Если Стоп Лосс равен 0 { OrderModify(OrderTicket(),OrderOpenPrice(),sls,tps,0,Blue); //Модифицировать поставить профит и стоп }}}} if (COMMENT==true) //Если разрешены комментарии { if (dis>0&&dis>distanciya&&Low[2]>spid&&Low[1]>spid) //Условие комментария { Alert("НА="+Symbol(),"=ВОЗМОЖЕН ВХОД ==BUY=="); //Комментарий Sleep(time); //Периодичность Комментария } if (dis<0&&dis*(-1)>distanciya&&High[2]=cenaglav) //Если свеча больше Distanciay { Alert("БОЛЬШАЯ СВЕЧА==РАЗМЕР==",cena/Point); //комментарий Sleep(time); //Периодичность Комментария }} return(0);} //Возврат в начало