i-Profit_v1

Author: ��� ����� �. aka KimIV
Orders Execution
Checks for the total of closed ordersChecks for the total of open orders
0 Views
0 Downloads
0 Favorites
i-Profit_v1
//+----------------------------------------------------------------------------+
//|                                                              i-Profit.mq4  |
//|                                                                            |
//|                                                    Êèì Èãîðü Â. aka KimIV  |
//|                                                       http://www.kimiv.ru  |
//|                                                                            |
//+----------------------------------------------------------------------------+
#property copyright "Êèì Èãîðü Â. aka KimIV"
#property link      "http://www.kimiv.ru"
#property indicator_chart_window

//------- Âíåøíèå ïàðàìåòðû èíäèêàòîðà ----------------------------------------+
extern int      eiPercent   = 0;       // Ðàñ÷¸ò ïðîöåíòà ïðèáûëè îòíîñèòåëüíî:
                                       //  0 - òåêóùåãî áàëàíñà
//  1 - áàëàíñà íà íà÷àëî äíÿ
//  2 - áàëàíñà íà íà÷àëî íåäåëè
//  3 - áàëàíñà íà íà÷àëî ìåñÿöà
//  4 - áàëàíñà íà íà÷àëî êâàðòàëà
//  5 - áàëàíñà íà íà÷àëî ãîäà
//  6 - áàëàíñà íà ïîëüçîâàòåëüñêóþ äàòó
extern datetime edUserDate=D'2012.12.20 09:12';     // Ïîëüçîâàòåëüñêàÿ äàòà
extern int      eiOffsetY   = 30;                // Ñìåùåíèå òåêñòà ïî âåðòèêàëè
extern int      eiStepY     = 12;                // Øàã ñìåùåíèÿ òåêñòà ïî âåðòèêàëè
extern int      eiX1Row     = 3;                 // Êîîðäèíàòà X ïåðâîé êîëîíêè
extern int      eiX2Row     = 165;               // Êîîðäèíàòà X âòîðîé êîëîíêè
extern int      eiX3Row     = 230;               // Êîîðäèíàòà X òðåòåé êîëîíêè
extern int      eiX4Row     = 305;               // Êîîðäèíàòà X ÷åòâ¸ðòîé êîëîíêè
extern color    ecText      = Gray;              // Öâåò òåêñòà
extern color    ecProfit    = Green;             // Öâåò ïðèáûëè
extern color    ecLoss      = FireBrick;         // Öâåò óáûòêà
//------- Ãëîáàëüíûå ïåðåìåííûå èíäèêàòîðà ------------------------------------+

//------- Áóôåðû èíäèêàòîðà ---------------------------------------------------+

//------- Ïîêëþ÷åíèå âíåøíèõ ìîäóëåé ------------------------------------------+

//+----------------------------------------------------------------------------+
//|  Custom indicator initialization function                                  |
//+----------------------------------------------------------------------------+
void init() 
  {
   DeleteObjects();
   Comment("");
  }
//+----------------------------------------------------------------------------+
//|  Custom indicator deinitialization function                                |
//+----------------------------------------------------------------------------+
void deinit() 
  {
   DeleteObjects();
   Comment("");
  }
//+----------------------------------------------------------------------------+
//|  Custom indicator iteration function                                       |
//+----------------------------------------------------------------------------+
void start() 
  {
   datetime d0,d1,d2,d3,d4,d5,d6,d7,d8,d9;

   d0=StrToTime(TimeToStr(TimeCurrent(),TIME_DATE));
   while(TimeDayOfWeek(d0)<1 || TimeDayOfWeek(d0)>5) d0-=24*60*60;
   d1=d0-24*60*60;
   while(TimeDayOfWeek(d1)<1 || TimeDayOfWeek(d1)>5) d1-=24*60*60;
   d2=d1-24*60*60;
   while(TimeDayOfWeek(d2)<1 || TimeDayOfWeek(d2)>5) d2-=24*60*60;
   d3=d2-24*60*60;
   while(TimeDayOfWeek(d3)<1 || TimeDayOfWeek(d3)>5) d3-=24*60*60;
   d4=d3-24*60*60;
   while(TimeDayOfWeek(d4)<1 || TimeDayOfWeek(d4)>5) d4-=24*60*60;
   d5=DateOfMonday();
   d6=StrToTime(Year()+"."+Month()+".01");
   d7=DateBeginQuarter();
   d8=StrToTime(Year()+".01.01");
   d9=edUserDate;

   double tu=GetProfitOpenPosInPoint();
   double u0=GetProfitFromDateInPoint("", -1, -1, d0);
   double u1=GetProfitFromDateInPoint("", -1, -1, d1)-u0;
   double u2=GetProfitFromDateInPoint("", -1, -1, d2)-u1-u0;
   double u3=GetProfitFromDateInPoint("", -1, -1, d3)-u2-u1-u0;
   double u4=GetProfitFromDateInPoint("", -1, -1, d4)-u3-u2-u1-u0;
   double u5=GetProfitFromDateInPoint("", -1, -1, d5);
   double u6=GetProfitFromDateInPoint("", -1, -1, d6);
   double u7=GetProfitFromDateInPoint("", -1, -1, d7);
   double u8=GetProfitFromDateInPoint("", -1, -1, d8);
   double u9=GetProfitFromDateInPoint("", -1, -1, d9);

   double tb=AccountBalance(), tp=AccountProfit();
   double p0=GetProfitFromDateInCurrency("", -1, -1, d0);
   double p1=GetProfitFromDateInCurrency("", -1, -1, d1)-p0;
   double p2=GetProfitFromDateInCurrency("", -1, -1, d2)-p1-p0;
   double p3=GetProfitFromDateInCurrency("", -1, -1, d3)-p2-p1-p0;
   double p4=GetProfitFromDateInCurrency("", -1, -1, d4)-p3-p2-p1-p0;
   double p5=GetProfitFromDateInCurrency("", -1, -1, d5);
   double p6=GetProfitFromDateInCurrency("", -1, -1, d6);
   double p7=GetProfitFromDateInCurrency("", -1, -1, d7);
   double p8=GetProfitFromDateInCurrency("", -1, -1, d8);
   double p9=GetProfitFromDateInCurrency("", -1, -1, d9);

// Èçìåíåíèå áàëàíñà
   double h0=GetChangeBalance("", -1, -1, d0);
   double h5=GetChangeBalance("", -1, -1, d5);
   double h6=GetChangeBalance("", -1, -1, d6);
   double h7=GetChangeBalance("", -1, -1, d7);
   double h8=GetChangeBalance("", -1, -1, d8);
   double h9=GetChangeBalance("", -1, -1, d9);

   string st;
   switch(eiPercent) 
     {
      case 0 :            st="òåêóùåãî"; break;
      case 1 : tb-=p0+h0; st="íà íà÷àëî äíÿ"; break;
      case 2 : tb-=p5+h5; st="íà íà÷àëî íåäåëè"; break;
      case 3 : tb-=p6+h6; st="íà íà÷àëî ìåñÿöà"; break;
      case 4 : tb-=p7+h7; st="íà íà÷àëî êâàðòàëà"; break;
      case 5 : tb-=p8+h8; st="íà íà÷àëî ãîäà"; break;
      default: tb-=p9+h9; st="íà "+TimeToStr(d9, TIME_DATE); break;
     }
   double tr=tp*100/tb;
   double r0=p0*100/tb;
   double r1=p1*100/tb;
   double r2=p2*100/tb;
   double r3=p3*100/tb;
   double r4=p4*100/tb;
   double r5=p5*100/tb;
   double r6=p6*100/tb;
   double r7=p7*100/tb;
   double r8=p8*100/tb;
   double r9=p9*100/tb;

   SetLabel("iProfit05","Ïðèáûëü",ecText,eiX1Row+25,eiOffsetY);
   SetLabel("iProfit06","â ïóíêòàõ",ecText,eiX2Row-15,eiOffsetY);
   SetLabel("iProfit07","â âàëþòå",ecText,eiX3Row+35,eiOffsetY);

   SetLabel("iProfit11","Òåêóùàÿ ïðèáûëü",ecText,eiX1Row,eiOffsetY+1*eiStepY);
   SetLabel("iProfit21","Ïðèáûëü çà ñåãîäíÿ",ecText,eiX1Row,eiOffsetY+2*eiStepY);
   SetLabel("iProfit31","Ïðèáûëü çà "+TimeToStr(d1,TIME_DATE),ecText,eiX1Row,eiOffsetY+3*eiStepY);
   SetLabel("iProfit41","Ïðèáûëü çà "+TimeToStr(d2,TIME_DATE),ecText,eiX1Row,eiOffsetY+4*eiStepY);
   SetLabel("iProfit51","Ïðèáûëü çà "+TimeToStr(d3,TIME_DATE),ecText,eiX1Row,eiOffsetY+5*eiStepY);
   SetLabel("iProfit61","Ïðèáûëü çà "+TimeToStr(d4,TIME_DATE),ecText,eiX1Row,eiOffsetY+6*eiStepY);
   SetLabel("iProfit71","Ïðèáûëü çà íåäåëþ",ecText,eiX1Row,eiOffsetY+7*eiStepY);
   SetLabel("iProfit81","Ïðèáûëü çà ìåñÿö",ecText,eiX1Row,eiOffsetY+8*eiStepY);
   SetLabel("iProfit91","Ïðèáûëü çà êâàðòàë",ecText,eiX1Row,eiOffsetY+9*eiStepY);
   SetLabel("iProfit01","Ïðèáûëü çà ãîä",ecText,eiX1Row,eiOffsetY+10*eiStepY);
   SetLabel("iProfita1","Ïðèáûëü ñ "+TimeToStr(d9,TIME_DATE),ecText,eiX1Row,eiOffsetY+11*eiStepY);

   SetLabel("iProfit12",DoubleToStr(tu,0),ColorOnSign(tp),eiX2Row,eiOffsetY+1*eiStepY);
   SetLabel("iProfit22",DoubleToStr(u0,0),ColorOnSign(u0),eiX2Row,eiOffsetY+2*eiStepY);
   SetLabel("iProfit32",DoubleToStr(u1,0),ColorOnSign(u1),eiX2Row,eiOffsetY+3*eiStepY);
   SetLabel("iProfit42",DoubleToStr(u2,0),ColorOnSign(u2),eiX2Row,eiOffsetY+4*eiStepY);
   SetLabel("iProfit52",DoubleToStr(u3,0),ColorOnSign(u3),eiX2Row,eiOffsetY+5*eiStepY);
   SetLabel("iProfit62",DoubleToStr(u4,0),ColorOnSign(u4),eiX2Row,eiOffsetY+6*eiStepY);
   SetLabel("iProfit72",DoubleToStr(u5,0),ColorOnSign(u5),eiX2Row,eiOffsetY+7*eiStepY);
   SetLabel("iProfit82",DoubleToStr(u6,0),ColorOnSign(u6),eiX2Row,eiOffsetY+8*eiStepY);
   SetLabel("iProfit92",DoubleToStr(u7,0),ColorOnSign(u7),eiX2Row,eiOffsetY+9*eiStepY);
   SetLabel("iProfit02",DoubleToStr(u8,0),ColorOnSign(u8),eiX2Row,eiOffsetY+10*eiStepY);
   SetLabel("iProfita2",DoubleToStr(u9,0),ColorOnSign(u9),eiX2Row,eiOffsetY+11*eiStepY);

   SetLabel("iProfit13",DoubleToStr(tp,2),ColorOnSign(tp),eiX3Row,eiOffsetY+1*eiStepY);
   SetLabel("iProfit23",DoubleToStr(p0,2),ColorOnSign(p0),eiX3Row,eiOffsetY+2*eiStepY);
   SetLabel("iProfit33",DoubleToStr(p1,2),ColorOnSign(p1),eiX3Row,eiOffsetY+3*eiStepY);
   SetLabel("iProfit43",DoubleToStr(p2,2),ColorOnSign(p2),eiX3Row,eiOffsetY+4*eiStepY);
   SetLabel("iProfit53",DoubleToStr(p3,2),ColorOnSign(p3),eiX3Row,eiOffsetY+5*eiStepY);
   SetLabel("iProfit63",DoubleToStr(p4,2),ColorOnSign(p4),eiX3Row,eiOffsetY+6*eiStepY);
   SetLabel("iProfit73",DoubleToStr(p5,2),ColorOnSign(p5),eiX3Row,eiOffsetY+7*eiStepY);
   SetLabel("iProfit83",DoubleToStr(p6,2),ColorOnSign(p6),eiX3Row,eiOffsetY+8*eiStepY);
   SetLabel("iProfit93",DoubleToStr(p7,2),ColorOnSign(p7),eiX3Row,eiOffsetY+9*eiStepY);
   SetLabel("iProfit03",DoubleToStr(p8,2),ColorOnSign(p8),eiX3Row,eiOffsetY+10*eiStepY);
   SetLabel("iProfita3",DoubleToStr(p9,2),ColorOnSign(p9),eiX3Row,eiOffsetY+11*eiStepY);

   SetLabel("iProfit14",DoubleToStr(tr,2)+" %",ColorOnSign(tr),eiX4Row,eiOffsetY+1*eiStepY);
   SetLabel("iProfit24",DoubleToStr(r0,2)+" %",ColorOnSign(r0),eiX4Row,eiOffsetY+2*eiStepY);
   SetLabel("iProfit34",DoubleToStr(r1,2)+" %",ColorOnSign(r1),eiX4Row,eiOffsetY+3*eiStepY);
   SetLabel("iProfit44",DoubleToStr(r2,2)+" %",ColorOnSign(r2),eiX4Row,eiOffsetY+4*eiStepY);
   SetLabel("iProfit54",DoubleToStr(r3,2)+" %",ColorOnSign(r3),eiX4Row,eiOffsetY+5*eiStepY);
   SetLabel("iProfit64",DoubleToStr(r4,2)+" %",ColorOnSign(r4),eiX4Row,eiOffsetY+6*eiStepY);
   SetLabel("iProfit74",DoubleToStr(r5,2)+" %",ColorOnSign(r5),eiX4Row,eiOffsetY+7*eiStepY);
   SetLabel("iProfit84",DoubleToStr(r6,2)+" %",ColorOnSign(r6),eiX4Row,eiOffsetY+8*eiStepY);
   SetLabel("iProfit94",DoubleToStr(r7,2)+" %",ColorOnSign(r7),eiX4Row,eiOffsetY+9*eiStepY);
   SetLabel("iProfit04",DoubleToStr(r8,2)+" %",ColorOnSign(r8),eiX4Row,eiOffsetY+10*eiStepY);
   SetLabel("iProfita4",DoubleToStr(r9,2)+" %",ColorOnSign(r9),eiX4Row,eiOffsetY+11*eiStepY);

   Comment("Ïðîöåíò ïðèáûëè îòíîñèòåëüíî áàëàíñà "+st);
  }
//+----------------------------------------------------------------------------+
//|  Âîçâðàùàåò öâåò ïî çíàêó ÷èñëà                                            |
//+----------------------------------------------------------------------------+
color ColorOnSign(double nu) 
  {
   color lcColor=ecText;

   if(nu>0) lcColor=ecProfit;
   if(nu<0) lcColor=ecLoss;

   return(lcColor);
  }
//+----------------------------------------------------------------------------+
//|  Àâòîð    : Êèì Èãîðü Â. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Âåðñèÿ   : 12.05.2008                                                     |
//|  Îïèñàíèå : Âîçâðàùàåò äàòó íà÷àëà êâàðòàëà                                |
//+----------------------------------------------------------------------------+
//|  Ïàðàìåòðû:                                                                |
//|                                    (-2 - ïîçàïðîøëûé)                      |
//|                                    (-1 - ïðîøëûé)                          |
//|    no - íîìåð êâàðòàëà             ( 0 - òåêóùèé)                          |
//|                                    ( 1 - ñëåäóþùèé)                        |
//|                                    ( 2 - ïîñëåäóþùèé)                      |
//+----------------------------------------------------------------------------+
datetime DateBeginQuarter(int nk=0) 
  {
   int ye=Year()-MathFloor(nk/4);
   nk=MathMod(nk,4);
   int mo=Month()-MathMod(Month()+2,3)+3*nk;
   if(mo<1) 
     {
      mo+=12;
      ye--;
     }
   if(mo>12) 
     {
      mo-=12;
      ye++;
     }

   return(StrToTime(ye+"."+mo+".01"));
  }
//+----------------------------------------------------------------------------+
//|  Àâòîð    : Êèì Èãîðü Â. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Âåðñèÿ   : 12.05.2008                                                     |
//|  Îïèñàíèå : Âîçâðàùàåò äàòó ïîíåäåëüíèêà                                   |
//+----------------------------------------------------------------------------+
//|  Ïàðàìåòðû:                                                                |
//|                                    (-2 - ïîçàòîé íåäåëè)                   |
//|                                    (-1 - ïðîøëîé íåäåëè)                   |
//|    no - íîìåð ïîíåäåëüíèêà         ( 0 - òåêóùåé íåäåëè)                   |
//|                                    ( 1 - ñëåäóþùèé, áëèæàéøèé áóäóùèé)     |
//|                                    ( 2 - ïîñëåäóþùèé)                      |
//+----------------------------------------------------------------------------+
datetime DateOfMonday(int no=0) 
  {
   datetime dt=StrToTime(TimeToStr(TimeCurrent(),TIME_DATE));

   while(TimeDayOfWeek(dt)!=1) dt-=24*60*60;
   dt+=no*7*24*60*60;

   return(dt);
  }
//+----------------------------------------------------------------------------+
//|  Óäàëåíèå îáúåêòîâ.                                                        |
//+----------------------------------------------------------------------------+
void DeleteObjects() 
  {
   string st="iProfit";
   int    i,j;

   for(i=0; i<10; i++) 
     {
      for(j=1; j<8; j++) ObjectDelete(st+i+j);
     }
   for(i=1; i<5; i++) ObjectDelete("iProfita"+i);
  }
//+----------------------------------------------------------------------------+
//|  Àâòîð    : Êèì Èãîðü Â. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Âåðñèÿ   : 30.04.2010                                                     |
//|  Îïèñàíèå : Âîçâðàùàåò ñóììàðíûé ïðîôèò â âàëþòå äåïîçèòà                  |
//|             çàêðûòûõ ñ îïðåäåë¸ííîé äàòû ïîçèöèé                           |
//+----------------------------------------------------------------------------+
//|  Ïàðàìåòðû:                                                                |
//|    sy - íàèìåíîâàíèå èíñòðóìåíòà             (""   - ëþáîé ñèìâîë,         |
//|                                               NULL - òåêóùèé ñèìâîë)       |
//|    op - îïåðàöèÿ                             (-1   - ëþáàÿ ïîçèöèÿ)        |
//|    mn - MagicNumber                          (-1   - ëþáîé ìàãèê)          |
//|    dt - Äàòà è âðåìÿ â ñåêóíäàõ ñ 1970 ãîäà  ( 0   - ñ íà÷àëà èñòîðèè)     |
//+----------------------------------------------------------------------------+
double GetChangeBalance(string sy="",int op=-1,int mn=-1,datetime dt=0)
  {
   double p=0;
   int    i,k=OrdersHistoryTotal();

   if(sy=="0") sy=Symbol();
   for(i=0; i<k; i++) 
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) 
        {
         if((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) 
           {
            if(OrderType()==6) 
              {
               if(mn<0 || OrderMagicNumber()==mn) 
                 {
                  if(dt<OrderOpenTime()) p+=OrderProfit();
                 }
              }
           }
        }
     }
   return(p);
  }
//+----------------------------------------------------------------------------+
//|  Àâòîð    : Êèì Èãîðü Â. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Âåðñèÿ   : 19.02.2008                                                     |
//|  Îïèñàíèå : Âîçâðàùàåò ñóììàðíûé ïðîôèò â âàëþòå äåïîçèòà                  |
//|             çàêðûòûõ ñ îïðåäåë¸ííîé äàòû ïîçèöèé                           |
//+----------------------------------------------------------------------------+
//|  Ïàðàìåòðû:                                                                |
//|    sy - íàèìåíîâàíèå èíñòðóìåíòà             (""   - ëþáîé ñèìâîë,         |
//|                                               NULL - òåêóùèé ñèìâîë)       |
//|    op - îïåðàöèÿ                             (-1   - ëþáàÿ ïîçèöèÿ)        |
//|    mn - MagicNumber                          (-1   - ëþáîé ìàãèê)          |
//|    dt - Äàòà è âðåìÿ â ñåêóíäàõ ñ 1970 ãîäà  ( 0   - ñ íà÷àëà èñòîðèè)     |
//+----------------------------------------------------------------------------+
double GetProfitFromDateInCurrency(string sy="",int op=-1,int mn=-1,datetime dt=0)
  {
   double p=0;
   int    i,k=OrdersHistoryTotal();

   if(sy=="0") sy=Symbol();
   for(i=0; i<k; i++) 
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) 
        {
         if((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) 
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL) 
              {
               if(mn<0 || OrderMagicNumber()==mn) 
                 {
                  if(dt<OrderCloseTime()) 
                    {
                     p+=OrderProfit()+OrderCommission()+OrderSwap();
                    }
                 }
              }
           }
        }
     }
   return(p);
  }
//+----------------------------------------------------------------------------+
//|  Àâòîð    : Êèì Èãîðü Â. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Âåðñèÿ   : 04.02.2009                                                     |
//|  Îïèñàíèå : Âîçâðàùàåò ñóììàðíûé ïðîôèò â ïóíêòàõ                          |
//|             çàêðûòûõ ñ îïðåäåë¸ííîé äàòû ïîçèöèé                           |
//+----------------------------------------------------------------------------+
//|  Ïàðàìåòðû:                                                                |
//|    sy - íàèìåíîâàíèå èíñòðóìåíòà             (""   - ëþáîé ñèìâîë,         |
//|                                               NULL - òåêóùèé ñèìâîë)       |
//|    op - îïåðàöèÿ                             (-1   - ëþáàÿ ïîçèöèÿ)        |
//|    mn - MagicNumber                          (-1   - ëþáîé ìàãèê)          |
//|    dt - Äàòà è âðåìÿ â ñåêóíäàõ ñ 1970 ãîäà  ( 0   - ñ íà÷àëà èñòîðèè)     |
//+----------------------------------------------------------------------------+
double GetProfitFromDateInPoint(string sy="",int op=-1,int mn=-1,datetime dt=0)
  {
   double p=0,po;
   int    i,k=OrdersHistoryTotal();

   if(sy=="0") sy=Symbol();
   for(i=0; i<k; i++) 
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) 
        {
         if((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) 
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL) 
              {
               if(mn<0 || OrderMagicNumber()==mn) 
                 {
                  if(dt<OrderCloseTime()) 
                    {
                     po=MarketInfo(OrderSymbol(),MODE_POINT);
                     if(po==0) if(StringFind(sy,"JPY")<0) po=0.0001; else po=0.01;
                     if(OrderType()==OP_BUY) 
                       {
                        p+=(OrderClosePrice()-OrderOpenPrice())/po;
                       }
                     if(OrderType()==OP_SELL) 
                       {
                        p+=(OrderOpenPrice()-OrderClosePrice())/po;
                       }
                    }
                 }
              }
           }
        }
     }
   return(p);
  }
//+----------------------------------------------------------------------------+
//|  Àâòîð    : Êèì Èãîðü Â. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Âåðñèÿ   : 01.08.2008                                                     |
//|  Îïèñàíèå : Âîçâðàùàåò ñóììàðíûé ïðîôèò îòêðûòûõ ïîçèöèé â ïóíêòàõ         |
//+----------------------------------------------------------------------------+
//|  Ïàðàìåòðû:                                                                |
//|    sy - íàèìåíîâàíèå èíñòðóìåíòà   (""   - ëþáîé ñèìâîë,                   |
//|                                     NULL - òåêóùèé ñèìâîë)                 |
//|    op - îïåðàöèÿ                   (-1   - ëþáàÿ ïîçèöèÿ)                  |
//|    mn - MagicNumber                (-1   - ëþáîé ìàãèê)                    |
//+----------------------------------------------------------------------------+
int GetProfitOpenPosInPoint(string sy="",int op=-1,int mn=-1) 
  {
   double p;
   int    i,k=OrdersTotal(),pr=0;

   if(sy=="0") sy=Symbol();
   for(i=0; i<k; i++) 
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 
        {
         if((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) 
           {
            if(mn<0 || OrderMagicNumber()==mn) 
              {
               p=MarketInfo(OrderSymbol(),MODE_POINT);
               if(p==0) if(StringFind(OrderSymbol(),"JPY")<0) p=0.0001; else p=0.01;
               if(OrderType()==OP_BUY) 
                 {
                  RefreshRates();
                  pr+=(MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice())/p;
                 }
               if(OrderType()==OP_SELL) 
                 {
                  RefreshRates();
                  pr+=(OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK))/p;
                 }
              }
           }
        }
     }
   return(pr);
  }
//+----------------------------------------------------------------------------+
//|  Àâòîð    : Êèì Èãîðü Â. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Âåðñèÿ   : 12.10.2007                                                     |
//|  Îïèñàíèå : Óñòàíîâêà òåêñòîâîé ìåòêè                                      |
//+----------------------------------------------------------------------------+
//|  Ïàðàìåòðû:                                                                |
//|    nm - íàèìåíîâàíèå îáúåêòà                                               |
//|    tx - òåêñò                                                              |
//|    cl - öâåò ìåòêè                                                         |
//|    xd - êîîðäèíàòà X â ïèêñåëàõ                                            |
//|    yd - êîîðäèíàòà Y â ïèêñåëàõ                                            |
//|    cr - íîìåð óãëà ïðèâÿçêè        (0 - ëåâûé âåðõíèé)                     |
//|    fs - ðàçìåð øðèôòà              (8 - ïî óìîë÷àíèþ)                      |
//+----------------------------------------------------------------------------+
void SetLabel(string nm,string tx,color cl,int xd,int yd,int cr=0,int fs=9) 
  {
   if(ObjectFind(nm)<0) ObjectCreate(nm,OBJ_LABEL,0,0,0);
   ObjectSetText(nm,tx,fs);
   ObjectSet(nm,OBJPROP_COLOR,cl);
   ObjectSet(nm,OBJPROP_XDISTANCE,xd);
   ObjectSet(nm,OBJPROP_YDISTANCE,yd);
   ObjectSet(nm,OBJPROP_CORNER,cr);
   ObjectSet(nm,OBJPROP_FONTSIZE,fs);
  }
//+----------------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---