Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
CFastFile - класс для работы с байтовым массивом как с файлом - библиотека для MetaTrader 5
- Просмотров:
- 3093
- Рейтинг:
- Опубликован:
- 2012.02.29 15:57
- Обновлен:
- 2017.05.01 16:44
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Класс CFastFile избавляет от необходимости промежуточной записи данных в физический файл на диске. Это позволяет получить значительное ускорение при работе с данными.
В классе реализованы все основные функции семейства FileWriteXXX/FileReadXXX. То есть, не меняя логику и код вашей программы вы легко перейдете от использования физических файлов к быстрой работе с их образами в памяти. Хранение и чтение данных происходит не с реальным физическим файлом, а с uchar-массивом.
Список реализованных функций:
CFastFile(uchar &data[]); // конструктор с инициализацией данных файла из массива void Clear(); // очистка файла //--- функции работы со свойствами файла void Delim(uchar delim=';'); // задание разделителя данных при CSV режиме int Size(); // получение размера файла int Tell(); // получение текущей позиции указателя void Seek(int offset, int origin); // перемещение позиции указателя bool IsEnding(); // проверка достигнут ли конец файла bool IsLineEnding(); // проверка достигнут ли конец строки //--- функции записи в файл uint WriteArray(uchar &src[], uint src_start=0, int src_cnt=WHOLE_ARRAY); // запись байтового массива uint WriteDouble(double v); // запись числа uint WriteFloat(float v); uint WriteLong(long v); uint WriteInt(int v); uint WriteShort(short v); uint WriteChar(char v); uint WriteInteger(int v, int sz=INT_VALUE); // запись числа - для совместимости перехода с FileWriteInteger uint WriteString(string v, int cnt); // запись строки. cnt=-1 обозначает CSV режим записи с добавлением \r\n //--- функции чтения из файла uint ReadArray(uchar &dst[], uint dst_start=0, int cnt=WHOLE_ARRAY); // чтение массива double ReadDouble(); // чтение числа float ReadFloat(); long ReadLong(); int ReadInt(); short ReadShort(); char ReadChar(); int ReadInteger(int sz=INT_VALUE); // чтение числа - для совместимости перехода с FileReadInteger double ReadNumber(); // string ReadString(int cnt); // чтение строки. cnt=-1 обозначает CSV режим чтения до разделителя // функции сохранения файла в другой источник uint Save(uchar &v[]); // сохранение файла в байтовый массив uint Save(int h); // сохранение файла в реальный файл на диске. h - заранее открытый дескриптор uint Save(string file); // сохранение файла в реальный файл на диске. file - имя файла на диске // функции загрузки файла из другого источника uint Load(uchar &v[]); // чтение файла из байтового массива uint Load(int h); // чтение файла из реального файла на диске. h - заранее открытый дескриптор uint Load(string file); // чтение файла из реального файла на диске. file - имя файла на диске
Как видно, все функции названы по аналогии со стандартными файловыми функциями терминала.
Переход от использования файлов к CFastFile очень прост. Вместо открытия и получения дескриптора обычного файла (например int h) нужно просто создать экземпляр CFastFile, например:
CFastFile f;
Затем в коде все соответствующие обычные файловые функции заменить по такому принципу:
FileWriteDouble(h, 10) -> f.WriteDouble(10)
Для удобства работы добавлены функции Save/Load для удобного сохранения/чтения данных в обычный файл.
В комплекте находится скрипт с демонстрацией работы класса.
Модуль торговых сигналов для Мастера MQL5. Сигналом для открытия позиций служит изменение цвета индикатора ColorJFatl.
Модуль торговых сигналов, выполненный на основе индикатора SilverTrend_SignalМодуль торговых сигналов для Мастера MQL5. Сигналом для открытия позиций служит появление цветной точки индикатора SilverTrend_Signal.
Индикатор Moving Average Envelopes.
Статистические функции statistics.mqhБиблиотека, которая содержит статистические функции, такие как вычисление среднего, дисперсии, асимметрии, эксцесса, ковариации, корреляции и т.д.