База данных на pure MQL - страница 2

 
Yurixx:

Дык в МКЛ4 есть и бинарные файлы. Они вроде лучше подходят для БД с фиксированной структурой. И с массивами позволяют работать. А это существенный момент, поскольку в МКЛ4 нет поиска в файле, так что это придется организовывать самому.

ага, именно это и надо сделать. просто я думал что уже гдето есть готовый отлаженный код и мне не придется тратить время на "неторговое" програмирование ;)
 
ForexTools:

Да, это наверно похожая задачка, и цель судя по всему - тоже. Но мне нужно сделать именно в файле на диске а не в памяти. И задача в основном "накопительная": просто проверить есть такие данные и если нет - (до)записать, а в некоторых случаях - поправить значения найденных.

Ну хранить-то можно где угодно. Оперативная память - это быстрый вариант временной таблицы для всяких массовых манипуляций. А вот "накопительную" задачу я и не совсем понял, если честно. Тут всё зависит от того, что есть проверка наличия данных.
 

Собственно говоря - для ясности - заголовочный файл к библиотеке.

Файлы:
mbase.mqh  3 kb
 
Azzx:
Ну хранить-то можно где угодно. Оперативная память - это быстрый вариант временной таблицы для всяких массовых манипуляций. А вот "накопительную" задачу я и не совсем понял, если честно. Тут всё зависит от того, что есть проверка наличия данных.

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

А проверка - если для этой же тиковой задачи, например мне нужно строить "очень нестандартные" свечи: ну например: ночь, утро, рабочий день, вечер. здесь нет периода, но есть время начала новой свечи, поэтому записывая данные мне нужно сначала проверить а не пора ли начать новую свечу или закончить формирование текущей? все ли цены по ней у меня собрались?

За файл подсказку спасибо! но я уже начал писать свой собственный вариант - а "своя рубашка..."

 
А обычный csv файл не катит?
 
Roger:
А обычный csv файл не катит?
К сожалению - нет. Нужны операции UPDATE. Т.е. заменить одно значение гдето в середине набора, а запись для модификации выбирается по отдельному условию. Теоретически можно вычитывать весь файл и записывать его в "новый", по ходу заменяя значения на другие, но при больших объемах файла и частых тиках это станет проблемой по производительности. А так сразу рассчитал (возможно по заранее построенному "индексу") место для записи, и записал десяток-другой байтов вместо всего файла. а для этого нужны записи фиксированной длины и размеров полей в байтах.
 
Не разделяю Вашу точку зрения, файлы до 100К обрабатываются очень быстро.
 
Roger:
Не разделяю Вашу точку зрения, файлы до 100К обрабатываются очень быстро.
ДО 100К - согласен. Но у меня счет будет идти на М и возможно не один. собственно поэтому и возник вопрос о "базе".
 
Почему тогда брезгуете уже созданными библиотеками для Мускуля?
 
не хочу напрягать будущих пользователей. хочу чтобы все что им нужно будет для работы с индикатором помещалось в одном "дистрибутиве" этого же самого индикатора: сам ex4 ну и еще возможно одна-две dll, которые не требуют установки дополнительных продуктов (ну вроде как в SQLite). к тому же задача достаточно простая и не требует всей мощи мускула.
Причина обращения: