Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
xektor68
98
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 

khorosh
8263
khorosh  
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 

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

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

Vadim Zhunko
5226
Vadim Zhunko  
XEKTOR68:

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

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

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);
               }
            }
        }
    }
 }
//----------------------------------------------------------------------


 

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

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

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

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

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

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

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

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий