Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 509

 
Aleksey Stukalov:
А чем вам трейлинг стоп не угодил? Он уже встроен в терминал 
Попользуйтесь и поймете
 

Люди добрые помогите с компиляцией советника очень прошу, в программировании не силен.

Вот такие ошибки выдает при компиляции  'delete' - name expected

красным выделена ошибка в коде

void delete(int type){

   if(OrdersTotal()>0){

      for(i=OrdersTotal()-1;i>=0;i--){

         OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

         if(type!=6 && type!=7 && type!=8)if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==type)OrderDelete(OrderTicket());

         if(type==6)if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT)OrderDelete(OrderTicket());

         if(type==7)if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT)OrderDelete(OrderTicket());

         if(type==8)if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT)OrderDelete(OrderTicket());

      }

   }


Вот еще ошибка '(' - object pointer expected

   if(oppositedelete){delete(OP_SELLSTOP);delete(OP_SELLLIMIT);}

И вот здесь  '}' - not all control paths return a value

int countglobal(){

   int cnt=0;

   if(OrdersTotal()>0){

      for(i=OrdersTotal()-1;i>=0;i--){

         OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

         cnt++;

      }

      return(cnt);

   }

}  

 
Anton Razmyslov:

Люди добрые помогите с компиляцией советника очень прошу, в программировании не силен.

Вот такие ошибки выдает при компиляции  'delete' - name expected

красным выделена ошибка в коде

void delete(int type){.

..............

говорит нельзя так называть. назовите функцию другим именем.

а вот это "not all control paths return a value" о том, что функция не имеет обратного пути и не возвращает никакого значения, напишите там return(0); перед последней "}" функции

 
Спасибо большое!
 
Tema97:
Добрый день всем) поделитесь кодом на передвижной стоп лосс - чтоб за ценой ехал ))) Заранее спасибо 
//---------------------------------
void Trailing3(int Mag,string Symb,int Dist,int Shag,bool Isp_shag,bool Isp_bezubitok)
  {
   double dist=0,shag;
   if(Digits==3 || Digits==5)
      dist=Dist*10*Point; shag=Shag*10*Point;
   if(Digits==2 || Digits==4)
      dist=Dist*Point; shag=Shag*Point;

   for(int pos=OrdersTotal()-1; pos>=0; pos--)
     {
      int res=OrderSelect(pos,SELECT_BY_POS,MODE_TRADES);
      if(OrderMagicNumber()==Mag && OrderSymbol()==Symb)
        {
         if(OrderType()==OP_BUY)
           {
            if(!Isp_shag && !Isp_bezubitok && NormalizeDouble(Bid-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Bid-dist,OrderTakeProfit(),0,clrTeal);
            if(Isp_shag && !Isp_bezubitok && NormalizeDouble(Bid-OrderOpenPrice(),Digits)>=NormalizeDouble(shag,Digits) && 
               NormalizeDouble(Bid-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Bid-dist,OrderTakeProfit(),0,clrTeal);
            if(!Isp_shag && Isp_bezubitok && NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits) && 
               NormalizeDouble(Bid-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Bid-dist,OrderTakeProfit(),0,clrTeal);
            if(Isp_shag && Isp_bezubitok && NormalizeDouble(Bid-OrderOpenPrice(),Digits)>=NormalizeDouble(shag,Digits) && 
               NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits) && NormalizeDouble(Bid-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Bid-dist,OrderTakeProfit(),0,clrTeal);
           }
         else  if(OrderType()==OP_SELL)
           {
            if(!Isp_shag && !Isp_bezubitok && NormalizeDouble(OrderStopLoss()-Ask,Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Ask+dist,OrderTakeProfit(),0,clrCrimson);
            if(Isp_shag && !Isp_bezubitok && NormalizeDouble(OrderOpenPrice()-Ask,Digits)>=NormalizeDouble(shag,Digits) && 
               NormalizeDouble(OrderStopLoss()-Ask,Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Ask+dist,OrderTakeProfit(),0,clrCrimson);
            if(!Isp_shag && Isp_bezubitok && NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble(OrderOpenPrice(),Digits) && 
               NormalizeDouble(OrderStopLoss()-Ask,Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Ask+dist,OrderTakeProfit(),0,clrCrimson);
            if(Isp_shag && Isp_bezubitok && NormalizeDouble(OrderOpenPrice()-Ask,Digits)>=NormalizeDouble(shag,Digits) && 
               NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble(OrderOpenPrice(),Digits) && NormalizeDouble(OrderStopLoss()-Ask,Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Ask+dist,OrderTakeProfit(),0,clrCrimson);
           }
        }
     }

  }
//-----------------------------------------------
 
Привет всем! Скачал МТ4 ,тестер стратегий работает только с декабря 2015го,кто знает как прокачать терминал?  
 
olleg.1:
Привет всем! Скачал МТ4 ,тестер стратегий работает только с декабря 2015го,кто знает как прокачать терминал?  
Загрузить котировки по нужному инструменту. Сервис - Архив котировок.
 
Спасибо!
 

Всем привет!

 

Подскажите, пожалуйста, как проще и правильнее реализовать в советнике возможность проверки попадания/непопадания input переменной в диапазон. Например:

а) Больше 10, но меньше 20

б) Больше 20 или меньше 10

в) и т.д. 

 

ЗЫ: пока получается 3 значения для проверки каждой переменной: case для switch (больше/меньше/больше, но меньше/меньше или больше) и 2 значения. Наверно, можно эту конструкцию зациклить и перебрать все переменные... Верное направление?

 
Антон:

Всем привет!

 

Подскажите, пожалуйста, как проще и правильнее реализовать в советнике возможность проверки попадания/непопадания input переменной в диапазон. Например:

а) Больше 10, но меньше 20

б) Больше 20 или меньше 10

в) и т.д. 

 

ЗЫ: пока получается 3 значения для проверки каждой переменной: case для switch (больше/меньше/больше, но меньше/меньше или больше) и 2 значения. Наверно, можно эту конструкцию зациклить и перебрать все переменные... Верное направление?

Какие переменные перебрать? Вы код приведите или напишите более ясно
Причина обращения: