//+------------------------------------------------------------------+ //| Pendulum 1_01.mq4 | //| Copyright © BFE2006 | //| http://BFE2006@yandex.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © BFE2006" #property link "http://BFE2006@yandex.ru" //+------------------------------------------------------------------+ //| Ïàðàìåòðû ðàáîòû | //| - Âûñòàâëÿåò äâà ñòàðòîâûõ îòëîæåííûõ îðäåðà íà ïîêóïêó è ïðîäàæó| //| (ðàçìåð ëîò ðàñ÷èòûâàåòñÿ àâòîìàòè÷åñêè èñõîäÿ èç ðàçìåðîâ | //| äåïîçèòà è ìàêñèìàëüíîãî óâåëå÷åíèÿ "ïëå÷à"îò 0.01 äî 0.07ëîòà)| //| ñ ó÷åòîì ðàçìåðà 2-õ ïðåäèäóùèõ äíåâíûõ áàðîâ (ðàññòîÿíèå îò | //| òåêóùåé öåíû, âåëè÷èíà òðàëëà è ïèïñîâêè) | //| | //| - Òðàëëèò îòëîæåííûå îðäåðà âñëåä çà öåíîé äî ñðàáàòûâàèÿ | //| îäíîãî èç íèõ | //| | //| - Ïèïñóåò ñðàáîòàâøèé îðäåð, èçìåíèâ ïðîòèâîïîëîæíûé îðäåð íà | //| óðîâåíü "ïëå÷à". Îòëþ÷àåò òðàëë, òàêèì îáðàçîì îáàçíà÷èâ | //| ãðàíèöû òîðãîâëè | //| | //| - Ïðè ðàçâîðîòå öåíû è îòêðûòèè îðäåðà ñ "ïëå÷îì", â | //| ïðîòèâîïîëîæíóþ ñòîðîíó ñòàâèò îòëîæåííûé îðäåð ñ áîëüøèì | //| ïëå÷îì â îáðàòíóþ ñòîðîíó ïî öåíå ïåðâîãî îòêðûòîãî îðäåðà è | //| ò.ä.. (ìàêñèìàëüíûé ëîò óâåëè÷èâàåòñÿ íà 2*128). | //| Ñîçäàâàÿ ìàÿòíèê. Ïèïñîâêà îòêëþ÷àåòñÿ. | //| | //| - Êîíòðîëèðóåò îáùóþ ïðèáûëü è óáûòîê (àâòîìàòè÷åñêè | //| ðàñ÷èòûâàåòñÿ ïðîöåíò ïðèáûëè îò 2% äî 0.2%). Ïðè íàëè÷èè | //| ïðèáûëè çàêðûâàåò âñå îðäåðà. | //+------------------------------------------------------------------+ // ============== Ïàðàìåòðû, íàñòðàèâàèìûå ïîëüçîâàòåëåì ============= // ---------------- Ïàðàìåòðû, îáùèå äëÿ âñåõ îðäåðîâ ---------------- extern string t110="------ Ó îòêðûòûõ âðó÷íóþ MAGIC = 0 ------"; extern int MAGIC=0; //Ó îðäåðîâ îòêðûòûõ âðó÷íóþ MAGIC=0. double Lot; //Ëîò äëÿ óñòàíîâêè îðäåðà. double ruka; //Ðóêà èçìåííåíèÿ ëîòà ïðè îòðèöàòåëüíîì ðàçâèòèè ñîáûòèé. bool Auto=true; //Åñëè âêë., àâòîìàòè÷åñêè ðàññ÷èòûâàåòñÿ ðàçìåð ëîòà, ðóêè è //ãëîáàëüíûõ ñòîïîâ. bool Ustan_BuyStop=true; //Ìîæíî ëè ñòàâèü Áàé-Còîï åñëè â ðûíêå òàêîãî ó íàñ íåò. bool Ustan_SellStop=true; //Ìîæíî ëè ñòàâèü Cåëë-Cñòîï åñëè â ðûíêå òàêîãî ó íàñ íåò. int st_Step; //Ðàññòîÿíèå â ïóíêòàõ îò óðîâíÿ òåêóùåé öåíû //äî óîðâíÿ óñòàíîâêè ñòîïîâîãî îðäåðà. int st_TrStop; //Òðåéëèíã-Ñòîï ñòîïîâûõ îðäåðîâ. //Åñëè = 0 òî òàðëà íåò è st_TrStep íå âàæåí. int st_TrStep; //Øàã òðàëà ñòîïîâûõ îðäåðîâ. int PipsProfit; //Ïðîôèò ïðè ïèïñîâêå ìîæíî ñòàâèòü 1, 2, 3, ... int Proskalz; //Ïðîñêàëüçûâàíèå â ïóíêòàõ (íóæíî òîëüêî êîãäà PipsProfit>0). double pipsruka; //Ïèïñîâêà äëÿ îðäåðîâ ñ ðóêîé. bool UseGlobalLevels=true; //Âêë./Âûêë. îòñëåæèàíèÿ ãëîáàëüíûõ óðîâíåé ïðèáûëè/óáûòêà //åñëè UseGlobalLevels=false, òî çíà÷åíèò //Global_TakeProfit è Global_StopLoss íå âàæíî. double Global_TakeProfit; //Ãëîáàëüíûé Òåéê-Ïðîôèò (çàäà¸òñÿ â ïðîöåíòàõ). double Global_StopLoss; //Ãëîáàëüíûé Ñòîï-Ëîññ (çàäà¸òñÿ â ïðîöåíòàõ). // ---------- Ïðî÷èå ïåðåìåííûå --------------------------------------- double lot,sts,PNT,NewPrice,Price,Balans,Free,pips,glp,klv,prb,sred_profit; double s_buy,s_sell,s_buystop,s_sellstop,s_buy_lot,s_buystop_lot,s_sell_lot,s_sellstop_lot; //îòêðûòûå è îòëîæåííûå îðäåðà string SMB,com1,com2,com3,com4,com5; int MinLevel; bool fm,b,s; double prc2,prc1,prc08,prc06,prc04,prc02,l1,l2,raznost,t_raznost,L,H,sr; double min_lot,lot_ruka,MRG,T,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,balanc1,balanc2,balanc3,balanc4,balanc5,balanc6,balanc7,balanc8,balanc9,balanc10; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //------------ Ïðîâåðÿåì âêë. ñîâåòíèêà ------------------------------ if(!IsExpertEnabled())//åñëè ëîæü {Alert("Îøèáêà! Íå íàæàòà êíîïêà *Ñîâåòíèêè*");} else {Comment("Êàê òîëüêî öåíà èçìåíèòñÿ, Ñîâåòíèê íà÷í¸ò ðàáîòó.");} //------------- Çàïîìèíàåì íà÷àëüíûå çíà÷åíèÿ ------------------------ SMB=Symbol(); //Ñèìâîë âàëþòíîé ïàðû PNT=MarketInfo(SMB,MODE_POINT); //Ðàçìåð ïóíêòà â âàëþòå êîòèðîâêè. //Äëÿ òåêóùåãî èíñòðóìåíòà õðàíèòñÿ â ïðåäîïðåäåëåííîé //ïåðåìåííîé Point. MinLevel=MarketInfo(SMB,MODE_STOPLEVEL);//Ìèíèìàëüíî äîïóñòèìûé óðîâåíü //ñòîï-ëîññà/òåéê-ïðîôèòà â ïóíêòàõ //-------------------------------------------------------------------- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { ObjectCreate("label_object1", OBJ_LABEL, 0, 0, 0); ObjectSet("label_object1", OBJPROP_XDISTANCE, 600); ObjectSet("label_object1", OBJPROP_YDISTANCE, 17); ObjectSetText("label_object1", "Pendulum™ version 1_01",9, "Verdana", Red); ObjectCreate("label_object2", OBJ_LABEL, 0, 0, 0); ObjectSet("label_object2", OBJPROP_XDISTANCE, 600); ObjectSet("label_object2", OBJPROP_YDISTANCE, 47); ObjectSetText("label_object2", StringConcatenate("0.01 Ëîòà: ",(NormalizeDouble((balanc1),2))," ",AccountCurrency()),8, "Verdana", Orange); ObjectCreate("label_object3", OBJ_LABEL, 0, 0, 0); ObjectSet("label_object3", OBJPROP_XDISTANCE, 600); ObjectSet("label_object3", OBJPROP_YDISTANCE, 57); ObjectSetText("label_object3", StringConcatenate("0.02 Ëîòà: ",(NormalizeDouble((balanc1*3),2))," ",AccountCurrency()),8, "Verdana", Orange); ObjectCreate("label_object4", OBJ_LABEL, 0, 0, 0); ObjectSet("label_object4", OBJPROP_XDISTANCE, 600); ObjectSet("label_object4", OBJPROP_YDISTANCE, 67); ObjectSetText("label_object4", StringConcatenate("0.03 Ëîòà: ",(NormalizeDouble((balanc1*6),2))," ",AccountCurrency()),8, "Verdana", Orange); ObjectCreate("label_object5", OBJ_LABEL, 0, 0, 0); ObjectSet("label_object5", OBJPROP_XDISTANCE, 600); ObjectSet("label_object5", OBJPROP_YDISTANCE, 77); ObjectSetText("label_object5", StringConcatenate("0.04 Ëîòà: ",(NormalizeDouble((balanc1*9),2))," ",AccountCurrency()),8, "Verdana", Orange); ObjectCreate("label_object6", OBJ_LABEL, 0, 0, 0); ObjectSet("label_object6", OBJPROP_XDISTANCE, 600); ObjectSet("label_object6", OBJPROP_YDISTANCE, 87); ObjectSetText("label_object6", StringConcatenate("0.05 Ëîòà: ",(NormalizeDouble((balanc1*12),2))," ",AccountCurrency()),8, "Verdana", Orange); ObjectCreate("label_object7", OBJ_LABEL, 0, 0, 0); ObjectSet("label_object7", OBJPROP_XDISTANCE, 600); ObjectSet("label_object7", OBJPROP_YDISTANCE, 97); ObjectSetText("label_object7", StringConcatenate("0.06 Ëîòà: ",(NormalizeDouble((balanc1*15),2))," ",AccountCurrency()),8, "Verdana", Orange); ObjectCreate("label_object8", OBJ_LABEL, 0, 0, 0); ObjectSet("label_object8", OBJPROP_XDISTANCE, 600); ObjectSet("label_object8", OBJPROP_YDISTANCE, 107); ObjectSetText("label_object8", StringConcatenate("0.07 Ëîòà: ",(NormalizeDouble((balanc1*18),2))," ",AccountCurrency()),8, "Verdana", Orange); ObjectCreate("label_object11", OBJ_LABEL, 0, 0, 0); ObjectSet("label_object11", OBJPROP_XDISTANCE, 600); ObjectSet("label_object11", OBJPROP_YDISTANCE, 37); ObjectSetText("label_object11", StringConcatenate("Ðàçìåð ðóêè: ",(ruka)),8, "Verdana", Orange); //---- Ïðîâåðêà ðàáîòû â àâòîìàòè÷åñêîì ðåæèìå if (Auto==true){Auto();} //---- Îïðåäåëÿåì ïðîöåíò äëÿ ãëîáàëüíîãî ïðîôèòà l1=lot;l2=Lot*ruka; raznost=l2-l1;//íàõîäèì ðàçíîñòü ìåæäó ñòàðòîâûì ëîòîì è ëîòîì ñ ðóêîé t_raznost=MarketInfo(SMB,MODE_TICKVALUE)*raznost; prc2=(AccountBalance()/100)*2; //2% prc1=(AccountBalance()/100)*1; //1% prc08=(AccountBalance()/100)*0.8; //0.8% prc06=(AccountBalance()/100)*0.6; //0.6% prc04=(AccountBalance()/100)*0.4; //0.4% prc02=(AccountBalance()/100)*0.2; //0.2% if(t_raznost*10>=prc2) {Global_TakeProfit=2;} if(t_raznost*10>=prc1 && t_raznost*10<prc2) {Global_TakeProfit=1;} if(t_raznost*10>=prc08 && t_raznost*10<prc1) {Global_TakeProfit=0.8;} if(t_raznost*10>=prc06 && t_raznost*10<prc08) {Global_TakeProfit=0.6;} if(t_raznost*10>=prc04 && t_raznost*10<prc06) {Global_TakeProfit=0.4;} if(t_raznost*10>=prc02 && t_raznost*10<prc04) {Global_TakeProfit=0.2;} if(t_raznost*10<=prc02) {Global_TakeProfit=0.2;} for(int i=1;i<=2;i++) { L=L+iLow(Symbol(),PERIOD_D1,1); H=H+iHigh(Symbol(),PERIOD_D1,1); } //---- sr=((H-L)/i)*10000; sr=(NormalizeDouble((sr),0)); PipsProfit=sr/10; PipsProfit=(NormalizeDouble((PipsProfit),0)); if(PipsProfit<1){PipsProfit=1;} st_Step=(sr-PipsProfit-Proskalz); if(st_Step<15){return(0);} st_TrStop=(sr-PipsProfit-Proskalz); if(st_TrStop<15){return(0);} L=0;H=0; //---- Çàïîìèíàåì íà÷àëüíûå çíà÷åíèÿ: lot=Lot; //Ëîòà sts=st_TrStop; //Òðàëëà ñòîïîâûõ îðäåðîâ Balans=AccountBalance(); Free=AccountEquity(); pips=PipsProfit; glp=Balans+(Balans/100*Global_TakeProfit); glp=(NormalizeDouble((glp),2)); if(OrdersHistoryTotal()>0){chet();} //-------------------------------------------------------------------- //----------------- Ñ÷èòàåì îòêðûòûå è îòëîæåííûå îðäåðà ------------- for (int q=OrdersTotal(); q>=0; q--) { if (OrderSelect(q,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderSymbol()!=SMB || OrderMagicNumber()!=MAGIC)continue; { if(OrderType()==OP_BUY) {s_buy++; s_buy_lot=s_buy_lot+OrderLots();} if(OrderType()==OP_BUYSTOP) {s_buystop++; s_buystop_lot=s_buystop_lot+OrderLots();} if(OrderType()==OP_SELL) {s_sell++; s_sell_lot=s_sell_lot+OrderLots();} if(OrderType()==OP_SELLSTOP) {s_sellstop++;s_sellstop_lot=s_sellstop_lot+OrderLots();} } } } //------- Ïðîâåðÿåì íåîáõîäèìîñòü âûñòàâëåíèÿ ñòàðòîâûõ îðäåðîâ ------ if (s_buy+s_sell==0) {ustorder();} //------- Ïðîâåðÿåì íåîáõîäèìîñòü òðàëëà ñòàðòîâûõ îðäåðîâ ----------- if (s_buy+s_sell>0){st_TrStop=0;com1="Òðàëë ñòîïîâûõ îðäåðîâ - âûêë. (";} //Åñëè åñòü îòêðûòûé îðäåð âûêë. òðàëë ñòîïîâûõ if(st_TrStop>0){tr_stop();com1="Òðàëë ñòîïîâûõ îðäåðîâ - âêë. (";}//Ïåðåõîäèì ê òðàëëó //------------ Ïðîâåðÿåì íåîáõîäèìîñòü óâåëå÷åíèÿ ïëå÷à -------------- //- 1 if (s_buy+s_sell==1){plecho1();} //- 2 if (s_buy+s_sell==2){plecho2();} //- 3 if (s_buy+s_sell==3){plecho3();} //- 4 if (s_buy+s_sell==4){plecho4();} //- 5 if (s_buy+s_sell==5){plecho5();} //- 6 if (s_buy+s_sell==6){plecho6();} //- 7 if (s_buy+s_sell==7){plecho7();} //- 8 if (s_buy+s_sell==8){plecho8();} //- 9 //if (s_buy+s_sell==9){plecho9();} //- 10 //if (s_buy+s_sell==10){plecho10();} //--- Åñëè åñòü íåîáõîäèìîñòü, êîë-âî êîëåáàíèé ìàÿòíèêà ìîæíî óâåëè÷èòü //--------------- Ïðîâåðÿåì âêë/âûêë ïèïñîâêè ------------------------ if (s_buy+s_sell>1 && UseGlobalLevels==true){PipsProfit=0;com2="Ïèïñîâêà - âûêë. (";} if (s_buy+s_sell>1 && UseGlobalLevels==false){pips();com2="Ïèïñîâêà - âêë. (";} if (s_buy+s_sell==1){pips();com2="Ïèïñîâêà - âêë. (";} if (s_buy+s_sell==0){com2="Ïèïñîâêà - âêë. (";} if (PipsProfit==0 || PipsProfit>4)com3=" ïóíêòîâ"; if (PipsProfit==1)com3=" ïóíêò"; if (PipsProfit>2 && PipsProfit<5)com3=" ïóíêòa"; //--------------- Ïðîâåðÿåì ãëîáàëüíûå óðîâíè ------------------------ if (s_buy+s_sell>1 && s_buy+s_sell<11 && UseGlobalLevels==true && (Free-Balans)>=(Balans/100*Global_TakeProfit)){glob_profit();} if (s_buy+s_sell==11){glob_stop();} //----------------- Âûâîäèì èíôîðìàöèþ ------------------------------- if(Lot>0) { Comment("Îòêðûòûõ îðäåðîâ äëÿ ",SMB,":","\n", "buy - ",s_buy," (",s_buy_lot,")"," sell - ",s_sell," (",s_sell_lot,")","\n", "buystop - ",s_buystop," (",s_buystop_lot,")"," sellstop - ",s_sellstop," (",s_sellstop_lot,")","\n", com1,st_TrStop,")","\n",com2,PipsProfit,com3,")","\n", "--- Ãëîáàëüíûé ïðîôèò ---","\n",glp," ",AccountCurrency()," (",Global_TakeProfit," %)","\n", "Êîë-âî ñäåëîê - ",klv,"\n","Ïðèáûëü - ",prb," ",AccountCurrency(),"\n", "Ñðåäíÿÿ ïðèáûëü - ",sred_profit," ",AccountCurrency()); } if(Lot==0) { balanc1=(NormalizeDouble((balanc1),2)); Comment(com4,"\n",com5,"\n","Ìèíèìóì - ",balanc1," ",AccountCurrency()); } //----------------- Îáíóëÿåì ñ÷åò÷èêè -------------------------------- s_buy=0;s_buystop=0;s_sell=0;s_sellstop=0;s_buy_lot=0;s_buystop_lot=0;s_sell_lot=0;s_sellstop_lot=0; st_TrStop=sts;Lot=lot;PipsProfit=pips;sred_profit=0; sred_profit=prb/klv; sred_profit=(NormalizeDouble((sred_profit),2)); klv=0;prb=0; return(0); } //==================================================================== //----------------- Ñòàâèì ñòàðòîâûå îòëîæåííûå îðäåðà --------------- void ustorder() { if(s_sellstop==0 && st_Step>=MinLevel) { NewPrice=Bid-st_Step*Point; fm=OrderSend(SMB,OP_SELLSTOP,Lot,NewPrice,3,0,0,NULL,MAGIC,0,CLR_NONE); } if(s_buystop==0 && st_Step>=MinLevel) { NewPrice=Ask+st_Step*Point; fm=OrderSend(SMB,OP_BUYSTOP,Lot,NewPrice,3,0,0,NULL,MAGIC,0,CLR_NONE); } } //----------------- Òðàëëèì ñòîïîâûé îðäåð --------------------------- void tr_stop() { for(int w=OrdersTotal();w>=0;w--) { if (OrderSelect(w,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderType()==OP_BUYSTOP && OrderOpenPrice()>Ask+(st_TrStop+st_TrStep)*Point) {NewPrice=Ask+st_TrStop*Point;fm=OrderModify(OrderTicket(),NewPrice,0,0,0,CLR_NONE);} if(OrderType()==OP_SELLSTOP && OrderOpenPrice()<Bid-(st_TrStop+st_TrStep)*Point) {NewPrice=Bid-st_TrStop*Point;fm=OrderModify(OrderTicket(),NewPrice,0,0,0,CLR_NONE);} } } } //---------------------------- Ïèïñóåì ------------------------------- void pips() { for(int e=OrdersTotal();e>=0;e--) { if (OrderSelect(e,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderType()==OP_BUY && OrderOpenPrice()<Bid-(PipsProfit+Proskalz)*Point) {OrderClose(OrderTicket(),OrderLots(),Bid,3);zachistka();} if(OrderType()==OP_SELL && OrderOpenPrice()>Ask+(PipsProfit+Proskalz)*Point) {OrderClose(OrderTicket(),OrderLots(),Bid,3);zachistka();} } } } //------------------------ Óáèðàåì ëèøüíèå îðäåðà -------------------- void zachistka() { for(int e=OrdersTotal();e>=0;e--) { if (OrderSelect(e,SELECT_BY_POS,MODE_TRADES)==true) { if (OrderLots()>lot){OrderDelete(OrderTicket());} } } } //------------------ Ðàáîòà ñ ãëîáàëüíûìè óðîâíÿìè ------------------- //==================================================================== void glob_profit() { for (int i=OrdersTotal();i>=0; i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderType()==OP_BUY){OrderClose(OrderTicket(),OrderLots(),Bid,3);} if(OrderType()==OP_SELL){OrderClose(OrderTicket(),OrderLots(),Ask,3);} } } zachistka(); } //==================================================================== void glob_stop() { for (int i=OrdersTotal();i>=0; i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderType()==OP_BUY) {OrderClose(OrderTicket(),OrderLots(),Bid,3);} if(OrderType()==OP_SELL){OrderClose(OrderTicket(),OrderLots(),Ask,3);} } } zachistka(); } //-------------------------- Ïëå÷î õ1 -------------------------------- void plecho1() {//Îïðåäåëÿåì â êàêóþ ñòîðîíó óâåëè÷èâàòü for (int e=OrdersTotal();e>=0;e--) { if (OrderSelect(e,SELECT_BY_POS,MODE_TRADES)==true) { if (OrderType()==OP_BUYSTOP && OrderLots()<lot*ruka)//Îïðåäåëÿåì íàïðàâëåíèå è öåíó ïëå÷à {Price=OrderOpenPrice();OrderDelete(OrderTicket());Lot=lot*ruka; fm=OrderSend(SMB,OP_BUYSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} } if (OrderType()==OP_SELLSTOP && OrderLots()<lot*ruka)//Îïðåäåëÿåì íàïðàâëåíèå è öåíó ïëå÷à {Price=OrderOpenPrice();OrderDelete(OrderTicket());Lot=lot*ruka; fm=OrderSend(SMB,OP_SELLSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} } } //-------------------------- Ïëå÷î õ2 -------------------------------- void plecho2() { for (int e=OrdersTotal();e>=0;e--) { if (OrderSelect(e,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderLots()==lot*ruka*2 && OrderType()==OP_BUYSTOP){return(0);} if(OrderLots()==lot*ruka*2 && OrderType()==OP_SELLSTOP){return(0);} if(OrderLots()==lot && OrderType()==OP_BUY){Price=OrderOpenPrice();Lot=lot*ruka*2; fm=OrderSend(SMB,OP_BUYSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} if(OrderLots()==lot && OrderType()==OP_SELL){Price=OrderOpenPrice();Lot=lot*ruka*2; fm=OrderSend(SMB,OP_SELLSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} } } } //-------------------------- Ïëå÷î õ3 -------------------------------- void plecho3() { for (int e=OrdersTotal();e>=0;e--) { if (OrderSelect(e,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderLots()==lot*ruka*4 && OrderType()==OP_BUYSTOP){return(0);} if(OrderLots()==lot*ruka*4 && OrderType()==OP_SELLSTOP){return(0);} if(OrderLots()==lot*ruka && OrderType()==OP_BUY){Price=OrderOpenPrice();Lot=lot*ruka*4; fm=OrderSend(SMB,OP_BUYSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} if(OrderLots()==lot*ruka && OrderType()==OP_SELL){Price=OrderOpenPrice();Lot=lot*ruka*4; fm=OrderSend(SMB,OP_SELLSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} } } } //-------------------------- Ïëå÷î õ4 -------------------------------- void plecho4() { for (int e=OrdersTotal();e>=0;e--) { if (OrderSelect(e,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderLots()==lot*ruka*8 && OrderType()==OP_BUYSTOP){return(0);} if(OrderLots()==lot*ruka*8 && OrderType()==OP_SELLSTOP){return(0);} if(OrderLots()==lot*ruka*2 && OrderType()==OP_BUY){Price=OrderOpenPrice();Lot=lot*ruka*8; fm=OrderSend(SMB,OP_BUYSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} if(OrderLots()==lot*ruka*2 && OrderType()==OP_SELL){Price=OrderOpenPrice();Lot=lot*ruka*8; fm=OrderSend(SMB,OP_SELLSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} } } } //-------------------------- Ïëå÷î õ5 -------------------------------- void plecho5() { for (int e=OrdersTotal();e>=0;e--) { if (OrderSelect(e,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderLots()==lot*ruka*16 && OrderType()==OP_BUYSTOP){return(0);} if(OrderLots()==lot*ruka*16 && OrderType()==OP_SELLSTOP){return(0);} if(OrderLots()==lot*ruka*4 && OrderType()==OP_BUY){Price=OrderOpenPrice();Lot=lot*ruka*16; fm=OrderSend(SMB,OP_BUYSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} if(OrderLots()==lot*ruka*4 && OrderType()==OP_SELL){Price=OrderOpenPrice();Lot=lot*ruka*16; fm=OrderSend(SMB,OP_SELLSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} } } } //-------------------------- Ïëå÷î õ6 -------------------------------- void plecho6() { for (int e=OrdersTotal();e>=0;e--) { if (OrderSelect(e,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderLots()==lot*ruka*32 && OrderType()==OP_BUYSTOP){return(0);} if(OrderLots()==lot*ruka*32 && OrderType()==OP_SELLSTOP){return(0);} if(OrderLots()==lot*ruka*8 && OrderType()==OP_BUY){Price=OrderOpenPrice();Lot=lot*ruka*32; fm=OrderSend(SMB,OP_BUYSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} if(OrderLots()==lot*ruka*8 && OrderType()==OP_SELL){Price=OrderOpenPrice();Lot=lot*ruka*32; fm=OrderSend(SMB,OP_SELLSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} } } } //-------------------------- Ïëå÷î õ7 -------------------------------- void plecho7() { for (int e=OrdersTotal();e>=0;e--) { if (OrderSelect(e,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderLots()==lot*ruka*64 && OrderType()==OP_BUYSTOP){return(0);} if(OrderLots()==lot*ruka*64 && OrderType()==OP_SELLSTOP){return(0);} if(OrderLots()==lot*ruka*16 && OrderType()==OP_BUY){Price=OrderOpenPrice();Lot=lot*ruka*64; fm=OrderSend(SMB,OP_BUYSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} if(OrderLots()==lot*ruka*16 && OrderType()==OP_SELL){Price=OrderOpenPrice();Lot=lot*ruka*64; fm=OrderSend(SMB,OP_SELLSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} } } } //-------------------------- Ïëå÷î õ8 -------------------------------- void plecho8() { for (int e=OrdersTotal();e>=0;e--) { if (OrderSelect(e,SELECT_BY_POS,MODE_TRADES)==true) { if(OrderLots()==lot*ruka*128 && OrderType()==OP_BUYSTOP){return(0);} if(OrderLots()==lot*ruka*128 && OrderType()==OP_SELLSTOP){return(0);} if(OrderLots()==lot*ruka*32 && OrderType()==OP_BUY){Price=OrderOpenPrice();Lot=lot*ruka*128; fm=OrderSend(SMB,OP_BUYSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} if(OrderLots()==lot*ruka*32 && OrderType()==OP_SELL){Price=OrderOpenPrice();Lot=lot*ruka*128; fm=OrderSend(SMB,OP_SELLSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} } } } //-------------------------- Ïëå÷î õ9 -------------------------------- //void plecho9() //{ // for (int e=OrdersTotal();e>=0;e--) // { // if (OrderSelect(e,SELECT_BY_POS,MODE_TRADES)==true) // { // if(OrderLots()==lot*ruka*512 && OrderType()==OP_BUYSTOP){return(0);} // if(OrderLots()==lot*ruka*512 && OrderType()==OP_SELLSTOP){return(0);} // if(OrderLots()==lot*ruka*64 && OrderType()==OP_BUY){Price=OrderOpenPrice();Lot=lot*ruka*512; // fm=OrderSend(SMB,OP_BUYSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} // if(OrderLots()==lot*ruka*64 && OrderType()==OP_SELL){Price=OrderOpenPrice();Lot=lot*ruka*512; // fm=OrderSend(SMB,OP_SELLSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} // } // } //} //-------------------------- Ïëå÷î õ10 ------------------------------- //void plecho10() //{ // for (int e=OrdersTotal();e>=0;e--) // { // if (OrderSelect(e,SELECT_BY_POS,MODE_TRADES)==true) // { // if(OrderLots()==lot*ruka*1024 && OrderType()==OP_BUYSTOP){return(0);} // if(OrderLots()==lot*ruka*1024 && OrderType()==OP_SELLSTOP){return(0);} // if(OrderLots()==lot*ruka*128 && OrderType()==OP_BUY){Price=OrderOpenPrice();Lot=lot*ruka*1024; // fm=OrderSend(SMB,OP_BUYSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} // if(OrderLots()==lot*ruka*128 && OrderType()==OP_SELL){Price=OrderOpenPrice();Lot=lot*ruka*1024; // fm=OrderSend(SMB,OP_SELLSTOP,Lot,Price,3,0,0,NULL,MAGIC,0,CLR_NONE);} // } // } //} //-------------------------- Ñ÷åò÷èê --------------------------------- void chet() { for (int r=0; r<=OrdersHistoryTotal(); r++) { if(OrderSelect(r,SELECT_BY_POS,MODE_HISTORY)==true) if(OrderClosePrice()>0) prb=prb+OrderProfit()+OrderSwap(); if(OrderClosePrice()>0 && (OrderProfit()+OrderSwap())>0)klv=klv+1; if(OrderClosePrice()>0 && (OrderProfit()+OrderSwap())<0)klv=klv+1; } prb=(NormalizeDouble((prb),2)); } //------------------- Ðàñ÷åò ëîòà è ðóêè ----------------------------- //-------------------------------------------------------------------- void Auto() { min_lot=MarketInfo(SMB,MODE_MINLOT); //----- ruka=2; lot_ruka=min_lot*ruka*128; MRG=MarketInfo(SMB,MODE_MARGINREQUIRED)*lot_ruka; t1=MarketInfo(SMB,MODE_TICKVALUE)*min_lot; t2=MarketInfo(SMB,MODE_TICKVALUE)*min_lot*ruka; t3=MarketInfo(SMB,MODE_TICKVALUE)*min_lot*ruka*2; t4=MarketInfo(SMB,MODE_TICKVALUE)*min_lot*ruka*4; t5=MarketInfo(SMB,MODE_TICKVALUE)*min_lot*ruka*8; t6=MarketInfo(SMB,MODE_TICKVALUE)*min_lot*ruka*16; t7=MarketInfo(SMB,MODE_TICKVALUE)*min_lot*ruka*32; t8=MarketInfo(SMB,MODE_TICKVALUE)*min_lot*ruka*64; t9=MarketInfo(SMB,MODE_TICKVALUE)*min_lot*ruka*128; // t10=MarketInfo(SMB,MODE_TICKVALUE)*min_lot*ruka*512; // t11=MarketInfo(SMB,MODE_TICKVALUE)*min_lot*ruka*1024; T=t1-t2+t3-t4+t5-t6+t7-t8+t9-t10+t11; balanc1=(MRG+T*70)/3; if(AccountBalance()<balanc1){com4="ÒÎÐÃÎÂÀÒÜ ÍÅ ÐÅÊÎÌÅÍÄÓÅÒÑß";com5="(ìàëî äåíåã íà äåïîçèòå äëÿ áåçîïàñíîé òîðãîâëè)";Lot=0;} if(AccountBalance()>balanc1) {Lot=min_lot;} if(AccountBalance()>balanc1*3) {Lot=min_lot*2;} if(AccountBalance()>balanc1*6) {Lot=min_lot*3;} if(AccountBalance()>balanc1*9) {Lot=min_lot*4;} if(AccountBalance()>balanc1*12) {Lot=min_lot*5;} if(AccountBalance()>balanc1*15) {Lot=min_lot*6;} if(AccountBalance()>balanc1*18) {Lot=min_lot*7;} } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains the lowest prices of each bar
Series array that contains the highest prices of each bar
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Checks for the total of closed orders
Checks for the total of open orders
It automatically opens orders when conditions are reached
It can change open orders parameters, due to possible stepping strategy
It Closes Orders by itself
Other Features:
It issuies visual alerts to the screen