跳至内容

FileOpenHistory

FileOpenHistory

打开当前历史目录(terminal_directory\history\server_name)或其子文件夹中的文件。

int  FileOpenHistory(
   int       filename,       // file name
   int       mode,           // open mode
   int       delimiter=';'   // 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文件)存储在terminal_directory\history文件夹的相应子文件夹中。该函数可用于为非标准符号和/或时期生成自己的历史数据。存储在历史文件夹中的文件可以在离线状态下打开,无需数据泵送即可进行图表绘制。

在新的MQL4中,打开文件时应为共享使用明确指定FILE_SHARE_WRITE和FILE_SHARE_READ标志。如果省略这些标志,文件将以独占模式打开,且直到打开它的用户关闭文件之前,其他用户无法打开它(参见“New MQL4中的离线图表”)。

示例:

int handle=FileOpenHistory("USDX240.HST",FILE_BIN|FILE_WRITE|FILE_SHARE_WRITE|FILE_SHARE_READ);
  if(handle<1)
    {
     Print("Cannot open file USDX240.HST");
     return(false);
    }
  // work with file
  // ...
  FileClose(handle);
最后更新于