Судя по всему, вы плохо понимаете суть работы памяти - оперативной и дисковой. Потому-то все данные и хранятся в оперативке, что доступ к ней значительно быстрее, чем к диску. Но при этом для долгого хранения используется диск, потому, что он, в отличие от ОЗУ - не теряет информацию при выключении. Глобальные переменные - точно так же записываются сперва в ОЗУ, но потом перекидываются на диск для долгого хранения.
Если вам необходимо сохранить информацию в массиве после выхода из программ или выключения компьютера - единственный путь - запись в файл на диск. (В теории, конечно, можно использовать доступ в сеть, но, скорее всего, он не будет быстрее дискового доступа - поскольку там все равно информация будет храниться на диске)
Если копнуть глубже, то понятно, что ПЗУ (программное запоминающее устройство), оно же ОЗУ (основное (или оперативное) запоминающее устройство) и ППЗУ (постоянное программное запоминающее устройство) имеют одни и те же биты для хранения информации.
У меня вопрос. Есть ли какая-нибудь функция в МТ4, с помощью которой можно запоминать на диск то же самое, что и в оперативке, по типу глобальных переменных, но только не 1 значение, а весь массив типа double, состоящий из нескольких миллионов значений?
Запись через файл в формате TXT или CSV производится путем записи каждой ячейки массива в файл. Этот процесс получается очень долгим. Хотелось бы в том же виде, как они находятся в ОЗУ, быстро записать в ППЗУ (на диск), а потом так же быстро вернуть в ОЗУ, чтобы на случай сбоев работы компьютера и других непредвиденных ситуаций не потерять данные и на момент включения быстро без расчетов вернуть все назад.
Если копнуть глубже, то понятно, что ПЗУ (программное запоминающее устройство), оно же ОЗУ (основное (или оперативное) запоминающее устройство) и ППЗУ (постоянное программное запоминающее устройство) имеют одни и те же биты для хранения информации.
У меня вопрос. Есть ли какая-нибудь функция в МТ4, с помощью которой можно запоминать на диск то же самое, что и в оперативке, по типу глобальных переменных, но только не 1 значение, а весь массив, состоящий из нескольких миллионов значений?
Запись через файл в формате TXT или CSV производится путем записи каждой ячейки массива в файл. Этот процесс получается очень долгим. Хотелось бы в том же виде, как они находятся в ОЗУ, быстро записать в ППЗУ (на диск), а потом так же быстро вернуть в ОЗУ, чтобы на случай сбоев работы компьютера и других непредвиденных ситуаций не потерять данные и на момент включения быстро без расчетов вернуть все назад.
Мне тоже этого не хватает, штатных средств в MQL я не нашел. Я это представляю как простой и удобный способ записи в файл переменных, массивов и массивов структур с возможностью такого же простого считывания обратно. Ну и в догонку, жду не дождусь штатных средств работы с СУБД, хотя бы insert и select.
это как?
Здесь посмотрите. Обратите внимание на FILE_BIN и в левой колонке на функции:
FileReadArray
FileReadBool
FileReadDatetime
FileReadDouble
FileReadFloat
FileReadInteger
FileReadLong
FileReadNumber
FileReadString
FileReadStruct
--
FileWriteArray
FileWriteDouble
FileWriteFloat
FileWriteInteger
FileWriteLong
FileWriteString
FileWriteStruct
Чем так сложны файловые операции? Открыл файл, записал в него содержимое буфера, закрыл. Оформляете в виде функции и получаете тот же GlobalVariableSet, но под собственные нужды.
Спасибо. Тут есть над чем поразмышлять.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Подскажите где можно найти информацию по сохранению массивов и работе с ними в режиме реального времени? В принципе, оперативная память компьютера ни чем не отличается от постоянной памяти (жесткий диск). Единственное отличие - это оперативка стирается при выходе из программ или при выключении компьютера.
Массивы в основном 2-х мерные, но есть и 3-х мерные типа double. Есть ли вариант сохранения и работы с ними по типу глобальных переменных? Глобальные переменные могут сохранять только 1 значение. Или 1 глобальную переменную можно записать как 1 массив?
Работа с файлом дело долгое. Хотелось бы что-то по-быстрее и не слишком сложное...