ОШИБКИ ПРИ КОМПИЛЯЦИИ

 

ЗДОРОВО ВСЕМ!!!  Я НОВИЧОК И КАК ВСЕ НОВИЧКИ РЕШИЛ СДЕЛАТЪ СЕБЕ СОВЕТНИК.ВЪ СПРОСИТЕ КАК? МЕТОДОМ КОПИРОВАНИЯ КУСКОВ КОДА ИЗ НЕСКОЛЪКИХ СОВЕТНИКОВ.ВСЕ ВРОДЕ ХОРОШО,ТОЛЪКО ОШИБКА ПРИ КОМПИЛЯЦИИ ВЪДАЕТСЯ НА СТРОКУ КОТОРАЯ ИДЕТ ВНИЗ ПОСЛЕ КОНЦА КОДА,НА ЕТОИ СТРОКЕ НИЧЕГО НЕТ

  '\end_of_program' - ending bracket '}' expected C:\Program Files\BenchMark MetaTrader 4\experts\cm_EA News.mq4 (111, 1)
 '\end_of_program' - unbalanced left parenthesis C:\Program Files\BenchMark MetaTrader 4\experts\cm_EA News.mq4 (111, 1) 

МОИ КОД ЗАКАНЧИВАЕТСЯ НА 106 СТРОКЕ, А МНЕ ДАЕТСЯ ОШИБКА НА 111 СТРОКЕ,РАЗВЕ ТАКОЕ ВОЗМОЖНО.ИЗВИНИТЕ МЕНЯ ЗА -Ъ- Я ИЗ БОЛГАРИИ И НА МОЕИ КЛАВИАТУРЕ НЕТ  РУСКОЕ -ЬI 

 
XEKTOR68:

ЗДОРОВО ВСЕМ!!!  Я НОВИЧОК И КАК ВСЕ НОВИЧКИ РЕШИЛ СДЕЛАТЪ СЕБЕ СОВЕТНИК.ВЪ СПРОСИТЕ КАК? МЕТОДОМ КОПИРОВАНИЯ КУСКОВ КОДА ИЗ НЕСКОЛЪКИХ СОВЕТНИКОВ.ВСЕ ВРОДЕ ХОРОШО,ТОЛЪКО ОШИБКА ПРИ КОМПИЛЯЦИИ ВЪДАЕТСЯ НА СТРОКУ КОТОРАЯ ИДЕТ ВНИЗ ПОСЛЕ КОНЦА КОДА,НА ЕТОИ СТРОКЕ НИЧЕГО НЕТ

  '\end_of_program' - ending bracket '}' expected C:\Program Files\BenchMark MetaTrader 4\experts\cm_EA News.mq4 (111, 1)
 '\end_of_program' - unbalanced left parenthesis C:\Program Files\BenchMark MetaTrader 4\experts\cm_EA News.mq4 (111, 1) 

МОИ КОД ЗАКАНЧИВАЕТСЯ НА 106 СТРОКЕ, А МНЕ ДАЕТСЯ ОШИБКА НА 111 СТРОКЕ,РАЗВЕ ТАКОЕ ВОЗМОЖНО.ИЗВИНИТЕ МЕНЯ ЗА -Ъ- Я ИЗ БОЛГАРИИ И НА МОЕИ КЛАВИАТУРЕ НЕТ  РУСКОЕ -ЬI 

Компилятор проверяет в самом конце условие, чтобы количество скобок в коде советника " { " было равно количеству скобок " }".
 

Я ПРОСЧИТАЛ ДАЖЕ AkeIPad ПОДКЛЮЧАЛ ВСЕ РАВНО ТАКЖЕ ПОКАЗЪВАЕТ.И ПОЧЕМУ ТАКАЯ РАЗНИЦА В СТРОКАХ!

 
XEKTOR68:

Я ПРОСЧИТАЛ ДАЖЕ AkeIPad ПОДКЛЮЧАЛ ВСЕ РАВНО ТАКЖЕ ПОКАЗЪВАЕТ.И ПОЧЕМУ ТАКАЯ РАЗНИЦА В СТРОКАХ!

Может, всё же, код выложите?
 
Zhunko:
Может, всё же, код выложите?
ИЗВИНИТЕ Я НОВИЧОК,ВСЕ ЖЕ ПОПРОБУЮ ВЪЛОЖИТЬ!
 

extern int     Stoploss             = 0,     //стоплосс, если 0 то не изменяется
                   Takeprofit           = 0;     //тейкпрофит, если 0 то не изменяется
extern int     TrailingStop         = 3;     //длинна тралла, если 0 то нет тралла
extern int     TrailingStart        = 1;      //когда включать тралл, например после достижения 40 п прибыл
extern int     StepTrall            = 1;      //шаг тралла - перемещать стоплосс не ближе чем StepTrall
extern int     Magic                = 77;     //магик
extern int     Step                 = 10;     //расстояние от цены
extern double  Lot                  = 0.03;
extern int     slippage             = 30;     //Максимально допустимое отклонение цены для рыночных ордеров (ордеров на покупку или продажу).
//--------------------------------------------------------------------
int  STOPLEVEL;
//--------------------------------------------------------------------
int init()
{
}
//--------------------------------------------------------------------
int deinit()
{
}
//--------------------------------------------------------------------
int start()                                 
{
   STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
   double OSL,StLo,PriceB,PriceS,OOP,SL,TP;
   int b,s,TicketB,TicketS,OT,Order;
   for (int i=0; i<OrdersTotal(); i++);
   {   
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES));
      {
         if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber());
         {
            OT = OrderType();
            OSL = NormalizeDouble(OrderStopLoss(),Digits);
            OOP = NormalizeDouble(OrderOpenPrice(),Digits);
            SL=OSL;
            if (OT==OP_BUY);            
            { 
               b++;
               if (Order==OP_BUY && Bid+5*Point<OOP);
               {
              
                  if(OrderSend(Symbol(),OP_SELL,Lot*1,NormalizeDouble(Bid-5*Point,Bid + Takeprofit*Point,Digits,slippage,0,0,"",Magic,0,Red)!=-1) return;
               }
             
               if (TrailingStop>=STOPLEVEL && TrailingStop!=0 && (Bid - OOP)/Point >= TrailingStart);
               {
                  StLo = NormalizeDouble(Bid - TrailingStop*Point,Digits);
                  if (StLo>=OOP && StLo > OSL+StepTrall*Point) SL = StLo;
               }
              
               if (SL > OSL);
               { 
                  if (!OrderModify(OrderTicket(),OOP,SL,TP,0,White)) Print("Error ",GetLastError(),"   Order Modify Buy   SL ",OSL,"->",SL);
                  else Print("Order Buy Modify   SL ",OSL,"->",SL);
               }
            }                                        
            if (OT==OP_SELL);      
            {
               s++;
               if (Order==OP_SELL && Ask-5*Point>OOP);
               {
                  if(OrderSend(Symbol(),OP_BUY,Lot*1,NormalizeDouble(Ask+5*Point,Ask - TrailingStop*Point,Digits),slippage,0,0,"",Magic,0,Blue)!=-1) return;
               }
              
               if (TrailingStop>=STOPLEVEL && TrailingStop!=0 && (OOP - Ask)/Point >= TrailingStart);
               {
                  StLo = NormalizeDouble(Ask + TrailingStop*Point,Digits);
                  if (StLo<=OOP && (StLo < OSL-StepTrall*Point || OSL==0)) SL = StLo;
               }
              
               if ((SL < OSL || OSL==0) && SL!=0);
               { 
                  if (!OrderModify(OrderTicket(),OOP,SL,TP,0,White)) Print("Error ",GetLastError(),"   Order Modify Sell   SL ",OSL,"->",SL);
                  else Print("Order Sell Modify   SL ",OSL,"->",SL);
               }
            }
            if (OT==OP_BUYSTOP)  (PriceB=OOP; TicketB=OrderTicket();    
            if (OT==OP_SELLSTOP) (PriceS=OOP; TicketS=OrderTicket(); 
            {
               if (b+TicketB==0);
               {
                  if (Stoploss>=STOPLEVEL && Stoploss!=0) SL = NormalizeDouble(Bid - Stoploss * Point,Digits); else SL=0;
                  if (Takeprofit>=STOPLEVEL && Takeprofit!=0) TP = NormalizeDouble(Ask + Takeprofit * Point,Digits); else TP=0;
                  if (OrderSend(Symbol(),OP_BUYSTOP,Lot,NormalizeDouble(Ask+Step * Point,Digits),slippage,SL,TP,"news",Magic,0,CLR_NONE)!=-1);
               }
   
               if (s+TicketS==0);
               {
                  if (Stoploss>=STOPLEVEL && Stoploss!=0) SL = NormalizeDouble(Ask + Stoploss * Point,Digits); else SL=0;
                  if (Takeprofit>=STOPLEVEL && Takeprofit!=0) TP = NormalizeDouble(Bid - Takeprofit * Point,Digits); else TP=0;
                  if (OrderSend(Symbol(),OP_SELLSTOP,Lot,NormalizeDouble(Bid - Step * Point,Digits),slippage,SL,TP,"news",Magic,0,CLR_NONE)!=-1);
               }
            }
        }
    }
 }
//----------------------------------------------------------------------


 

 
Проверьте соответствие закрывающих "}" скобок открывающим "{". 
 
Последней скобки "}" не хватает.
 

Да, и еще - уберите все ";" после условий...

if (OT==OP_SELL); - не правильно

if (OT==OP_SELL) - правильно 

 
Zhunko:
Последней скобки "}" не хватает.
ПОСТАВИЛ И ВСЕ РАВНО ВЪДАЕТ:'\end_of_program' - unbalanced left parenthesis C:\Program Files\BenchMark MetaTrader 4\experts\cm_EA News.mq4 (112, 1)
 

И после всех параметров циклов то-же уберите ";"...

Код слишком аккуратный... )))