Полезные функции для MQL-4. - страница 2

 
Artyom Trishkin:

Вот это что?


//--- Функция возвращает Максимально достигнутый уровень Эквити , который был с начала запуска советника.
double Max_Equity()
  {
   static double maxeq=AccountBalance(); 
    
   if(AccountEquity()>maxeq)
      maxeq=AccountEquity();
   return(maxeq);
  } 
//--- Функция возвращает Максимально достигнутый уровень Баланса , который был с начала запуска советника.
double Max_Balance()
  {
   static double maxbal;
   static int mc=0;
   
   for(; mc<1; mc++)
   maxbal=AccountBalance();
    
   if(AccountBalance()>maxbal)
   mc=0;
   return(maxbal);
  }       
 
Igor Zakharov:

А так не проще

Может и проще. Надо бы попробовать.

 

Функция WriteFile() - делает записи в отдельный файл.

//--- Функция ведет записи в файлах ---------------------------------------------------------------+
void WriteFile(string file_name="File",string format="txt",string text="")
  {
//Объявить переменные для записи: Хендла(файлового описателя) файла, текста в переменную типа string.
   static int han;
   static string str;
   static int in;
//----------------------- Удалить предыдущий файл -------------------------------------------------+
   for(; in<1; in++)
   FileDelete(file_name+"_"+Symbol()+"."+format);  
//----------------------- Записать в файл историю работы советника --------------------------------+
   han=FileOpen(file_name+"_"+Symbol()+"."+format,FILE_READ|FILE_WRITE);  //Открыть текстовый файл снова для дозаписи (для дозаписи указать два флага FILE_READ|FILE_WRITE).

   if(han!=INVALID_HANDLE)                                                //Если файл открылся успешно и не вернул ошибку, то..
     {
      FileSeek(han,0,SEEK_END);                                           //Указать, что текст нужно дописывать с конца.
      FileWriteString(han,text);                                          //Дописать в него текст (указать пробел или \n или \r).
      FileClose(han);                                                     //Закрыть файл.
     }

   han=FileOpen(file_name+"_"+Symbol()+"."+format,FILE_READ);             //Теперь снова открыть файл для чтения из него текста.

   FileSeek(han,0,SEEK_SET);                                              //Чтобы прочитать текст из файла, сначала вернуть в начальное положение курсор(файловый указатель).
   while(FileIsEnding(han)==false)                                        //До тех пор пока, курсор находится в начале файла (иначе функция FileIsEnding()покажет true).. 
     {
      str = FileReadString(han);                                          //Прочитать файл и записать его в переменную str.
      FileClose(han);                                                     //Потом закрыть файл. (Файл лучше закрывать, чтобы кто-нибудь другой смог его потом открыть).
     }
  }

Кому то может пригодиться готовый блок, чтобы не писать свой. )

 
Yuriy Vins:

Итак первые две функции. Ловите!

Присоединяясь к предыдущему оратору... может, лучше не, а?

 
Yuriy Vins:

Функция WriteFile() - делает записи в отдельный файл.

Кому то может пригодиться готовый блок, чтобы не писать свой. )

прекращай

 
Ладно. Я пошутил. Всем пока!
 
Nikolay Khrushchev:

прекращай

Та да, сча набросают кодов, от которых будет в шорохе не только терминал, но и весь Майкрософт =)

Причина обращения: