[ARCHIVE!] Any rookie question, so as not to clutter up the forum. Professionals, don't pass by. Can't go anywhere without you - 4. - page 432

 
snail09_1:... Suppose fractals are drawn similar to the standard one. Please give the cycle of finding the previous one...!

Try to dance from here: "Can you tell me how to find the price of the last fractal?


sergeev: The iFractals indicator can be used for that. It returns 0 if there is no fractal on the bar and the value of the fractal price if there is one. Fractals are divided into upper and lower fractals. If you need to get the higher ones, MODE_UPPER is passed into the iFractals function, and MODE_LOWER for the lower ones. Therefore, to find a fractal, you should loop through the bars and the first non-zero value will be the fractal you are looking for.

example:"
 

The documentation says that the iCustom function should be used to call third-party indicators.

The second parameter in this function is timeframe. If I have this parameter in an indicator, and it will be specified in theiCustom function parameters, there is a place after the name parameter to enter the list of parameters passed by the indicator.

So. I will pass the timeframe parameter from the indicator in any case. If we specify the same parameter in 2 places, it is not logical. Then what is the right way to proceed?

 
hoz:

The documentation says that the iCustom function should be used to call third-party indicators.

The second parameter in this function is timeframe. If I have this parameter in an indicator, and it will be specified in theiCustom function parameters, there is a place after the name parameter to enter the list of parameters passed by the indicator.

So. I will pass the timeframe parameter from the indicator in any case. If we specify the same parameter in 2 places, it is not logical. Then what is the right way to proceed?


Everything is in order. Everything has to be specified. The second parameter is the TF where the indicator is physically attached, the custom TF is where the indicator takes data for the calculation. Of course, you can remove the second parameter from the indicator code, if there is logic in this.
 
Zhunko:
Everything is in order. Everything must be specified. The second parameter is the TF where the indicator is physically attached, the custom TF is where the indicator takes data for the calculation. Of course, you can remove the second parameter from the indicator code, if there is logic in this.

I see now. Thank you.

But the same parameters that should be set in the indicator should be declared in the EA. It turns out that all the parameter values for the correct joint operation of the indicator and the Expert Advisor should be defined equally in both cases?

If I have entered the variables in iCustom and have not declared them in the EA, then on compilation the journal will state that those variables that I have entered are not declared.

 
Who knows in which Code Base EA can I see how the OrderCloseBy() function is coded with all the pies. Watched the closeby script in the tutorial, but can't figure out how to make it a function to call from EA, etc. Maybe you can teach me what to do! Thank you!
 
borilunad:
Who knows in which Code Base EA can I see how the OrderCloseBy() function is coded with all the pies. Watched the closeby script in the tutorial, but can't figure out how to make it a function to call from EA, etc. Maybe you can teach me what to do! Thank you!

Have you seen it here? https://docs.mql4.com/ru/trading/OrderCloseBy
 

Of course I did! I understand the principle, but it doesn't work, and I need to use the opportunity to save on the spread. That's why I wanted to see examples that work. I am looking through Code Base, but so far with no success. No one uses this mutual closing in these EAs. I hope to meet them assembled and not by the screws. Good night! Might be wiser in the morning!
 
Can you tell me how to delete trend lines, indicators, etc., on a normal computer on the Windows I did it with the right mouse button after selecting them, but on the imac I don't know how. I also can't find how to add gold to the general list ?
 
How to delete lines on IMAC ?
feeje:
Can you tell me how to delete trend lines, indicators, etc., on a normal computer on the Windows I did it with the right mouse button after selecting them, but on the imac I don't know how. And i also can't find how to add gold to the common list ?
 

Good afternoon. PEOPLE, ANSWER THE QUESTION PLEASE (3rd time posting). Question about a file index... In my MQL4 book, found at MQL4.community, in the "Standard Functions" section, there is an example of the script "File Operations", which is intended for reading data from a file and displaying graphical objects in a symbol window:

//--------------------------------------------------------------------
// timetablenews.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------- 1 --
int start()                            // Спец. функция start
  {
//--------------------------------------------------------------- 2 --
   int Handle,                         // Файловый описатель
       Stl;                            // Стиль вертикальной линии
   string File_Name="News.csv",        // Имя файла
          Obj_Name,                    // Bмя объекта
          Instr,                       // Название валюты
          One,Two,                     // 1я и 2я чать названия инстр.
          Text,                        // Текст описания события
          Str_DtTm;                    // Дата и время события(строка)
   datetime Dat_DtTm;                  // Дата и время события(дата)
   color Col;                          // Цвет вертикальной линии
//--------------------------------------------------------------- 3 --
   Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");// Открытие файла
   if(Handle<0)                        // Неудача при открытии файла
     {
      if(GetLastError()==4103)         // Если файла не существует,..
         Alert("Нет файла с именем ",File_Name);//.. извещаем трейдера 
      else                             // При любой другой ошибке..
         Alert("Ошибка при открытии файла ",File_Name);//..такое сообщ
      PlaySound("Bzrrr.wav");          // Звуковое сопровождение
      return;                          // Выход из start()      
     }
//--------------------------------------------------------------- 4 --
   while(FileIsEnding(Handle)==false)// До тех пор, пока файловый ..
     {                                // ..указатель не в конце файла
      //--------------------------------------------------------- 5 --
      Str_DtTm =FileReadString(Handle);// Дата и время события(дата)
      Text     =FileReadString(Handle);// Текст описания события
      if(FileIsEnding(Handle)==true)   // Файловый указатель в конце
         break;                        // Выход из чтения и рисования
      //--------------------------------------------------------- 6 --
      Dat_DtTm =StrToTime(Str_DtTm);   // Преобразование типа данных
      Instr    =StringSubstr(Text,0,3);// Извлекаем первые 3 символа
      One=StringSubstr(Symbol(),0,3);// Извлекаем первые 3 символа
      Two=StringSubstr(Symbol(),3,3);// Извлекаем вторые 3 символа
      Stl=STYLE_DOT;                   // Для всех - стиль пунктир
      Col=DarkOrange;                  // Для всех - цвет такой
      if(Instr==One || Instr==Two)     // А для событий по нашему ..
        {                             // .. финансовому инструменту..
         Stl=STYLE_SOLID;              // .. такой стиль..
         Col=Red;                      // .. и такой цвет верт. линии
        }
      //--------------------------------------------------------- 7 --
      Obj_Name="News_Line  "+Str_DtTm;     // Имя объекта
      ObjectCreate(Obj_Name,OBJ_VLINE,0,Dat_DtTm,0);//Создаем объект..
      ObjectSet(Obj_Name,OBJPROP_COLOR, Col);       // ..и его цвет,..
      ObjectSet(Obj_Name,OBJPROP_STYLE, Stl);       // ..стиль..
      ObjectSetText(Obj_Name,Text,10);              // ..и описание 
     }
//--------------------------------------------------------------- 8 --
   FileClose( Handle );                // Закрываем файл
   PlaySound("bulk.wav");              // Звуковое сопровождение
   WindowRedraw();                     // Перерисовываем объекты
   return;                             // Выход из start()
  }
//--------------------------------------------------------------- 9 --

Below, when analyzing this script in the Book on MQL4, the following phrase is given: "if the specified check (the last 2 lines in block 5-6) is removed, an extra object will be created at runtime. And only after that, the while loop's termination condition will trigger and control will be passed to block 8-9".

Do I understand it correctly? A file pointer is NOT INFLOWED BY TEXT SIGNS (for example: text| where | is a file pointer), but is a pointer WITH EXPRESSION, for example: text where k is the "to" character, k-th is highlighted by a file pointer. This explains the need for strings (see p.164):

      if(FileIsEnding(Handle)==true)   // Файловый указатель в конце
         break;                        // Выход из чтения и рисования
      //--------------------------------------------------------- 6 --

Indeed. On penultimate iteration, after creating LAST object

2007.05.11 18:30;JPY

the file pointer is at the position of the last object, i.e:

2007.05.11 18:30;JPY IndustrialManufacture

(where o is the "o" character, k is the file index). Then when passing control to while statement header, FileIsEnding(handle) function will obviously return true, because file pointer is NOT at end of file, but at LAST character of that file. Then when the first two lines are executed, the file pointer will move to empty space and if there are no lines

      if(FileIsEnding(Handle)==true)   // Файловый указатель в конце
         break;                        // Выход из чтения и рисования
      //--------------------------------------------------------- 6 --

the script will create a graphic (i.e. a line) with an empty description and a time coordinate that corresponds to 0. This is what is meant in the phrase: "if the specified check (the last 2 lines in block 5-6) is removed, then an extra object will be created at runtime. "

Question: do I understand correctly:

a) the definition of a file pointer;

b) the meaning of the phrase "If the specified check (the last 2 lines in block 5-6) is deleted, then an extra object will be created at program execution.And only after that the while loop's end condition will be triggered and control will be passed to block 8-9".

P.S. In order not to litter the forum, thank you in advance for your answer

Reason: