Требуется помощь опытных ...

 

Подскажите мне где ошибка...

при компиляции выскакивает ошибка - '\end_of_program' - unbalanced left parenthesis    C:\Program Files (x86)\MetaTrader NordFX\experts\2lines.mq4 (128, 5)

Вот текст программы..

//+------------------------------------------------------------------+

//|                                                       2lines.mq4 |
//+------------------------------------------------------------------+
extern double Lot=0.1;
extern double BuyToSell=0;
extern double SellToBuy=0;
extern int Magic=753101357;
int Open_Sell=-1;
int Open_Buy=-1;
int Ticket_SellToBuy=-1;
int Ticket_BuyToSell=-1;
bool sell2buy=false;
bool buy2sell=false;
double OpenMass[15];
double CloseMass[15];
double Omax,Omin,Cmax,Cmin; 

void Mass()
{  OpenMass[14]=OpenMass[13];CloseMass[14]=CloseMass[13];
   OpenMass[13]=OpenMass[12];CloseMass[13]=CloseMass[12];
   OpenMass[12]=OpenMass[11];CloseMass[12]=CloseMass[11];
   OpenMass[11]=OpenMass[10];CloseMass[11]=CloseMass[10];
   OpenMass[10]=OpenMass[9];CloseMass[10]=CloseMass[9];
   OpenMass[9]=OpenMass[8];CloseMass[9]=CloseMass[8];
   OpenMass[8]=OpenMass[7];CloseMass[8]=CloseMass[7];
   OpenMass[7]=OpenMass[6];CloseMass[7]=CloseMass[6];
   OpenMass[6]=OpenMass[5];CloseMass[6]=CloseMass[5];
   OpenMass[5]=OpenMass[4];CloseMass[5]=CloseMass[4];
   OpenMass[4]=OpenMass[3];CloseMass[4]=CloseMass[3];
   OpenMass[3]=OpenMass[2];CloseMass[3]=CloseMass[2];
   OpenMass[2]=OpenMass[1];CloseMass[2]=CloseMass[1];
   OpenMass[1]=OpenMass[0];CloseMass[1]=CloseMass[10];
   OpenMass[0]=Open[0];CloseMass[0]=Close[0];
   for (int x=0;x<15;x++)
      {
      if(Omax<OpenMass[x])Omax=OpenMass[x];
      if(Omin>OpenMass[x])Omin=OpenMass[x];
      if(Cmax<CloseMass[x])Cmax=CloseMass[x];
      if(Cmin>CloseMass[x])Cmin=CloseMass[x];
      }
return(0);
}
void OBuy()
   {BuyToSell=Cmax-5*Point;
   if(Bid>=BuyToSell)
      {Ticket_BuyToSell=OrderTicket();
      Open_Sell=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),3,0,0,"Open Sell to revers",Magic,0,0,MediumBlue);
      if(Open_Sell>=0)
         {while(Ticket_BuyToSell!=Open_Sell)
            {
            if(OrderCloseBy(Ticket_BuyToSell,Open_Sell,LawnGreen) Ticket_BuyToSell=Open_Sell;
            Sleep(100);
            }
         }
      }
   return(0);
   }
 void OSell()
   {
   SellToBuy=Cmin+5*Point;
   if(Ask<=SellToBuy)
      {
      Ticket_SellToBuy=OrderTicket();
      Open_Buy=OrderSend(Symbol(),OP_BUY,Lot,NormalizeDouble(Ask,Digits),3,0,0,"Open Buy to revers",Magic,0,0,MediumBlue);
      if(Open_Buy>=0)
         {
         while(Ticket_SellToBuy!=Open_Buy)
            {
            if(OrderCloseBy(Ticket_SellToBuy,Open_Buy,LawnGreen) Ticket_SellToBuy=Open_Buy;
            Sleep(100);
            }
         }
      }
   return(0);
   }
int init()
  {
  Omax=0;
  Omin=0;
  Cmax=0;
  Cmin=0;
   for (int p=1;p<=15;p++)OpenMass[p-1]=0;
   for (int z=1;z<=15;z++)
      {
      OpenMass[14]=OpenMass[13];CloseMass[14]=CloseMass[13];
      OpenMass[13]=OpenMass[12];CloseMass[13]=CloseMass[12];
      OpenMass[12]=OpenMass[11];CloseMass[12]=CloseMass[11];
      OpenMass[11]=OpenMass[10];CloseMass[11]=CloseMass[10];
      OpenMass[10]=OpenMass[9];CloseMass[10]=CloseMass[9];
      OpenMass[9]=OpenMass[8];CloseMass[9]=CloseMass[8];
      OpenMass[8]=OpenMass[7];CloseMass[8]=CloseMass[7];
      OpenMass[7]=OpenMass[6];CloseMass[7]=CloseMass[6];
      OpenMass[6]=OpenMass[5];CloseMass[6]=CloseMass[5];
      OpenMass[5]=OpenMass[4];CloseMass[5]=CloseMass[4];
      OpenMass[4]=OpenMass[3];CloseMass[4]=CloseMass[3];
      OpenMass[3]=OpenMass[2];CloseMass[3]=CloseMass[2];
      OpenMass[2]=OpenMass[1];CloseMass[2]=CloseMass[1];
      OpenMass[1]=OpenMass[0];CloseMass[1]=CloseMass[0];
      OpenMass[0]=Open[0];CloseMass[0]=Close[0];
      if(Omax<OpenMass[0])Omax=OpenMass[0];
      if(Omin>OpenMass[0])Omin=OpenMass[0];
      if(Cmax<CloseMass[0])Cmax=CloseMass[0];
      if(Cmin>CloseMass[0])Cmin=CloseMass[0];
      Sleep(60000);
      }
   return(0);
  }

int deinit()
  {
   return(0);
  }

int start()
   {
   Mass();
   if (OrdersTotal()!=0)
      {for (int i=1; i<=OrdersTotal(); i++)
         {
         if (OrderSelect(i, SELECT_BY_POS))
            {
            if (OrderSymbol()==Symbol() && OrderType()==OP_BUY && OrderMagicNumber()==Magic)OBuy();              
            if (OrderSymbol()==Symbol() && OrderType()==OP_SELL && OrderMagicNumber()==Magic)OSell(); 
            }
         }
      }  
   return(0);
   }

 
Левая скобка открыта, а правой нет. Где ошибка - ищите сами. Можете комментировать куски программы, если захотите. 
 

Проверьте скобки! Никто не будет Вам искать лишнюю или недостающую скобку, тем более в коде, представленном без SRС!

_____________________________См. и нажмите! Тогда вставляйте код!

 
      if(Open_Sell>=0)
         {while(Ticket_BuyToSell!=Open_Sell)
            {
            if(OrderCloseBy(Ticket_BuyToSell,Open_Sell,LawnGreen) Ticket_BuyToSell=Open_Sell; <= ВОТ ТУТ нет скобки
            Sleep(100);

            }

как раз у себя скобки высматривал, глаз набитый.. :)

 

Всем огромное спасибо. Сам не нашёл бы или долго искал-бы...

Компилятор нашёл ещё 2 ошибки в OrderSend(). Исправил ... Буду сочинять дальше...

Подскажите ещё вот такой момент... Есть массив из 15 свечей... Как можно определить математическую модель патернов образованных внутри  массива?

Сам я этим ни когда не занимался... опыта совсем нет...

Причина обращения: