Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 2117
- Рейтинг:
- Опубликован:
- 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()); }

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

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

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

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