Русский

Справочник MQL4 Файловые операции FileOpenHistory

FileOpenHistory

Открывает файл в текущей папке истории (каталог_терминала\history\server_name) или ее подпапках.

int  FileOpenHistory(
   int       filename,       // имя файла
   int       mode,           // режим открытия
   int       delimiter=';'   // разделитель
   );

Параметры

filename

[in]  Имя файла.

mode

[in]  Режим открытия. Это может быть одна величина или их комбинация: FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITE, FILE_SHARE_READ, FILE_SHARE_WRITE.

delimiter=';'

[in]  Знак разделителя для csv-файлов. По умолчанию применяется символ ';'.

Возвращаемое значение

Возвращает хендл файла или -1 в случае неудачи. Для получения дополнительной информации об ошибке, необходимо вызвать функцию GetLastError().

Примечание

Клиентский терминал может подключаться к серверам разных брокерских компаний. Исторические данные (файлы HST) каждой брокерской компании хранятся в соответствующей подпапке папки истории каталог_терминала\history. Функция может быть полезна для формирования собственных исторических данных нестандартного символа и/или периода. Файл, сформированный в папке истории может быть открыт автономно, для его графика не требуется подкачка данных.

Следует иметь в виду, что в старом MQL4 все файлы открывались в режиме совместного использования. В новом MQL4 при открытии файлов необходимо явно указывать флаги FILE_SHARE_WRITE и FILE_SHARE_READ для совместного использования. В случае их отсутствия файл будет открыт в монопольном режиме, что не позволит больше никому его открывать, пока он не будет закрыт монополистом (см. "Оффлайновые графики и новый MQL4").

Пример:

  int handle=FileOpenHistory("USDX240.HST",FILE_BIN|FILE_WRITE|FILE_SHARE_WRITE|FILE_SHARE_READ);
  if(handle<1)
    {
     Print("Ошибка открытия файла USDX240.HST");
     return(false);
    }
  // работа с файлом
  // ...
  FileClose(handle);