Как из БИН файла выгрузить в массив

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Yevheniy Kopanitskyy
1173
Yevheniy Kopanitskyy  

Всем алго трейдерам привет.

Как из Бинарного файла выгрузить обратно в массив для анализа.

Обьявил трёх мерный массив

array[1000,30,7200];

Если правильно понимаю массив то (1000 линий, 30 Столбиков)- одна страница и 7200 Страниц будем условно говорить в папке.

В массив складываю по сессиям  1 минута. 7200 сесий в неделе.

После складываю в фаил бин Как теперь вернуть всё в трёхмерный массив для анализа и сортировки.

И ещо одно Наблюдал за записью в бин фаил если дописывать то увеличивается в 2 раза от исходной величины Пример. массив 10мб  если дозаписывать не стирая фаил то за каждой записью дописывает по 10 и получается 10.20.30 итд. Если правильно понимаю то запись ведётся как на обыкнавенную лентачьную касету с дозаписью а не перезаписью... Подтвердите наблюдения.

Заранее спасибо

Alexey Viktorov
26082
Alexey Viktorov  

Было-бы разумно ко всему этому тексту добавить описание записи массива в файл. Пока такое впечатление, что массив записан в блокноте карандашом.

Но, если файл записан функцией FileWriteArray то рядом с описанием этой функции есть описание функции чтения массива из файла типа .bin FileReadArray 

Документация по MQL5: Файловые операции / FileReadArray
Документация по MQL5: Файловые операции / FileReadArray
  • www.mql5.com
//| Структура для хранения данных о ценах                            | //| Script program start function                                    |
Yevheniy Kopanitskyy
1173
Yevheniy Kopanitskyy  

Да здесь вы полнастью правы де дочитал.


Сейчас возникла другая потребность. Нужно получить колличество ЗАПОЛНЕННЫХ элементов массива без сортировки.

Обьявленный массив double array[1000,30];

После запалнения массива ,массив заполняется значениями цены , нужно определить колличество элементов  которые содержат цену Проверять нужно array[0,2] - array[1000,2] Какая функция здесь мне поможет На выходе фочется знать что колличество заполненых это array[156,2] Вот както так вижу.

Целью является отфил;тровка дублей в 3 мерном массиве

Заранее спасибо.

Dmitry Fedoseev
56926
Dmitry Fedoseev  
Yevheniy Kopanitskyy:

Да здесь вы полнастью правы де дочитал.


Сейчас возникла другая потребность. Нужно получить колличество ЗАПОЛНЕННЫХ элементов массива без сортировки.

Обьявленный массив double array[1000,30];

После запалнения массива ,массив заполняется значениями цены , нужно определить колличество элементов  которые содержат цену Проверять нужно array[0,2] - array[1000,2] Какая функция здесь мне поможет На выходе фочется знать что колличество заполненых это array[156,2] Вот както так вижу.

Целью является отфил;тровка дублей в 3 мерном массиве

Заранее спасибо.

При заполнении массива вести учет.

Ну или просто перебирать массив и считать не нули, только сначала массив надо инициализировать нулем.

Konstantin
749
Konstantin  
проще написать класс сериализации, тогда хоть понимание будет как все это делается и соответственно вопросов не будет возникать
Yevheniy Kopanitskyy
1173
Yevheniy Kopanitskyy  
Спасибо за советы займусь перебором всвободное время.
Yevheniy Kopanitskyy
1173
Yevheniy Kopanitskyy  

Спасибо всем Нашол вроде как элемемнтарый способ перебора.

double body[2000,10]
int i;
         for(i=1;i<2000;i++)
           {
            if(body[i,0]==0)
              {
               Print(i);
               break;
              }

           }
Здесь нахожу ящейку в не сортированном массиве которая содержит 0 Остальные ячёйки выше содержат цену или заполнитель которым не является 0.Так я выяснил в массиве номер индекса до куда мне нужно переберать. Избежал лишних переборов.
Далее  по индексу сопоставляю ячейки с данными и провожу операции вычисления. 

Может кому прегодится.
Щас закончю индикатор
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий