//+------------------------------------------------------------------+ //| Robot_Informer.mq4 | //| Sanyooooook | //| sanyooooook@mail.ru | //+------------------------------------------------------------------+ #property copyright "Sanyooooook" #property link "sany000000k.narod.ru,sanyooooook@mail.ru" #property indicator_separate_window extern datetime Begin_Report=D'01.01.1970'; extern datetime End_Report=D'07.09.2010'; extern string NameRobot1="A"; extern string UseMagic1="0;"; double MagicBuff1[20]; extern string NameRobot2="B"; extern string UseMagic2="0;"; double MagicBuff2[20]; extern string NameRobot3="C"; extern string UseMagic3="0;"; double MagicBuff3[20]; extern string NameRobot4="D"; extern string UseMagic4="0;"; double MagicBuff4[20]; extern string NameRobot5="F"; extern string UseMagic5="0;"; double MagicBuff5[20]; string NameBuff[5]; double MagicBuff[100,7]; double SMagicBuff[100,7]; int TotalRobots; int It1,It2,It3,It4,It5; int ControlTotalH; int init() { int Poz=0; int i=0; It1=0; while(i<=StringLen(UseMagic1)-1) { //Poz=StringFind(Lots,"!",i); if(StringFind(UseMagic1,";",i)==i) { MagicBuff1[It1]=StrToDouble(StringSubstr(UseMagic1,Poz,i)); Poz=i+1; if(MagicBuff1[It1]>0) { It1++; } Print(MagicBuff1[It1-1]); } i++; } Poz=0; i=0; It2=0; while(i<=StringLen(UseMagic2)-1) { //Poz=StringFind(Lots,"!",i); if(StringFind(UseMagic2,";",i)==i) { MagicBuff2[It2]=StrToDouble(StringSubstr(UseMagic2,Poz,i)); Poz=i+1; if(MagicBuff2[It2]>0) { It2++; } Print(MagicBuff2[It2-1]); } i++; } Poz=0; i=0; It3=0; while(i<=StringLen(UseMagic3)-1) { //Poz=StringFind(Lots,"!",i); if(StringFind(UseMagic3,";",i)==i) { MagicBuff3[It3]=StrToDouble(StringSubstr(UseMagic3,Poz,i)); Poz=i+1; if(MagicBuff3[It3]>0) { It3++; } Print(MagicBuff3[It3-1]); } i++; } Poz=0; i=0; It4=0; while(i<=StringLen(UseMagic4)-1) { //Poz=StringFind(Lots,"!",i); if(StringFind(UseMagic4,";",i)==i) { MagicBuff4[It4]=StrToDouble(StringSubstr(UseMagic4,Poz,i)); Poz=i+1; if(MagicBuff4[It4]>0) { It4++; } Print(MagicBuff4[It4-1]); } i++; } Poz=0; i=0; It5=0; while(i<=StringLen(UseMagic5)-1) { //Poz=StringFind(Lots,"!",i); if(StringFind(UseMagic5,";",i)==i) { MagicBuff5[It5]=StrToDouble(StringSubstr(UseMagic5,Poz,i)); Poz=i+1; if(MagicBuff5[It5]>0) { It5++; } Print(MagicBuff5[It5-1]); } i++; } start(); return(0); } int deinit() { Comment(" "); ObjectDelete("Sanyok_Magic"); ObjectDelete("Sanyok_point_Buy"); ObjectDelete("Sanyok_Profit_Buy"); ObjectDelete("Sanyok_Percent_Buy"); ObjectDelete("Sanyok_Lot_Buy"); for(int i=100-1;i>=0;i--) { ObjectDelete("Sanyok_Magic"+i); ObjectDelete("Sanyok_point_Buy"+i); ObjectDelete("Sanyok_Profit_Buy"+i); ObjectDelete("Sanyok_Percent_Buy"+i); ObjectDelete("Sanyok_Lot_Buy"+i); ObjectDelete("Sanyok_point_Sell"+i); ObjectDelete("Sanyok_Profit_Sell"+i); ObjectDelete("Sanyok_Percent_Sell"+i); ObjectDelete("Sanyok_Lot_Sell"+i); } return(0); } int start() { Comment("Результаты работы советников с ",TimeToStr(Begin_Report,TIME_DATE)," по ",TimeToStr(End_Report,TIME_DATE)); if(ControlTotalH!=OrdersHistoryTotal()) { ControlTotalH=OrdersHistoryTotal(); ArrayInitialize(MagicBuff,0.0); ArrayInitialize(SMagicBuff,0.0); int k; MagicBuff[k,0]=-1; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true&&(OrderType()==0||OrderType()==1)&&OrderCloseTime()>=Begin_Report&&OrderCloseTime()<=End_Report) { for(int d=k-1;d>=0;d--) { if(OrderMagicNumber()==MagicBuff[d,0]) { if(OrderType()==OP_BUY) { MagicBuff[d,1]=MagicBuff[d,1]+((OrderClosePrice()-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT)); MagicBuff[d,2]=MagicBuff[d,2]+OrderProfit()+OrderSwap()+OrderCommission(); MagicBuff[d,3]=MagicBuff[d,3]+OrderLots(); } if(OrderType()==OP_SELL) { MagicBuff[d,4]=MagicBuff[d,4]+((OrderOpenPrice()-OrderClosePrice())/MarketInfo(OrderSymbol(),MODE_POINT)); MagicBuff[d,5]=MagicBuff[d,5]+OrderProfit()+OrderSwap()+OrderCommission(); MagicBuff[d,6]=MagicBuff[d,6]+OrderLots(); } break; } } if(d<0) { MagicBuff[k,0]=OrderMagicNumber(); if(OrderType()==OP_BUY) { MagicBuff[k,1]=MagicBuff[k,1]+((OrderClosePrice()-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT)); MagicBuff[k,2]=MagicBuff[k,2]+OrderProfit()+OrderSwap()+OrderCommission(); MagicBuff[k,3]=MagicBuff[k,3]+OrderLots(); } if(OrderType()==OP_SELL) { MagicBuff[k,4]=MagicBuff[k,4]+((OrderOpenPrice()-OrderClosePrice())/MarketInfo(OrderSymbol(),MODE_POINT)); MagicBuff[k,5]=MagicBuff[k,5]+OrderProfit()+OrderSwap()+OrderCommission(); MagicBuff[k,6]=MagicBuff[k,6]+OrderLots(); } k++; } } } k=k-1; int K; if(It1>0) { for(int s=It1-1;s>=0;s--) { for(int f=k;f>=0;f--) { if(MagicBuff1[s]==MagicBuff[f,0]&&MagicBuff1[s]!=0) { SMagicBuff[K,1]=SMagicBuff[K,1]+MagicBuff[f,1]; SMagicBuff[K,2]=SMagicBuff[K,2]+MagicBuff[f,2]; SMagicBuff[K,3]=SMagicBuff[K,3]+MagicBuff[f,3]; SMagicBuff[K,4]=SMagicBuff[K,4]+MagicBuff[f,4]; SMagicBuff[K,5]=SMagicBuff[K,5]+MagicBuff[f,5]; SMagicBuff[K,6]=SMagicBuff[K,6]+MagicBuff[f,6]; } } } NameBuff[K]=NameRobot1; K++; } //------------------------------------------------------------ if(It2>0) { for(s=It2-1;s>=0;s--) { for(f=k;f>=0;f--) { if(MagicBuff2[s]==MagicBuff[f,0]&&MagicBuff2[s]!=0) { SMagicBuff[K,1]=SMagicBuff[K,1]+MagicBuff[f,1]; SMagicBuff[K,2]=SMagicBuff[K,2]+MagicBuff[f,2]; SMagicBuff[K,3]=SMagicBuff[K,3]+MagicBuff[f,3]; SMagicBuff[K,4]=SMagicBuff[K,4]+MagicBuff[f,4]; SMagicBuff[K,5]=SMagicBuff[K,5]+MagicBuff[f,5]; SMagicBuff[K,6]=SMagicBuff[K,6]+MagicBuff[f,6]; } } } NameBuff[K]=NameRobot2; K++; } //------------------------------------------------------------ if(It3>0) { for(s=It3-1;s>=0;s--) { for(f=k;f>=0;f--) { if(MagicBuff3[s]==MagicBuff[f,0]&&MagicBuff3[s]!=0) { SMagicBuff[K,1]=SMagicBuff[K,1]+MagicBuff[f,1]; SMagicBuff[K,2]=SMagicBuff[K,2]+MagicBuff[f,2]; SMagicBuff[K,3]=SMagicBuff[K,3]+MagicBuff[f,3]; SMagicBuff[K,4]=SMagicBuff[K,4]+MagicBuff[f,4]; SMagicBuff[K,5]=SMagicBuff[K,5]+MagicBuff[f,5]; SMagicBuff[K,6]=SMagicBuff[K,6]+MagicBuff[f,6]; } } } NameBuff[K]=NameRobot3; K++; } //------------------------------------------------------------ if(It4>0) { for(s=It4-1;s>=0;s--) { for(f=k;f>=0;f--) { if(MagicBuff4[s]==MagicBuff[f,0]&&MagicBuff4[s]!=0) { SMagicBuff[K,1]=SMagicBuff[K,1]+MagicBuff[f,1]; SMagicBuff[K,2]=SMagicBuff[K,2]+MagicBuff[f,2]; SMagicBuff[K,3]=SMagicBuff[K,3]+MagicBuff[f,3]; SMagicBuff[K,4]=SMagicBuff[K,4]+MagicBuff[f,4]; SMagicBuff[K,5]=SMagicBuff[K,5]+MagicBuff[f,5]; SMagicBuff[K,6]=SMagicBuff[K,6]+MagicBuff[f,6]; } } } NameBuff[K]=NameRobot4; K++; } //------------------------------------------------------------ if(It5>0) { for(s=It5-1;s>=0;s--) { for(f=k;f>=0;f--) { if(MagicBuff5[s]==MagicBuff[f,0]&&MagicBuff5[s]!=0) { SMagicBuff[K,1]=SMagicBuff[K,1]+MagicBuff[f,1]; SMagicBuff[K,2]=SMagicBuff[K,2]+MagicBuff[f,2]; SMagicBuff[K,3]=SMagicBuff[K,3]+MagicBuff[f,3]; SMagicBuff[K,4]=SMagicBuff[K,4]+MagicBuff[f,4]; SMagicBuff[K,5]=SMagicBuff[K,5]+MagicBuff[f,5]; SMagicBuff[K,6]=SMagicBuff[K,6]+MagicBuff[f,6]; } } } NameBuff[K]=NameRobot5; K++; } //------------------------------------------------------------ if(TotalRobots!=k) { TotalRobots=k; for(i=100-1;i>=0;i--) { ObjectDelete("Sanyok_Magic"+i); ObjectDelete("Sanyok_point_Buy"+i); ObjectDelete("Sanyok_Profit_Buy"+i); ObjectDelete("Sanyok_Percent_Buy"+i); ObjectDelete("Sanyok_Lot_Buy"+i); ObjectDelete("Sanyok_point_Sell"+i); ObjectDelete("Sanyok_Profit_Sell"+i); ObjectDelete("Sanyok_Percent_Sell"+i); ObjectDelete("Sanyok_Lot_Sell"+i); } } if(ObjectFind("Sanyok_Magic")<0) { ObjectCreate("Sanyok_Magic",OBJ_LABEL,0,0,0); ObjectSet("Sanyok_Magic",OBJPROP_XDISTANCE,60); ObjectSet("Sanyok_Magic",OBJPROP_YDISTANCE,90); //ObjectSet("Sanyok_Magic",OBJPROP_COLOR,White); ObjectSetText("Sanyok_Magic","Название",10,"Arial",White); } if(ObjectFind("Sanyok_point_Buy")<0) { ObjectCreate("Sanyok_point_Buy",OBJ_LABEL,0,0,0); ObjectSet("Sanyok_point_Buy",OBJPROP_XDISTANCE,120); ObjectSet("Sanyok_point_Buy",OBJPROP_YDISTANCE,90); //ObjectSet("Sanyok_point_Buy"+i,OBJPROP_COLOR,White); ObjectSetText("Sanyok_point_Buy","Пункты",10,"Arial",White); } if(ObjectFind("Sanyok_Profit_Buy")<0) { ObjectCreate("Sanyok_Profit_Buy",OBJ_LABEL,0,0,0); ObjectSet("Sanyok_Profit_Buy",OBJPROP_XDISTANCE,180); ObjectSet("Sanyok_Profit_Buy",OBJPROP_YDISTANCE,90); //ObjectSet("Sanyok_Profit"+i,OBJPROP_COLOR,White); ObjectSetText("Sanyok_Profit_Buy","Профит",10,"Arial",White); } if(ObjectFind("Sanyok_Percent_Buy")<0) { ObjectCreate("Sanyok_Percent_Buy",OBJ_LABEL,0,0,0); ObjectSet("Sanyok_Percent_Buy",OBJPROP_XDISTANCE,240); ObjectSet("Sanyok_Percent_Buy",OBJPROP_YDISTANCE,90); //ObjectSet("Sanyok_Percent_Buy",OBJPROP_COLOR,White); ObjectSetText("Sanyok_Percent_Buy","Процент",10,"Arial",White); } if(ObjectFind("Sanyok_Lot_Buy")<0) { ObjectCreate("Sanyok_Lot_Buy",OBJ_LABEL,0,0,0); ObjectSet("Sanyok_Lot_Buy",OBJPROP_XDISTANCE,300); ObjectSet("Sanyok_Lot_Buy",OBJPROP_YDISTANCE,90); //ObjectSet("Sanyok_Lot_Buy",OBJPROP_COLOR,White); ObjectSetText("Sanyok_Lot_Buy","Объём",10,"Arial",White); } for(i=K-1;i>=0;i--) { //-------------------------------------------------------------------------------------------------- if(ObjectFind("Sanyok_Magic"+i)<0) { ObjectCreate("Sanyok_Magic"+i,OBJ_LABEL,0,0,0); ObjectSet("Sanyok_Magic"+i,OBJPROP_XDISTANCE,60); ObjectSet("Sanyok_Magic"+i,OBJPROP_YDISTANCE,40+((K-i+1)*50)); //ObjectSet("Sanyok_Magic"+i,OBJPROP_COLOR,White); ObjectSetText("Sanyok_Magic"+i,NameBuff[i],10,"Arial",White); } else { ObjectSetText("Sanyok_Magic"+i,NameBuff[i],10,"Arial",White); } if(ObjectFind("Sanyok_point_Buy"+i)<0) { ObjectCreate("Sanyok_point_Buy"+i,OBJ_LABEL,0,0,0); ObjectSet("Sanyok_point_Buy"+i,OBJPROP_XDISTANCE,120); ObjectSet("Sanyok_point_Buy"+i,OBJPROP_YDISTANCE,40+((K-i+1)*50)); //ObjectSet("Sanyok_point_Buy"+i,OBJPROP_COLOR,White); ObjectSetText("Sanyok_point_Buy"+i,DoubleToStr(SMagicBuff[i,1],0),10,"Arial",Aqua); } else { ObjectSetText("Sanyok_point_Buy"+i,DoubleToStr(SMagicBuff[i,1],0),10,"Arial",Aqua); } if(ObjectFind("Sanyok_Profit_Buy"+i)<0) { ObjectCreate("Sanyok_Profit_Buy"+i,OBJ_LABEL,0,0,0); ObjectSet("Sanyok_Profit_Buy"+i,OBJPROP_XDISTANCE,180); ObjectSet("Sanyok_Profit_Buy"+i,OBJPROP_YDISTANCE,40+((K-i+1)*50)); //ObjectSet("Sanyok_Profit"+i,OBJPROP_COLOR,White); ObjectSetText("Sanyok_Profit_Buy"+i,DoubleToStr(SMagicBuff[i,2],2),10,"Arial",Aqua); } else { ObjectSetText("Sanyok_Profit_Buy"+i,DoubleToStr(SMagicBuff[i,2],2),10,"Arial",Aqua); } if(ObjectFind("Sanyok_Percent_Buy"+i)<0) { ObjectCreate("Sanyok_Percent_Buy"+i,OBJ_LABEL,0,0,0); ObjectSet("Sanyok_Percent_Buy"+i,OBJPROP_XDISTANCE,255); ObjectSet("Sanyok_Percent_Buy"+i,OBJPROP_YDISTANCE,40+((K-i+1)*50)); //ObjectSet("Sanyok_Percent_Buy"+i,OBJPROP_COLOR,White); ObjectSetText("Sanyok_Percent_Buy"+i,DoubleToStr(0,0),10,"Arial",Aqua); } else { ObjectSetText("Sanyok_Percent_Buy"+i,DoubleToStr(0,0),10,"Arial",Aqua); } if(ObjectFind("Sanyok_Lot_Buy"+i)<0) { ObjectCreate("Sanyok_Lot_Buy"+i,OBJ_LABEL,0,0,0); ObjectSet("Sanyok_Lot_Buy"+i,OBJPROP_XDISTANCE,300); ObjectSet("Sanyok_Lot_Buy"+i,OBJPROP_YDISTANCE,40+((K-i+1)*50)); //ObjectSet("Sanyok_Lot_Buy"+i,OBJPROP_COLOR,White); ObjectSetText("Sanyok_Lot_Buy"+i,DoubleToStr(SMagicBuff[i,3],2),10,"Arial",Aqua); } else { ObjectSetText("Sanyok_Lot_Buy"+i,DoubleToStr(SMagicBuff[i,3],2),10,"Arial",Aqua); } //-------------------------------------------------------------------------------------------------------------- if(ObjectFind("Sanyok_point_Sell"+i)<0) { ObjectCreate("Sanyok_point_Sell"+i,OBJ_LABEL,0,0,0); ObjectSet("Sanyok_point_Sell"+i,OBJPROP_XDISTANCE,120); ObjectSet("Sanyok_point_Sell"+i,OBJPROP_YDISTANCE,55+((K-i+1)*50)); //ObjectSet("Sanyok_point_Sell"+i,OBJPROP_COLOR,White); ObjectSetText("Sanyok_point_Sell"+i,DoubleToStr(SMagicBuff[i,4],0),10,"Arial",Red); } else { ObjectSetText("Sanyok_point_Sell"+i,DoubleToStr(SMagicBuff[i,4],0),10,"Arial",Red); } if(ObjectFind("Sanyok_Profit_Sell"+i)<0) { ObjectCreate("Sanyok_Profit_Sell"+i,OBJ_LABEL,0,0,0); ObjectSet("Sanyok_Profit_Sell"+i,OBJPROP_XDISTANCE,180); ObjectSet("Sanyok_Profit_Sell"+i,OBJPROP_YDISTANCE,55+((K-i+1)*50)); //ObjectSet("Sanyok_Profit_Sell"+i,OBJPROP_COLOR,White); ObjectSetText("Sanyok_Profit_Sell"+i,DoubleToStr(SMagicBuff[i,5],2),10,"Arial",Red); } else { ObjectSetText("Sanyok_Profit_Sell"+i,DoubleToStr(SMagicBuff[i,5],2),10,"Arial",Red); } if(ObjectFind("Sanyok_Percent_Sell"+i)<0) { ObjectCreate("Sanyok_Percent_Sell"+i,OBJ_LABEL,0,0,0); ObjectSet("Sanyok_Percent_Sell"+i,OBJPROP_XDISTANCE,255); ObjectSet("Sanyok_Percent_Sell"+i,OBJPROP_YDISTANCE,55+((K-i+1)*50)); //ObjectSet("Sanyok_Percent_Sell"+i,OBJPROP_COLOR,White); ObjectSetText("Sanyok_Percent_Sell"+i,DoubleToStr(0,0),10,"Arial",Red); } else { ObjectSetText("Sanyok_Percent_Sell"+i,DoubleToStr(0,0),10,"Arial",Red); } if(ObjectFind("Sanyok_Lot_Sell"+i)<0) { ObjectCreate("Sanyok_Lot_Sell"+i,OBJ_LABEL,0,0,0); ObjectSet("Sanyok_Lot_Sell"+i,OBJPROP_XDISTANCE,300); ObjectSet("Sanyok_Lot_Sell"+i,OBJPROP_YDISTANCE,55+((K-i+1)*50)); //ObjectSet("Sanyok_Lot"+i,OBJPROP_COLOR,White); ObjectSetText("Sanyok_Lot_Sell"+i,DoubleToStr(SMagicBuff[i,6],2),10,"Arial",Red); } else { ObjectSetText("Sanyok_Lot_Sell"+i,DoubleToStr(SMagicBuff[i,6],2),10,"Arial",Red); } } /*while(!IsStopped()) { if(OrdersTotal()!=ContrTotal) { ContrTotal=OrdersTotal(); for(int k=OrdersHistoryTotal()-1;i>=0;i--) { if(OrderSelect(k,SELECT_BY_POS,MODE_HISTORY)==true) { if(BegirReportTimeOrderOpenTime()) { } } } } for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)=true) { } } Sleep(1000); }*/ } return(0); } //+------------------------------------------------------------------+