[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 219

 

спасибо, вставил данный код в советника, при компиляции выдает '(' - function definition unexpected   после   bool ExistOrders, где то лишняя скобочка что ли...

 

for (int k=0;k<OrdersTotal();k++)//Производим просмотр среди всех открытых ордеров
   {
    OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
    if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )  
     OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Red);
    bool ExistOrders(string sy="", int op=-1, int mn=123) 
     {
      int i, k=OrdersTotal(), ty; 
      if (sy=="0") sy=Symbol();
      for (i=0; i<k; i++) 
      {
       if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
       {
        ty=OrderType();
        if (ty<6) 
        {
          if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op)) 
         {
          if (mn<0 || OrderMagicNumber()==mn) return(True);
      }}}}  return(False);
          }
 
//----
   return(0);
 }
 
Graall:

спасибо, вставил данный код в советника, при компиляции выдает '(' - function definition unexpected   после   bool ExistOrders, где то лишняя скобочка что ли...


Функцию ExistOrders выведите из функции start .
int start()
{
.....
for (int k=0;k<OrdersTotal();k++)//Производим просмотр среди всех открытых ордеров
   {
    OrderSelect(k,SELECT_BY_POS,MODE_TRADES);
    if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )  
     OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Red);
}
   return(0);
 }

    bool ExistOrders(string sy="", int op=-1, int mn=123) 
     {
      int i, k=OrdersTotal(), ty; 
      if (sy=="0") sy=Symbol();
      for (i=0; i<k; i++) 
      {
       if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
       {
        ty=OrderType();
        if (ty<6) 
        {
          if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op)) 
         {
          if (mn<0 || OrderMagicNumber()==mn) return(True);
      }}}}  return(False);
          }
 
 

ага понял, Функция ExistOrders это пользовательская функция,  вывел ее  из функции start, ошибка та же,  она дерется с чем то в первой части советника, выкладываю его полностью


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

//|                                                            1.mq4 |
//|                                                        Олег 2013 |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Олег 2013"
#define Magic  123

//--- input parameters
extern int TakeProfit = 100;  
extern double Lots = 0.1;   
extern int  Shag = 100;
string sy;
int ty;
int op;
int mn;
int k;
int i;
//--------------------------------------------------------------------------------------------
int start()
  {
   // поиск первого нулевого элемента
  int total=OrdersTotal();  
  if (total==0)
   { 
       OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Red);
       OrderSend(Symbol(),OP_BUYLIMIT,Lots,Ask-(Shag/0.2)*Point,3,0,0,"",123,0,Blue);   
  for (int i=0;i<OrdersTotal();i++)//Производим просмотр среди всех открытых ордеров
     {
       OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        if ( OrderType()==OP_SELLLIMIT)
         OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),Ask-(TakeProfit/0.2)*Point, 0);
     
        if ( OrderType()==OP_BUYLIMIT)
         OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),Ask+(TakeProfit/0.2)*Point, 0);
      }
   }  
 for (int k=0;k<OrdersTotal();k++)//Производим просмотр среди всех открытых ордеров
   {
    OrderSelect(k,SELECT_BY_POS,MODE_TRADES); 
    if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )  
     OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Red);

 
//----
   return(0);
 }
//+------------------------------------------------------------------+
  bool ExistOrders(string sy="", int op=-1, int mn=123) 
     {
      int i, k=OrdersTotal(), ty; 
      if (sy=="0") sy=Symbol();
      for (i=0; i<k; i++) 
      {
       if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
       {
        ty=OrderType();
        if (ty<6) 
        {
          if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op)) 
         {
          if (mn<0 || OrderMagicNumber()==mn) return(True);
      }}}}  return(False);
          }
          
          
 
Graall:



Проверьте парность скобок {} (внимательно). Ошибка означает, что в функции start () как минимум одной закрывающей не хватает.
 
alsu:

Проверьте парность скобок {} (внимательно). Ошибка означает, что в функции start () как минимум одной закрывающей не хватает.


точно, после  

for (int k=0;k<OrdersTotal();k++)//Производим просмотр среди всех открытых ордеров

 

   {
    OrderSelect(k,SELECT_BY_POS,MODE_TRADES); 
    if (!ExistOrders(Symbol(), OP_SELLLIMIT, Magic) )  

     OrderSend(Symbol(),OP_SELLLIMIT,Lots,Ask+(Shag/0.2)*Point,3,0,0,"",123,0,Red);

 

 пропустил }   спасибо!

 

 
Здравствуйте, у меня в терминале не совпадает время с реальным , сейчас  если навести на свечу М5 показывает 18.45 , а на самом деле в Украине 19.45 , как изменить время ?
 
sanktum:
Здравствуйте, у меня в терминале не совпадает время с реальным , сейчас  если навести на свечу М5 показывает 18.45 , а на самом деле в Украине 19.45 , как изменить время ?

 

Никак. На свечах - серверное время.

 

Доброго времени суток.

Записываю из експерта в файл на каждом открытии нового бара таким образом:

int handle=FileOpen(Symbol1+Symbol2+".csv",FILE_WRITE|FILE_READ|FILE_CSV);
      if(handle>0)
        {
         FileSeek(handle,0,SEEK_END);
         FileWrite(handle,TimeToString(TimeCurrent(),TIME_DATE|TIME_MINUTES), DoubleToString(Pr1,2),DoubleToString(Pr2,2),DoubleToString(Pr3,2),DoubleToString(Pr4,2));
         FileClose(handle);
        }

надо чтоб индикатор считывал эти данные и строил график, на записанных промежутках времени.

Объясните пожалуйста, как это реализовать? хотя-бы в общих чертах.

 

Установил МТ4 (Version: 4.00 Build 451) и заметил что в папке Experts Logs существет только один файл датированный днём установки терминала, т.е. 13 числа.  Всё, больше никаких лог файлов, хотя я уже включил и выключал платформу много раз.

Буду признателен за любые комментарии относительно этого явления.

 
Geowind64:

Установил МТ4 (Version: 4.00 Build 451) и заметил что в папке Experts Logs существет только один файл датированный днём установки терминала, т.е. 13 числа.  Всё, больше никаких лог файлов, хотя я уже включил и выключал платформу много раз.

Буду признателен за любые комментарии относительно этого явления.


Надо запустить хоть один эксперт/индикатор/скрипт, именно они пишут в эту папку.
Причина обращения: