//+---------------------------------------------------------+ //| price_vs_alpha_v0.6wf | //| Copyright © 2007, Daniil Gudz' | //+---------------------------------------------------------+ #property copyright "Copyright © 2007, Daniil Gudz', fxmts@mail.ru" #property link "fxmts@mail.ru" extern string m1="Âûáîð ëîòà ñòîïà è ïðîôèòà"; extern double StepProfit = 40; extern double Step = 22; extern double TakeProfit = 40; extern double Stop = 900; extern double Lot1 = 0.2; extern double Lot2 = 0.1; extern double Lot3 = 0.3; extern double Lot_1 = 0.1; extern double Lot_2 = 0.3; extern string m2="Ïàðàìåòðû ñðåäíèõ:"; extern double FilterMA=3; extern string m3="Ïàðàìåòðû blue:"; extern double period_blue=13; extern double shift_blue=8; extern string m4="Ïàðàìåòðû red:"; extern double period_red=8; extern double shift_red=5; extern string m5="Ïàðàìåòðû lime:"; extern double period_lime=5; extern double shift_lime=3; extern string m6="Ïàðàìåòðû MACD:"; extern string m7="MACD #1:"; extern double a1=12; extern double d1=26; extern double f1=9; extern string m8="MACD #2:"; extern double a2=12; extern double d2=26; extern double f2=9; extern string m9="MACD #3:"; extern double a3=12; extern double d3=26; extern double f3=9; double OpenPrice_buy1, OpenPrice_sell1; double OpenPrice_buy2, OpenPrice_sell2; double OpenPrice_buy3, OpenPrice_sell3; double OpenPrice_buy4, OpenPrice_sell4; double OpenPrice_buy1_1, OpenPrice_sell1_1; double OpenPrice_buy1_2, OpenPrice_sell1_2; double OpenPrice_buy1_3, OpenPrice_sell1_3; double OpenPrice_buy1_4, OpenPrice_sell1_4; double OpenPrice_buy1_1_1, OpenPrice_sell1_1_1; double OpenPrice_buy1_1_2, OpenPrice_sell1_1_2; double OpenPrice_buy1_2_1, OpenPrice_sell1_2_1; double OpenPrice_buy1_2_2, OpenPrice_sell1_2_2; double OpenPrice_buy1_3_1, OpenPrice_sell1_3_1; double OpenPrice_buy1_3_2, OpenPrice_sell1_3_2; double OpenPrice_buy1_4_1, OpenPrice_sell1_4_1; double OpenPrice_buy1_4_2, OpenPrice_sell1_4_2; int cnt = 0; int i = 0; int i2 = 0; int b1,b2,b3,b4; int s1,s2,s3,s4; int c0,c1,c2,c3,c4; int e1,e2,e3,e4; int c1_1,c1_1_1, c1_1_2 ; int c1_2,c1_2_1, c1_2_2 ; int b1_1, b1_2 ,b1_3 ,b1_4; int s1_1, s1_2, s1_3, s1_4; int b1_1_1, b1_1_2; int b1_2_1, b1_2_2; int b1_3_1, b1_3_2; int b1_4_1, b1_4_2; int s1_1_1, s1_1_2; int s1_2_1, s1_2_2; int s1_3_1, s1_3_2; int s1_4_1, s1_4_2; //+---------------------------------------------------------+ //| start | //+---------------------------------------------------------+ int start() { int cnt,ticket,total; double SMMA_blue, SMMA_red, SMMA_lime, FMA, FMAprev; double MacdCurrent1, MacdPrevious1, SignalCurrent1, SignalPrevious1; double MacdCurrent2, MacdPrevious2, SignalCurrent2, SignalPrevious2; double MacdCurrent3, MacdPrevious3, SignalCurrent3, SignalPrevious3; if(Bars<100) { Print("bars less than 100"); return(0); } if(TakeProfit<2) { Print("TakeProfit less than 200"); return(0); // check TakeProfit } //--- ôèëüòð FMA=iMA(NULL,0,FilterMA,0,MODE_EMA,PRICE_CLOSE,0); FMAprev=iMA(NULL,0,FilterMA,0,MODE_EMA,PRICE_CLOSE,1); //--- Ñðåäíèå SMMA_blue=iMA(NULL,0,period_blue,shift_blue,MODE_SMMA,PRICE_MEDIAN,0); SMMA_red=iMA(NULL,0,period_red,shift_red,MODE_SMMA,PRICE_MEDIAN,0); SMMA_lime=iMA(NULL,0,period_lime,shift_lime,MODE_SMMA,PRICE_MEDIAN,0); //--- MACD_1 ñèãíàë - ëèíèÿ MacdCurrent1=iMACD(NULL,0,a1,d1,f1,PRICE_CLOSE,MODE_MAIN,0); MacdPrevious1=iMACD(NULL,0,a1,d1,f1,PRICE_CLOSE,MODE_MAIN,1); SignalCurrent1=iMACD(NULL,0,a1,d1,f1,PRICE_CLOSE,MODE_SIGNAL,0); SignalPrevious1=iMACD(NULL,0,a1,d1,f1,PRICE_CLOSE,MODE_SIGNAL,1); //--- MACD_2 MacdCurrent2=iMACD(NULL,0,a2,d2,f2,PRICE_CLOSE,MODE_MAIN,0); MacdPrevious2=iMACD(NULL,0,a2,d2,f2,PRICE_CLOSE,MODE_MAIN,1); SignalCurrent2=iMACD(NULL,0,a2,d2,f2,PRICE_CLOSE,MODE_SIGNAL,0); SignalPrevious2=iMACD(NULL,0,a2,d2,f2,PRICE_CLOSE,MODE_SIGNAL,1); //--- MACD_3 MacdCurrent3=iMACD(NULL,0,a3,d3,f3,PRICE_CLOSE,MODE_MAIN,0); MacdPrevious3=iMACD(NULL,0,a3,d3,f3,PRICE_CLOSE,MODE_MAIN,1); SignalCurrent3=iMACD(NULL,0,a3,d3,f3,PRICE_CLOSE,MODE_SIGNAL,0); SignalPrevious3=iMACD(NULL,0,a3,d3,f3,PRICE_CLOSE,MODE_SIGNAL,1); //+---------------------------------------------------------+ //| work history | //+---------------------------------------------------------+ int accTotal=OrdersHistoryTotal(); int n=0; if ( accTotal>30){n =accTotal-30;} for(i=accTotal-1; i>=n; i--) { //---- check selection result if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true) { //+-----------+ //| WH buy | //+-----------+ if (OrderCloseTime()>0 && OrderType()==OP_BUY && OrderTicket()==b1_4 && OrderProfit()>0) { OpenPrice_buy1_4=0; for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1 && c1==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1=0; c1=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1_1 && c2==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_1=0; c2=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1_2 && c3==1 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_2=0; c3=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1_3 && c4==1 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_3=0; c4=0; } } } if (OrderCloseTime()>0 && OrderType()==OP_BUY && OrderTicket()==b1_1_1 && OrderProfit()>0) //ýòî íîâàÿ ôóíêöèÿ v0.5 { //äëÿ îáíóëåíèÿ ïîñëå ïðîôèòà OpenPrice_buy1_1_1=0; } if (OrderCloseTime()>0 && OrderType()==OP_BUY && OrderTicket()==b1_2_1 && OrderProfit()>0) //ýòî íîâàÿ ôóíêöèÿ v0.5 { //äëÿ îáíóëåíèÿ ïîñëå ïðîôèòà OpenPrice_buy1_2_1=0; } if (OrderCloseTime()>0 && OrderType()==OP_BUY && OrderTicket()==b1_3_1 && OrderProfit()>0) //ýòî íîâàÿ ôóíêöèÿ v0.5 { //äëÿ îáíóëåíèÿ ïîñëå ïðîôèòà OpenPrice_buy1_3_1=0; } if (OrderCloseTime()>0 && OrderType()==OP_BUY && OrderTicket()==b1 && OrderProfit()>0) { OpenPrice_buy1=0; } if (OrderCloseTime()>0 && OrderType()==OP_BUY && OrderTicket()==b2 && OrderProfit()>0) { OpenPrice_buy2=0; } if (OrderCloseTime()>0 && OrderType()==OP_BUY && OrderTicket()==b3 && OrderProfit()>0) { OpenPrice_buy3=0; for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1 && c1==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1=0; c1=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b2 && c2==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy2=0; c2=0; } } } if (OrderCloseTime()>0 && OrderType()==OP_BUY && OrderTicket()==b3 && OrderProfit()<0) { OpenPrice_buy3=0; for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1 && c1==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1=0; c1=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b2 && c2==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy2=0; c2=0; } } } if (OrderCloseTime()>0 && OrderType()==OP_BUY && OrderTicket()==b1_4_2 && OrderProfit()<0) { OpenPrice_buy1_4_2=0; for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1_4_1 && c1==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_4_1=0; c1=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1_4 && c2==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_4=0; c2=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1_3 && c3==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_3=0; c3=0; } } } if (OrderCloseTime()>0 && OrderType()==OP_BUY && OrderTicket()==b1_3_2 && OrderProfit()<0) { OpenPrice_buy1_3_2=0; for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1_3_1 && c1==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_3_1=0; c1=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1_3 && c2==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_3=0; c2=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1_2 && c3==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_2=0; c3=0; continue; } } } if (OrderCloseTime()>0 && OrderType()==OP_BUY && OrderTicket()==b1_2_2 && OrderProfit()<0) { OpenPrice_buy1_2_2=0; for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1_2_1 && c1==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_2_1=0; c1=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1_2 && c2==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_2=0; c2=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1_1 && c3==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_1=0; c3=0; } } } if (OrderCloseTime()>0 && OrderType()==OP_BUY && OrderTicket()==b1_1_2 && OrderProfit()<0) { OpenPrice_buy1_1_2=0; for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1_1_1 )//&& c1==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_1_1=0; c1=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1_1 && c2==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_1=0; c2=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==b1 && c3==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1=0; c3=0; } } } //+-----------+ //| WH sell | //+-----------+ if (OrderCloseTime()>0 && OrderType()==OP_SELL && OrderTicket()==s1_4 && OrderProfit()>0) { OpenPrice_sell1_4=0; for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1 && e1==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1=0; Print("Close_s1 in WH sell"); e1=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1_1 && e2==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_1=0; e2=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1_2 && e3==1 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_2=0; e3=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1_3 && e4==1 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_3=0; e4=0; } } } if (OrderCloseTime()>0 && OrderType()==OP_SELL && OrderTicket()==s1_1_1 && OrderProfit()>0) //-ýòî íîâàÿ ôóíêöèÿ v0.5 { //äëÿ îáíóëåíèÿ ïîñëå ïðîôèòà OpenPrice_sell1_1_1=0; } if (OrderCloseTime()>0 && OrderType()==OP_SELL && OrderTicket()==s1_2_1 && OrderProfit()>0) //-ýòî íîâàÿ ôóíêöèÿ v0.5 { //äëÿ îáíóëåíèÿ ïîñëå ïðîôèòà OpenPrice_sell1_2_1=0; } if (OrderCloseTime()>0 && OrderType()==OP_SELL && OrderTicket()==s1_2_2 && OrderProfit()>0) //-ýòî íîâàÿ ôóíêöèÿ v0.5 { //äëÿ îáíóëåíèÿ ïîñëå ïðîôèòà OpenPrice_sell1_2_2=0; } if (OrderCloseTime()>0 && OrderType()==OP_SELL && OrderTicket()==s1_3_1 && OrderProfit()>0) //-ýòî íîâàÿ ôóíêöèÿ v0.5 { //äëÿ îáíóëåíèÿ ïîñëå ïðîôèòà OpenPrice_sell1_3_1=0; } if (OrderCloseTime()>0 && OrderType()==OP_SELL && OrderTicket()==s1 && OrderProfit()>0) { OpenPrice_sell1=0; } if (OrderCloseTime()>0 && OrderType()==OP_SELL && OrderTicket()==s2 && OrderProfit()>0) { OpenPrice_sell2=0; } if (OrderCloseTime()>0 && OrderType()==OP_SELL && OrderTicket()==s3 && OrderProfit()>0) { OpenPrice_sell3=0; for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1 && e1==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1=0; e1=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s2 && e2==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell2=0; e2=0; } } } if (OrderCloseTime()>0 && OrderType()==OP_SELL && OrderTicket()==s3 && OrderProfit()<0) { OpenPrice_sell3=0; for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1 && e1==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1=0; e1=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s2 && e2==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell2=0; e2=0; } } } if (OrderCloseTime()>0 && OrderType()==OP_SELL && OrderTicket()==s1_4_2 && OrderProfit()<0) { OpenPrice_sell1_4_2=0; for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1_4_1 && e1==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_4_1=0; e1=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1_4 && e2==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_4=0; e2=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1_3 && e3==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_3=0; e3=0; } } } if (OrderCloseTime()>0 && OrderType()==OP_SELL && OrderTicket()==s1_3_2 && OrderProfit()<0) { OpenPrice_sell1_3_2=0; for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1_3_1 && e1==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_3_1=0; e1=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1_3 && e2==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_3=0; e2=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1_2 && e3==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_2=0; e3=0; } } } if (OrderCloseTime()>0 && OrderType()==OP_SELL && OrderTicket()==s1_2_2 && OrderProfit()<0) { OpenPrice_sell1_2_2=0; for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1_2_1 && e1==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_2_1=0; e1=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1_2 && e2==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_2=0; e2=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1_1 && e3==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_1=0; e3=0; } } } if (OrderCloseTime()>0 && OrderType()==OP_SELL && OrderTicket()==s1_1_2 && OrderProfit()<0) { OpenPrice_sell1_1_2=0; for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1_1_1 && e1==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_1_1=0; e1=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1_1 && e2==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_1=0; e2=0; } } for(cnt=0; cnt<=OrdersTotal()-1; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderTicket()==s1 && e3==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1=0; e3=0; } } } } } //+---------------------------------------------------------+ //| signals | //+---------------------------------------------------------+ //+--------------+ //| buy signals | //+--------------+ //#1 bool buy_signal_1=false; if (FMA>MathMax(SMMA_blue, SMMA_lime)) buy_signal_1=true; //#2 bool buy_signal_2=false; if (MacdCurrent1>SignalCurrent1) buy_signal_2=true; //#3 bool buy_signal_3=false; if (MacdCurrent2>SignalCurrent2) buy_signal_3=true; //#4 bool buy_signal_4=false; if (MacdCurrent3>SignalCurrent3) buy_signal_4=true; //+--------------+ //| sell signals | //+--------------+ //#1 bool sell_signal_1=false; if (FMA<MathMin(SMMA_blue, SMMA_lime)) sell_signal_1=true; //#2 bool sell_signal_2=false; if (MacdCurrent1<SignalCurrent1) sell_signal_2=true; //#3 bool sell_signal_3=false; if (MacdCurrent2<SignalCurrent2) sell_signal_3=true; //#4 bool sell_signal_4=false; if (MacdCurrent3<SignalCurrent3) sell_signal_4=true; //+---------------------------------------------------------+ //| open buy | //+---------------------------------------------------------+ //#1 buy if( OpenPrice_buy1==0 && OpenPrice_buy2==0 && OpenPrice_buy3==0 && OpenPrice_buy1_1==0 && OpenPrice_buy1_1_1==0 && OpenPrice_buy1_2==0 && OpenPrice_buy1_3==0 && OpenPrice_buy1_4==0 && buy_signal_1==true )//&& buy_signal_2==true && buy_signal_3==true && buy_signal_4==true ) { ticket=OrderSend(Symbol(),OP_BUY,Lot1,Bid,5,0,0,"b1",b1,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_buy1_2_1=0; OpenPrice_buy1=OrderOpenPrice(); // OpenPrice_buy1_2_1=1; b1=OrderTicket(); Print("Open_b1"); } } //#1_1 buy if(OpenPrice_buy1_4_1==0 && OpenPrice_buy1_1==0 && OpenPrice_buy1!=0 && (Bid-OpenPrice_buy1)>=Step*Point && buy_signal_1==true) //&& buy_signal_2==true && buy_signal_3==true && buy_signal_4==true) { ticket=OrderSend(Symbol(),OP_BUY,Lot1,Bid,5,0,0,"b1_1",b1_1,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_buy1_1=OrderOpenPrice(); b1_1=OrderTicket(); Print("Open_b1_1"); } } //#1_1_1 buy if(OpenPrice_buy1_1_1==0 && OpenPrice_buy1_1!=0 && OpenPrice_sell1_2_1==0 && (OpenPrice_buy1_1-Bid)>=Step*Point) // && buy_signal_1==true && buy_signal_2==true && buy_signal_3==true && buy_signal_4==true) { ticket=OrderSend(Symbol(),OP_BUY,Lot_1,Bid,5,0,Bid+StepProfit*Point,"b1_1_1",b1_1_1,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_buy1_1_1=OrderOpenPrice(); b1_1_1=OrderTicket(); Print("Open1_b1_1_1"); } } //#1_1_2 buy if(OpenPrice_buy1_1_2==0 && OpenPrice_buy1_1_1!=0 && (OpenPrice_buy1_1_1-Bid)>=Step*Point) // && buy_signal_1==true && buy_signal_2==true && buy_signal_3==true && buy_signal_4==true) { ticket=OrderSend(Symbol(),OP_BUY,Lot_2,Bid,5,Bid-Stop*Point,Bid+StepProfit*Point,"b1_1_2",b1_1_2,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_buy1_1_2=OrderOpenPrice(); c1=1; c2=1; c3=1; b1_1_2=OrderTicket(); Print("Open_b1_1_2"); } } //#1_2 buy if(OpenPrice_buy1_3==0 && OpenPrice_buy1_4==0 && OpenPrice_buy1_2==0 && OpenPrice_buy1_1!=0 && (Bid-OpenPrice_buy1_1)>=Step*Point && buy_signal_1==true )//&& buy_signal_2==true && buy_signal_3==true && buy_signal_4==true) { ticket=OrderSend(Symbol(),OP_BUY,Lot1,Bid,5,0,0,"b1_2",b1_2,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_buy1_2=OrderOpenPrice(); b1_2=OrderTicket(); Print("Open_b1_2"); } } //#1_2_1 buy if(OpenPrice_buy1_2_1==0 && OpenPrice_buy1_2!=0 && (OpenPrice_buy1_2-Bid)>=Step*Point) // && buy_signal_1==true && buy_signal_2==true && buy_signal_3==true && buy_signal_4==true) { ticket=OrderSend(Symbol(),OP_BUY,Lot_1,Bid,5,0,Bid+StepProfit*Point,"b1_2_1",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_buy1_2_1=OrderOpenPrice(); b1_2_1=OrderTicket(); Print("Open1_b1_2_1dfdfdfdfdfdfdfdfd"); } } //#1_2_2 buy if(OpenPrice_buy1_2_2==0 && OpenPrice_buy1_2_1!=0 && (OpenPrice_buy1_2_1-Bid)>=Step*Point) // && buy_signal_1==true && buy_signal_2==true && buy_signal_3==true && buy_signal_4==true) { ticket=OrderSend(Symbol(),OP_BUY,Lot_2,Bid,5,Bid-Stop*Point,Bid+StepProfit*Point,"b1_2_2",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_buy1_2_2=OrderOpenPrice(); b1_2_2=OrderTicket(); c1=1; c2=1; c3=1; Print("Open1_b1_2_2"); } } //#1_3 buy if( OpenPrice_buy1_4==0 && // ???????????????????????????????????????? del if do not work right OpenPrice_buy1_3_1==0 && // ???????????????????????????????????????? del if do not work right OpenPrice_buy1_3==0 && OpenPrice_buy1_2!=0 && (Bid-OpenPrice_buy1_2)>=Step*Point && buy_signal_1==true && buy_signal_2==true && buy_signal_3==true && buy_signal_4==true) { ticket=OrderSend(Symbol(),OP_BUY,Lot1,Bid,5,0,0,"b1_3",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_buy1_3=OrderOpenPrice(); b1_3=OrderTicket(); Print("Open1_b1_3"); } } //#1_3_1 buy if(OpenPrice_buy1_3_1==0 && OpenPrice_buy1_3!=0 && (OpenPrice_buy1_3-Bid)>=Step*Point && OpenPrice_buy1_4_1==0) // && buy_signal_1==true && buy_signal_2==true && buy_signal_3==true && buy_signal_4==true) { ticket=OrderSend(Symbol(),OP_BUY,Lot_1,Bid,5,0,Bid+StepProfit*Point,"b1_3_1",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_buy1_3_1=OrderOpenPrice(); b1_3_1=OrderTicket(); Print("Open1_b1_3_1"); } } //#1_3_2 buy if(OpenPrice_buy1_3_2==0 && OpenPrice_buy1_3_1!=0 && (OpenPrice_buy1_3_1-Bid)>=Step*Point && OpenPrice_buy1==0) // && buy_signal_1==true && buy_signal_2==true && buy_signal_3==true && buy_signal_4==true) { ticket=OrderSend(Symbol(),OP_BUY,Lot_2,Bid,5,Bid-Stop*Point,Bid+StepProfit*Point,"b1_3_2",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_buy1_3_2=OrderOpenPrice(); b1_3_2=OrderTicket(); c1=1; c2=1; c3=1; Print("Open1_b1_3_2"); } } //#1_4 buy if(OpenPrice_buy1_4==0 && OpenPrice_buy1_3!=0 && (Bid-OpenPrice_buy1_3)>=Step*Point && buy_signal_1==true && buy_signal_2==true && buy_signal_3==true && buy_signal_4==true) { ticket=OrderSend(Symbol(),OP_BUY,Lot1,Bid,5,0,Bid+TakeProfit*Point,"b1_4",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_buy1_4=OrderOpenPrice(); b1_4=OrderTicket(); c1=1; c2=1; c3=1; c4=1; Print("Open1_b1_4"); } } //#1_4_1 buy if(OpenPrice_buy1_4_1==0 && OpenPrice_buy1_4!=0 && Bid<=OpenPrice_buy1_3) // && buy_signal_1==true && buy_signal_2==true && buy_signal_3==true && buy_signal_4==true) { ticket=OrderSend(Symbol(),OP_BUY,Lot_1,Bid,5,0,Bid+StepProfit*Point,"b1_4_1",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_buy1_4_1=OrderOpenPrice(); b1_4_1=OrderTicket(); Print("Open1_b1_4_1"); } // return(0); } //#1_4_2 buy if(OpenPrice_buy1_4_2==0 && OpenPrice_buy1_4_1!=0 && (OpenPrice_buy1_4_1-Bid)>=Step*Point) // && buy_signal_1==true && buy_signal_2==true && buy_signal_3==true && buy_signal_4==true) { ticket=OrderSend(Symbol(),OP_BUY,Lot_2,Bid,5,Bid-Stop*Point,Bid+StepProfit*Point,"b1_4_2",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_buy1_4_2=OrderOpenPrice(); b1_4_2=OrderTicket(); c1=1; c2=1; c3=1; c4=1; Print("Open1_b1_4_2"); } } //#2 buy if( /* OpenPrice_buy1_2==0 && OpenPrice_buy1_3==0 && OpenPrice_buy1_4==0 && OpenPrice_buy1_2_1==0 && OpenPrice_buy1_1_2==0 && */ OpenPrice_buy1_1_1==0 &&//äëÿ òîãî ÷òîáû íå îòêðûâàëñÿ áàé 2 êîãäà îòêðûò 1_1_1 íóæíî!!! (OpenPrice_buy1-Bid)>=Step*Point && OpenPrice_buy2==0 && OpenPrice_buy1!=0)// && OpenPrice_buy1_1_1==0) { // Print("Span",OpenPrice_buy1); ticket=OrderSend(Symbol(),OP_BUY,Lot2,Bid,5,0,Bid+StepProfit*Point,"b2",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_buy2=OrderOpenPrice(); b2=OrderTicket(); Print("Open1_b2"); } } //#3 buy if((OpenPrice_buy2-Bid)>=Step*Point && OpenPrice_buy3==0 && OpenPrice_buy2!=0) { // Print("Span",OpenPrice_buy1); ticket=OrderSend(Symbol(),OP_BUY,Lot3,Bid,5,Bid-Stop*Point,Bid+StepProfit*Point,"b3",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_buy3=OrderOpenPrice(); b3=OrderTicket(); c1=1; c2=1; Print("Open1_b3"); } } //+---------------------------------------------------------+ //| open sell | //+---------------------------------------------------------+ //#1 sell if( OpenPrice_sell1==0 && OpenPrice_sell2==0 && OpenPrice_sell3==0 && OpenPrice_sell1_1==0 && OpenPrice_sell1_1_1==0 && OpenPrice_sell1_2==0 && OpenPrice_sell1_3==0 && OpenPrice_sell1_4==0 && sell_signal_1==true )//&& sell_signal_2==true && sell_signal_3==true && sell_signal_4==true ) { ticket=OrderSend(Symbol(),OP_SELL,Lot1,Bid,5,0,0,"s1",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_sell1_2_1=0; OpenPrice_sell1=OrderOpenPrice(); s1=OrderTicket(); Print("Open_s1"); } } //#1_1 sell if(OpenPrice_sell1_1==0 && OpenPrice_sell1_4_1==0 && OpenPrice_sell1!=0 && (OpenPrice_sell1-Bid)>=Step*Point && sell_signal_1==true )//&& sell_signal_2==true && sell_signal_3==true && sell_signal_4==true) { ticket=OrderSend(Symbol(),OP_SELL,Lot1,Bid,5,0,0,"s1_1",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_sell1_1=OrderOpenPrice(); s1_1=OrderTicket(); Print("Open_s1_1"); } } //#1_1_1 sell if(OpenPrice_sell1_1_1==0 && OpenPrice_sell1_2_1==0 && OpenPrice_sell1_1!=0 && (Bid-OpenPrice_sell1_1)>=Step*Point) // && sell_signal_1==true && sell_signal_2==true && sell_signal_3==true && sell_signal_4==true) { ticket=OrderSend(Symbol(),OP_SELL,Lot_1,Bid,5,0,Bid-StepProfit*Point,"s1_1_1",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_sell1_1_1=OrderOpenPrice(); s1_1_1=OrderTicket(); Print("Open_s1_1_1"); } } //#1_1_2 sell if(OpenPrice_sell1_1_2==0 && OpenPrice_sell1_1_1!=0 && (Bid-OpenPrice_sell1_1_1)>=Step*Point) // && sell_signal_1==true && sell_signal_2==true && sell_signal_3==true && sell_signal_4==true) { ticket=OrderSend(Symbol(),OP_SELL,Lot_2,Bid,5,Bid+Stop*Point,Bid-StepProfit*Point,"s1_1_2",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_sell1_1_2=OrderOpenPrice(); e1=1; e2=1; e3=1; s1_1_2=OrderTicket(); Print("Open_s1_1_2"); } } //#1_2 sell if(OpenPrice_sell1_2==0 && OpenPrice_sell1_1!=0 && (OpenPrice_sell1_1-Bid)>=Step*Point && sell_signal_1==true && sell_signal_2==true && sell_signal_3==true && sell_signal_4==true) { ticket=OrderSend(Symbol(),OP_SELL,Lot1,Bid,5,0,0,"s1_2",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_sell1_2=OrderOpenPrice(); s1_2=OrderTicket(); Print("Open_s1_2"); } } //#1_2_1 sell if(OpenPrice_sell1_2_1==0 && OpenPrice_sell1_2!=0 && (Bid-OpenPrice_sell1_2)>=Step*Point) // && sell_signal_1==true && sell_signal_2==true && sell_signal_3==true && sell_signal_4==true) { ticket=OrderSend(Symbol(),OP_SELL,Lot_1,Bid,5,0,Bid-StepProfit*Point,"s1_2_1",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_sell1_2_1=OrderOpenPrice(); s1_2_1=OrderTicket(); Print("Open_s1_2_1"); } // return(0); } //#1_2_2 sell if(OpenPrice_sell1_2_2==0 && OpenPrice_sell1_2_1!=0 && (Bid-OpenPrice_sell1_2_1)>=Step*Point) // && sell_signal_1==true && sell_signal_2==true && sell_signal_3==true && sell_signal_4==true) { ticket=OrderSend(Symbol(),OP_SELL,Lot_2,Bid,5,Bid+Stop*Point,Bid-StepProfit*Point,"b1_2_2",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_sell1_2_2=OrderOpenPrice(); e1=1; e2=1; e3=1; s1_2_2=OrderTicket(); Print("Open_s1_2_2"); } } //#1_3 sell if( OpenPrice_sell1_4==0 && OpenPrice_sell1_3_1==0 && OpenPrice_sell1_3==0 && OpenPrice_sell1_2!=0 && (OpenPrice_sell1_2-Bid)>=Step*Point && sell_signal_1==true && sell_signal_2==true && sell_signal_3==true && sell_signal_4==true) { ticket=OrderSend(Symbol(),OP_SELL,Lot1,Bid,5,0,0,"s1_3",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_sell1_3=OrderOpenPrice(); s1_3=OrderTicket(); Print("Open_s1_3"); } } //#1_3_1 sell if(OpenPrice_sell1_3_1==0 && OpenPrice_sell1_3!=0 && (Bid-OpenPrice_sell1_3)>=Step*Point && OpenPrice_sell1_4_1==0) // && sell_signal_1==true && sell_signal_2==true && sell_signal_3==true && sell_signal_4==true) { ticket=OrderSend(Symbol(),OP_SELL,Lot_1,Bid,5,0,Bid-StepProfit*Point,"s1_3_1",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_sell1_3_1=OrderOpenPrice(); s1_3_1=OrderTicket(); Print("Open_s1_3_1"); } } //#1_3_2 sell if(OpenPrice_sell1_3_2==0 && OpenPrice_sell1_3_1!=0 && (Bid-OpenPrice_sell1_3_1)>=Step*Point && OpenPrice_sell1==0) // && sell_signal_1==true && sell_signal_2==true && sell_signal_3==true && sell_signal_4==true) { ticket=OrderSend(Symbol(),OP_SELL,Lot_2,Bid,5,Bid+Stop*Point,Bid-StepProfit*Point,"s1_3_2",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_sell1_3_2=OrderOpenPrice(); e1=1; e2=1; e3=1; s1_3_2=OrderTicket(); Print("Open_s1_3_2"); } } //#1_4 sell if(OpenPrice_sell1_4==0 && OpenPrice_sell1_3!=0 && (OpenPrice_sell1_3-Bid)>=Step*Point && sell_signal_1==true && sell_signal_2==true && sell_signal_3==true && sell_signal_4==true) { ticket=OrderSend(Symbol(),OP_SELL,Lot1,Bid,5,0,Bid-TakeProfit*Point,"s1_4",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_sell1_4=OrderOpenPrice(); s1_4=OrderTicket(); e1=1; e2=1; e3=1; e4=1; Print("Open_s1_4"); } } //#1_4_1 sell óñðåäíÿåìñÿ íà óáûòîê ïåðâûì îðäåðîì ñåëë // óñëîâèÿ: 1.îòêðûò îðäåð ñåëë1_4 2.ïåðâûé ñåëë íå îòêðûò 3. öåíà >= öåíà îòêðûòèÿ ñåëë 1_3 if(OpenPrice_sell1_4_1==0 && OpenPrice_sell1_4!=0 && (Bid-OpenPrice_sell1_4)>=Step*Point) // && sell_signal_1==true && sell_signal_2==true && sell_signal_3==true && sell_signal_4==true) { ticket=OrderSend(Symbol(),OP_SELL,Lot_1,Bid,5,0,Bid-StepProfit*Point,"s1_4_1",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_sell1_4_1=OrderOpenPrice(); s1_4_1=OrderTicket(); Print("Open_s1_4_1"); } } //#1_4_2 sell óñðåäíÿåìñÿ íà óáûòîê âòîðûì îðäåðîì ñåëë // óñëîâèÿ: 1.îòêðûò ïåðâûé îðäåð ñåëë 2.âòîðîé ñåëë íå îòêðûò 3. Øàã > öåíà - öåíà îòêðûòèÿ ïåðâîãî 4. ñåëë 1_4_1 íå îòêðûò if(OpenPrice_sell1_4_2==0 && OpenPrice_sell1_4_1!=0 && (Bid-OpenPrice_sell1_4_1)>=Step*Point) // && sell_signal_1==true && sell_signal_2==true && sell_signal_3==true && sell_signal_4==true) { ticket=OrderSend(Symbol(),OP_SELL, Lot_2 ,Bid,5,Bid+Stop*Point,Bid-StepProfit*Point,"s1_4_2",s1_4_2,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_sell1_4_2=OrderOpenPrice(); s1_4_2=OrderTicket(); e1=1; e2=1; e3=1; Print("Open_s1_4_2"); } } //#2 sell óñðåäíÿåìñÿ íà óáûòîê âòîðûì îðäåðîì ñåëë // óñëîâèÿ: 1.îòêðûò ïåðâûé îðäåð ñåëë 2.âòîðîé ñåëë íå îòêðûò 3. Øàã > öåíà - öåíà îòêðûòèÿ ïåðâîãî 4. ñåëë 1_1_1 íå îòêðûò if( /* OpenPrice_sell1_1==0 && OpenPrice_sell1_2==0 && OpenPrice_sell1_3==0 && OpenPrice_sell1_4==0 && OpenPrice_sell1_1_1==0 && OpenPrice_sell1_1_2==0 && */ OpenPrice_sell1_1_1==0 && //äëÿ òîãî ÷òîáû íå îòêðûâàëñÿ ñåëë 2 êîãäà îòêðûò 1_1_1 íóæíî!!! ((Bid-OpenPrice_sell1)>=Step*Point && OpenPrice_sell2==0 && OpenPrice_sell1!=0 ))//&& OpenPrice_sell1_1_1==0) { ticket=OrderSend(Symbol(),OP_SELL, Lot2 ,Bid,5,0,Bid-StepProfit*Point,"s2",s2,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_sell2=OrderOpenPrice(); s2=OrderTicket(); Print("Open_s2"); } } //#3 sell óñðåäíÿåìñÿ íà óáûòîê òðåòèì îðäåðîì ñåëë // óñëîâèÿ: 1.îòêðûò âòîðîé îðäåð ñåëë 2.òðåòèé ñåëë íå îòêðûò 3. Øàã > öåíà - öåíà îòêðûòèÿ âòîðîãî if((Bid-OpenPrice_sell2)>=Step*Point && OpenPrice_sell3==0 && OpenPrice_sell2!=0) { ticket=OrderSend(Symbol(),OP_SELL, Lot3 ,Bid,5,Bid+Stop*Point,Bid-StepProfit*Point,"s3",s3,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) OpenPrice_sell3=OrderOpenPrice(); s3=OrderTicket(); Print("Open_s3"); e1=1; e2=1; } } //+---------------------------------------------------------+ //| close order | //+---------------------------------------------------------+ int ototal=OrdersTotal(); for(i2=ototal; i2>=0; i2--) { if (OrderSelect(i2,SELECT_BY_POS,MODE_TRADES)==true) { //+------------+ //| close buy | //+------------+ //1_2 => 1_2_1 // ýòà ôóíêöèÿ äóáëèðóåò òýéê ïðîôèò b1_2_1 ïîýòîìó åå ìîæíî èñêëþ÷èòü âïðèíöèïå if (OrderType()==OP_BUY && OrderTicket()==b1_2_1 && StepProfit*Point<=(Bid-OpenPrice_buy1_2_1) && OrderProfit()>0)// && c1_2_1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_2_1=0; // c1_2_1=1; Print("close: b1_2_1" ); } if (OrderType()==OP_BUY && OrderTicket()==b1 && OrderProfit()>0 && OpenPrice_buy1_2_1!=0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); // OpenPrice_buy1=0; Print("close: b1" ); } //1_3 => 1_3_1 if (OrderType()==OP_BUY && OrderTicket()==b1_3_1 && Bid>=OpenPrice_buy1_3 && OrderProfit()>0)// && c1_2_1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_3_1=0; // c1_2_1=1; Print("close: b1_3_1" ); } if (OrderType()==OP_BUY && OrderTicket()==b1 && OrderProfit()>0 && OpenPrice_buy1_3_1!=0) //&& c1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); // OpenPrice_buy1=0; Print("close: b1" ); // c1=1; } if (OrderType()==OP_BUY && OrderTicket()==b1_1 && OpenPrice_buy1_3_1!=0) //&& c1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_1=0; Print("close: b1_1" ); // c1=1; } if (OrderType()==OP_BUY && OrderTicket()==b1_2 && OpenPrice_buy1_3_1!=0) //&& c1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_2=0; Print("close: b1_2" ); // c1=1; } //1_4 => 1_4_1 if (OrderType()==OP_BUY && OrderTicket()==b1_4_1 && Bid>=OpenPrice_buy1_4 && OrderProfit()>0)// && c1_2_1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_4_1=0; // c1_2_1=1; Print("close: b1_4_1" ); } /* if (OrderType()==OP_BUY && OrderTicket()==b1 && OpenPrice_buy1_4_1!=0 && OrderProfit()>0) //&& c1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); // OpenPrice_buy1=0; Print("close: b1" ); // c1=1; } */ if (OrderType()==OP_BUY && OrderTicket()==b1_1 && OpenPrice_buy1_4_1!=0) //&& c1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_1=0; Print("close: b1_1" ); // c1=1; } if (OrderType()==OP_BUY && OrderTicket()==b1_2 && OpenPrice_buy1_4_1!=0) //&& c1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_2=0; Print("close: b1_2" ); // c1=1; // return(0); } //1_1_1 if (OrderType()==OP_BUY && OpenPrice_buy1_1_1<=Bid && OpenPrice_buy1_1_1!=0 && OpenPrice_buy1_1_2!=0) //&& OrderProfit()>=TakeProfit*3) { ototal=OrdersTotal(); for(cnt=ototal; cnt>=0; cnt--) //!!!!!!!!!!!!!!!!!!!!!!!!!!!! { //!!!!!!!!!!!!!!!!!!!!!!!!!!!! OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); //!!!!!!!!!!!!!!!!!!!!!!!!!!!! if (OrderTicket()==b1_1_1 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_1_1=0; Print("close: b1_1_1" ); // continue; } if (OrderTicket()==b1_1)//&&OpenPrice_buy1_1!=0 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_1=0; Print("close: b1_1"); // continue; } if (OrderTicket()==b1 && OrderProfit()>0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); // OpenPrice_buy1=0; Print("close: b1" ); // continue; } if (OrderTicket()==b1_1_2 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_1_2=0; Print("close: b1_1_2" ); // continue; } } } //1_2_1 if (OrderType()==OP_BUY && OpenPrice_buy1_2_1<=Bid && OpenPrice_buy1_2_1!=0 && OpenPrice_buy1_2_2!=0) //&& OrderProfit()>=TakeProfit*3) { ototal=OrdersTotal(); for(cnt=ototal; cnt>=0; cnt--) //!!!!!!!!!!!!!!!!!!!!!!!!!!!! { //!!!!!!!!!!!!!!!!!!!!!!!!!!!! OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); //!!!!!!!!!!!!!!!!!!!!!!!!!!!! if (OrderTicket()==b1_2_1 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_2_1=0; Print("close: b1_2_1" ); continue; } if (OrderTicket()==b1_2 )//&&OpenPrice_buy1_1!=0 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_2=0; Print("close: b1_2"); continue; } if (OrderTicket()==b1_1 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_1=0; Print("close: b1" ); continue; } if (OrderTicket()==b1_2_2 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_2_2=0; Print("close: b1_2_2" ); // continue; } } } //1_3_1 if (OrderType()==OP_BUY && OpenPrice_buy1_3_1<=Bid && OpenPrice_buy1_3_1!=0 && OpenPrice_buy1_3_2!=0) //&& OrderProfit()>=TakeProfit*3) { OpenPrice_buy1=0; OpenPrice_buy2=0 ; OpenPrice_buy3=0 ; OpenPrice_buy1_1=0; OpenPrice_buy1_1_1=0 ; OpenPrice_buy1_1_2=0 ; OpenPrice_buy1_2=0 ; OpenPrice_buy1_2_1=0 ; OpenPrice_buy1_2_2=0 ; OpenPrice_buy1_3=0 ; OpenPrice_buy1_3_1=0 ; OpenPrice_buy1_3_2=0 ; OpenPrice_buy1_4=0 ; OpenPrice_buy1_4_1=0 ; OpenPrice_buy1_4_2=0 ; ototal=OrdersTotal(); for(cnt=ototal; cnt>=0; cnt--) //!!!!!!!!!!!!!!!!!!!!!!!!!!!! { //!!!!!!!!!!!!!!!!!!!!!!!!!!!! OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); //!!!!!!!!!!!!!!!!!!!!!!!!!!!! if (OrderTicket()==b1_3_1 )// && c1_3_1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_3_1=0; // c1_3_1=1; Print("close: b1_3_1" ); continue; } if (OrderTicket()==b1_3)// && c1_2==0)//&&OpenPrice_buy1_1!=0 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_3=0; // c1_2=1; Print("close: b1_3"); continue; } if (OrderTicket()==b1_2 )// && c1_1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_2=0; OpenPrice_buy1_1=0; //598984654564654654654646564 OpenPrice_buy1=0; Print("close: b1_2" ); // c1_1=1; continue; } if (OrderTicket()==b1_3_2)// && c1_2_2==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_3_2=0; // c1_2_2=1; Print("close: b1_3_2" ); // continue; } } } //1_4_1 if (OrderType()==OP_BUY && OpenPrice_buy1_4_1<=Bid && OpenPrice_buy1_4_1!=0 && OpenPrice_buy1_4_2!=0) //&& OrderProfit()>=TakeProfit*3) { ototal=OrdersTotal(); for(cnt=ototal; cnt>=0; cnt--) //!!!!!!!!!!!!!!!!!!!!!!!!!!!! { //!!!!!!!!!!!!!!!!!!!!!!!!!!!! OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); //!!!!!!!!!!!!!!!!!!!!!!!!!!!! if (OrderTicket()==b1_4_1 )// && c1_3_1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_4_1=0; // c1_3_1=1; Print("close: b1_4_1" ); continue; } if (OrderTicket()==b1_4)// && c1_2==0)//&&OpenPrice_buy1_1!=0 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_4=0; // c1_2=1; Print("close: b1_4"); continue; } if (OrderTicket()==b1_3 )// && c1_1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_3=0; Print("close: b1_3" ); // c1_1=1; continue; } if (OrderTicket()==b1_4_2)// && c1_2_2==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_buy1_4_2=0; // c1_2_2=1; Print("close: b1_4_2" ); // continue; } } } //+------------+ //| close sell | //+------------+ //1_2 => 1_2_1 if (OrderType()==OP_SELL && OrderTicket()==s1_2_1 && StepProfit*Point<=(OpenPrice_sell1_2_1-Bid) && OrderProfit()>0)// && c1_2_1==0) { Print("OpenPrice_sell1_2=",OpenPrice_sell1_2 ); OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_2_1=0; // c1_2_1=1; Print("close: s1_2_1" ); } if (OrderType()==OP_SELL && OrderTicket()==s1 && OrderProfit()>0 && OpenPrice_sell1_2_1!=0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); // OpenPrice_sell1=0; Print("close: s1 in 1_2 => 1_2_1" ); } //1_3 => 1_3_1 if (OrderType()==OP_SELL && OrderTicket()==s1_3_1 && Bid<=OpenPrice_sell1_3 && OrderProfit()>0)// && c1_2_1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_3_1=0; // c1_2_1=1; Print("close: s1_3_1" ); } if (OrderType()==OP_SELL && OrderTicket()==s1 && OrderProfit()>0 && OpenPrice_sell1_3_1!=0) //&& c1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); // OpenPrice_sell1=0; Print("close: s1 in 1_3 => 1_3_1" ); // c1=1; } if (OrderType()==OP_SELL && OrderTicket()==s1_1 && OpenPrice_sell1_3_1!=0) //&& c1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_1=0; Print("close: s1_1 in 1_3 => 1_3_1" ); // c1=1; } if (OrderType()==OP_SELL && OrderTicket()==s1_2 && OpenPrice_sell1_3_1!=0) //&& c1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_2=0; Print("close: s1_2" ); // c1=1; } //1_4 => 1_4_1 if (OrderType()==OP_SELL && OrderTicket()==s1_4_1 && Bid<=OpenPrice_sell1_4 && OrderProfit()>0)// && c1_2_1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_4_1=0; // c1_2_1=1; Print("close: s1_4_1" ); } /* if (OrderType()==OP_SELL && OrderTicket()==s1 && OpenPrice_sell1_4_1!=0 && OrderProfit()>0) //&& c1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); // OpenPrice_sell1=0; Print("close: s1 in 1_4 => 1_4_1" ); // c1=1; } */ if (OrderType()==OP_SELL && OrderTicket()==s1_1 && OpenPrice_sell1_4_1!=0) //&& c1==1) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_1=0; Print("close: s1_1 in 1_4 => 1_4_1" ); // c1=0; } if (OrderType()==OP_SELL && OrderTicket()==s1_2 && OpenPrice_sell1_4_1!=0) //&& c1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_2=0; Print("close: s1_2" ); // c1=1; // return(0); } //1_1_1 if (OrderType()==OP_SELL && OpenPrice_sell1_1_1>=Bid && OpenPrice_sell1_1_1!=0 && OpenPrice_sell1_1_2!=0) //&& OrderProfit()>=TakeProfit*3) { ototal=OrdersTotal(); for(cnt=ototal; cnt>=0; cnt--) //!!!!!!!!!!!!!!!!!!!!!!!!!!!! { //!!!!!!!!!!!!!!!!!!!!!!!!!!!! OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); //!!!!!!!!!!!!!!!!!!!!!!!!!!!! if (OrderTicket()==s1_1_1 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_1_1=0; Print("close: s1_1_1" ); // continue; } if (OrderTicket()==s1_1)//&&OpenPrice_sell1_1!=0 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_1=0; Print("close: s1_1"); // continue; } if (OrderTicket()==s1 && OrderProfit()>0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); // OpenPrice_sell1=0; Print("close: s1 in 1_1_1" ); // continue; } if (OrderTicket()==s1_1_2 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_1_2=0; Print("close: s1_1_2" ); // continue; } } } //1_2_1 if (OrderType()==OP_SELL && OpenPrice_sell1_2_1>=Bid && OpenPrice_sell1_2_1!=0 && OpenPrice_sell1_2_2!=0) //&& OrderProfit()>=TakeProfit*3) { ototal=OrdersTotal(); for(cnt=ototal; cnt>=0; cnt--) //!!!!!!!!!!!!!!!!!!!!!!!!!!!! { //!!!!!!!!!!!!!!!!!!!!!!!!!!!! OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); //!!!!!!!!!!!!!!!!!!!!!!!!!!!! if (OrderTicket()==s1_2_1 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_2_1=0; Print("close: s1_2_1" ); continue; } if (OrderTicket()==s1_2 )//&&OpenPrice_sell1_1!=0 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_2=0; Print("close: s1_2"); continue; } if (OrderTicket()==s1_1 && OpenPrice_sell1_2_2!=0 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_1=0; Print("OpenPrice_sell1_2_2==",OpenPrice_sell1_2_2 ); Print("close: s1_1 _XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ); continue; } if (OrderTicket()==s1_2_2 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_2_2=0; Print("close: s1_2_2" ); // continue; } } } //1_3_1 if (OrderType()==OP_SELL && OpenPrice_sell1_3_1>=Bid && OpenPrice_sell1_3_1!=0 && OpenPrice_sell1_3_2!=0) //&& OrderProfit()>=TakeProfit*3) { OpenPrice_sell1=0; OpenPrice_sell2=0 ; OpenPrice_sell3=0 ; OpenPrice_sell1_1=0 ; OpenPrice_sell1_1_1=0 ; OpenPrice_sell1_1_2=0 ; OpenPrice_sell1_2_1=0 ; OpenPrice_sell1_2_2=0 ; OpenPrice_sell1_4=0 ; OpenPrice_sell1_4_1=0 ; OpenPrice_sell1_4_2=0 ; ototal=OrdersTotal(); for(cnt=ototal; cnt>=0; cnt--) //!!!!!!!!!!!!!!!!!!!!!!!!!!!! { //!!!!!!!!!!!!!!!!!!!!!!!!!!!! OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); //!!!!!!!!!!!!!!!!!!!!!!!!!!!! if (OrderTicket()==s1_3_1 )// && c1_3_1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_3_1=0; // c1_3_1=1; Print("close: s1_3_1" ); continue; } if (OrderTicket()==s1_3)// && c1_2==0)//&&OpenPrice_sell1_1!=0 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_3=0; // c1_2=1; Print("close: s1_3"); continue; } if (OrderTicket()==s1_2 )// && c1_1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_2=0; Print("close: s1_2" ); // c1_1=1; continue; } if (OrderTicket()==s1_3_2)// && c1_2_2==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_3_2=0; // c1_2_2=1; Print("close: s1_3_2" ); // continue; } } } //1_4_1 if (OrderType()==OP_SELL && OpenPrice_sell1_4_1>=Bid && OpenPrice_sell1_4_1!=0 && OpenPrice_sell1_4_2!=0) //&& OrderProfit()>=TakeProfit*3) { ototal=OrdersTotal(); for(cnt=ototal; cnt>=0; cnt--) //!!!!!!!!!!!!!!!!!!!!!!!!!!!! { //!!!!!!!!!!!!!!!!!!!!!!!!!!!! OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); //!!!!!!!!!!!!!!!!!!!!!!!!!!!! if (OrderTicket()==s1_4_1 )// && c1_3_1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_4_1=0; // c1_3_1=1; Print("close: s1_4_1" ); continue; } if (OrderTicket()==s1_4)// && c1_2==0)//&&OpenPrice_sell1_1!=0 ) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_4=0; // c1_2=1; Print("close: s1_4"); continue; } if (OrderTicket()==s1_3 )// && c1_1==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_3=0; Print("close: s1_3" ); // c1_1=1; continue; } if (OrderTicket()==s1_4_2)// && c1_2_2==0) { OrderClose(OrderTicket(),OrderLots(),Bid,5,White); OpenPrice_sell1_4_2=0; // c1_2_2=1; Print("close: s1_4_2" ); // continue; } } } } } }
Sample
Analysis
Market Information Used:
Indicator Curves created:
Indicators Used:
Moving average indicator
MACD Histogram
Custom Indicators Used:
Order Management characteristics:
Checks for the total of closed orders
Checks for the total of open orders
It Closes Orders by itself
It automatically opens orders when conditions are reached
Other Features: