Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Скрипты

Demo_FileFlush - скрипт для MetaTrader 5

Просмотров:
2018
Рейтинг:
(27)
Опубликован:
2013.03.27 14:35
Обновлен:
2016.11.22 07:33
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

При выполнении операции записи в файл физически данные могут оказаться в нем только через некоторое время. Для того чтобы данные сразу же сохранились в файле, нужно использовать функцию FileFlush(). Если не использовать функцию, то часть данных, еще не попавших на диск, принудительно записывается туда только при закрытии файла функцией FileClose().

Скрипт в цикле получает данные о текущих ценах Bid и Ask с текущего символа и вызывает функцию FileWrite() для их записи. На каждой 128 итерации вызывается функция FileFlush() для принудительного сброса ранее записанных данных на диск.

Код:

//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
//--- имя файла для записи
input string InpFileName="example.csv"; // имя файла
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- сбросим значение ошибки
   ResetLastError();
//--- откроем файл
   int file_handle=FileOpen(InpFileName,FILE_READ|FILE_WRITE|FILE_CSV);
   if(file_handle!=INVALID_HANDLE)
     {
      //--- запишем данные в файл
      for(int i=0;i<1000;i++)
        {
         //--- вызовем функцию записи
         FileWrite(file_handle,TimeCurrent(),SymbolInfoDouble(Symbol(),SYMBOL_BID),SymbolInfoDouble(Symbol(),SYMBOL_ASK));
         //--- сбрасываем данные на диск на каждой 128 итерации
         if((i & 127)==127)
           {
            //--- теперь данные будут находиться в файле, и при критической ошибке терминала мы их не потеряем
            FileFlush(file_handle);
            PrintFormat("i = %d, OK",i);
           }
         //--- задержка в 0.01 секунды
         Sleep(10);
        }
      //--- закрываем файл
      FileClose(file_handle);
     }
   else
      PrintFormat("Ошибка, код = %d",GetLastError());
  }
Demo_FileMove Demo_FileMove

Скрипт демонстрирует пример использования функции FileMove()

The20sv0.20 The20sv0.20

Семафорный трендовый сигнальный индикатор

i-IntradayFibonacci i-IntradayFibonacci

Внутридневные уровни Фибоначчи

Demo_FileIsEnding Demo_FileIsEnding

Скрипт демонстрирует пример использования функции FileIsEnding()