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

FileUnlimited - библиотека для MetaTrader 5

Просмотров:
2593
Рейтинг:
(30)
Опубликован:
2011.08.16 13:07
Обновлен:
2016.11.22 07:33
\MQL5\Include\TheXpert\ \MQL5\Libraries\TheXpert\ \MQL5\Scripts\
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Библиотека для работы с файлами средствами WinAPI без ограничений по месту нахождения.

Сейчас реализована только работа с константными файлами (только чтение), будет обновляться по мере багофикса и дополнения кодом.

Файлы FileUnlimited.mqh, FileUnlimitedConstants.mqh и StringUtils.mqh нужно скопировать в каталог_данных_терминала\MQL5\Include\TheXpert, библиотеку ConstFileUnlimited.mqh нужно скопировать в каталог_данных_терминала\MQL5\Libraries\TheXpert, а скрипт FileUnlimitedTest.mq5 в каталог_данных_терминала\MQL5\Scripts.

Постарался, чтобы использование класса было максимально просто.

Вот пример использования (дублирую скрипт)

#include <TheXpert/FileUnlimited.mqh>
#include <TheXpert/StringUtils.mqh>

#define CP_UTF16 1200

void OnStart()
{
   string name = "TheXpert\\Test.txt";
   string path = TerminalInfoString(TERMINAL_DATA_PATH) + "\\MQL5\\Files\\" + name;
   
   int hFile = FileOpen(name, FILE_WRITE | FILE_TXT, ' ', CP_UTF16);
   if (hFile == INVALID_HANDLE)
   {
      Print("File not opened.");
      return;
   }
   
   bool writeBool = false, readBool = true;
   long writeLong = -4369549, readLong = 0;
   double writeDouble = -4369549.245, readDouble = 0;
   datetime writeDatetime = 2596824987, readDatetime = 0;
   color writeColor = Blue, readColor = White;
   string writeString = "2r4i6bf4wb9tb69vw", readString = "";
   
   FileWrite(hFile, writeBool);
   FileWrite(hFile, writeLong);
   FileWrite(hFile, writeDouble);
   FileWrite(hFile, writeDatetime);
   FileWrite(hFile, writeColor);
   FileWrite(hFile, writeString);

   FileClose(hFile);
   
   // ---------------------------------------------
   // начиная отсюда используется либка для чтения.
   // ---------------------------------------------
   ConstFile* file = OpenConstFile(path);
   if (CheckPointer(file) != POINTER_INVALID)
   {
      file.Read(readBool);
      Print("readBool = ", readBool);

      file.Read(readLong);
      Print("readLong = ", readLong);

      file.Read(readDouble);
      Print("readDouble = ", readDouble);

      file.Read(readDatetime);
      Print("readDatetime = ", readDatetime);

      file.Read(readColor);
      Print("readColor = ", readColor);

      file.Read(readString);
      Print("readString = ", readString);
      
      delete file;
   }
   else
   {
      Print("Failed to open ConstFile at path -- ", path);
   }
}

Библиотека работает только с юникодными файлами, отсюда введение кодовой страницы CP_UTF16 (почему-то нет в константах языка).

Большая просьба сообщать обо всех обнаруженных ошибках в комментариях или в этой теме.

Замечания, пожелания, здоровая критика категорически приветствуется.

Давайте вместе сделаем вещь, которая будет потом полезна всем!

RBCI RBCI

Цифровой фильтр RBCI (Range Bound Channel Index) удаляет низкочастотный тренд, формируемый низкочастотными составляющими спектра и высокочастотный шум, формируемый высокочастотными составляющими спектра.

SATL SATL

Медленная адаптивная линия тренда (Slow Adaptive Trend Line) используется для подавления шумов и рыночных циклов с более длинными периодами колебаний.

J2JMA J2JMA

Скользящая средняя с двойным адаптивным JMA-сглаживанием ценового ряда.

JFATL JFATL

Индикатор представляет собой гибрид цифрового фильтра FATL и аналогового адаптивного усреднения JMA.