Скачать MetaTrader 5

FileSave

Записывает в бинарный файл все элементы массива, переданного в качестве параметра. Функция позволяет быстро в одну строку записывать массивы числовых типов или простых структур.

bool  FileSave(
   int          file_name,         // имя файла
   const void&  buffer[],          // массив числовых типов или простых структур
   int          common_flag=0      // файловый флаг, по умолчанию файлы пишутся в папку <каталог_данных>\MQL5\Files\
   );

Параметры

file_name

[in]  Имя файла, в который будет записан массив данных.

buffer

[in]  Массив числовых типов или простых структур.

common_flag=0

[in] Файловый флаг, указывающий режим работы. Если параметр не указан, то файл будет записан в подпапке MQL5\Files (или <каталог_агента_тестирования>\MQL5\Files в случае тестирования).

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

В случае неудачи функция возвращает false.

Пример:

//+------------------------------------------------------------------+
//|                                                Demo_FileSave.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property script_show_inputs
//--- input parameters
input int      ticks_to_save=1000; // количество  тиков
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string  filename=_Symbol+"_ticks.bin";
   MqlTick ticks[];
//---
   int copied=CopyTicks(_Symbol,ticks,COPY_TICKS_ALL,0,ticks_to_save);
   if(copied!=-1)
     {
      PrintFormat(" CopyTicks(%s) copied %d ticks",_Symbol,copied);
      //--- если тиковая история синхронизирована, то код ошибки равен нулю
      if(!GetLastError()==0)
         PrintFormat("%s: Ticks are not synchronized, error=%d",_Symbol,copied,_LastError);
      //---  запишем тики в файл
      if(!FileSave(filename,ticks,FILE_COMMON))
         PrintFormat("FileSave() failed, error=%d",GetLastError());
     }
   else
      PrintFormat("Failed CopyTicks(%s), Error=",_Symbol,GetLastError());
//--- теперь прочитаем эти тики обратно из файла
   ArrayFree(ticks);
   long count=FileLoad(filename,ticks,FILE_COMMON);
   if(count!=-1)
     {
      Print("Time\tBid\tAsk\tLast\tVolume\tms\tflags");
      for(int i=0;i<count;i++)
        {
         PrintFormat("%s.%03I64u:\t%G\t%G\t%G\t%I64u\t0x%04x",
         TimeToString(ticks[i].time,TIME_DATE|TIME_SECONDS),ticks[i].time_msc%1000,
         ticks[i].bid,ticks[i].ask,ticks[i].last,ticks[i].volume,ticks[i].flags);
        }
     }
  }

Смотри также

Структуры и классы, FileWriteArray, FileWriteStruct