Попробуйте флаги
В кодобазе есть симпл копир. Там есть код чтения и записи данных в файл.
Попробуйте флаги
Тогда уж лучше FILE_READ
и почитать статью (MQL5)
https://www.mql5.com/ru/articles/2720
- 2016.09.28
- //www.mql5.com/ru/users/Integer">
- www.mql5.com
Доброго времени суток!
Я не профи в mql.
Помогите, пожалуйста, решить вопрос, если, конечно, он решаемый.
Подключил csv к советнику. Данные в csv обновляются с каждым тиком. И как я понял, данные из csv считываются советником, только когда он (csv) закрыт.
Возможно ли получать данные из внешних файлов (в моем случае csv) в советник онлайн (обновлять данные в советнику из csv ежесекундно или ежеминутно)? Если да, то напишите, пожалуйста, как.
Спасибо.
Попробуйте использовать эти флаги
FILE_SHARE_WRITE совместный доступ по записи со стороны нескольких программ
...
Если какая-то программа всё время пишет в файл, то она будет мешать тем программам (MT5) которые будут пытаться читать из этого файла.
Попробуйте использовать флаг FILE_SHARE_READ в MT5 при открытии файла. Но и пишущая программа должна использовать флаг FILE_SHARE_WRITE при открытии файла у себя. Сам не пробовал, но в гугле пишут что так вроде ок.
Другой, велосипедный вариант - пишущая программа иногда убирает хэндл с файла (закрывает его), а MT5 в цикле постоянно пытается открыть этот файл, пока наконец не попадёт в момент когда он освобождён пишущей программой. До тех пока файл открыт в MT5 - будут проблемы уже у пишущей программы, тут уже она должна в цикле пытаться открыть его, пока он не будет освобождёт MT5. Так они и будут иногда открывать и закрывать файл, и по очереди в цикле ждать друг друга.
*прошло много времени пока я отправил ответ, про FILE_SHARE_READ и FILE_SHARE_WRITE уже Сергей ответил за то время.
Если какая-то программа всё время пишет в файл, то она будет мешать тем программам (MT5) которые будут пытаться читать из этого файла.
Попробуйте использовать флаг FILE_SHARE_READ в MT5 при открытии файла. Но и пишущая программа должна использовать флаг FILE_SHARE_WRITE при открытии файла у себя. Сам не пробовал, но в гугле пишут что так вроде ок.
Другой, велосипедный вариант - пишущая программа иногда убирает хэндл с файла (закрывает его), а MT5 в цикле постоянно пытается открыть этот файл, пока наконец не попадёт в момент когда он освобождён пишущей программой. До тех пока файл открыт в MT5 - будут проблемы уже у пишущей программы, тут уже она должна в цикле пытаться открыть его, пока он не будет освобождёт MT5. Так они и будут иногда открывать и закрывать файл, и по очереди в цикле ждать друг друга.
Открыть файл достаточно один раз, при инициализации. А закрыть при деинициализации.
Такой флаг действительно поможет, т.к. файл будет открыт в режиме совместного доступа к файлу.
В моей системе Excel выступает посредником. В него поступают данные с третей программы, а дальше в МТ.
Нет проблем.
МТ4?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброго времени суток!
Я не профи в mql.
Помогите, пожалуйста, решить вопрос, если, конечно, он решаемый.
Подключил csv к советнику. Данные в csv обновляются с каждым тиком. И как я понял, данные из csv считываются советником, только когда он (csv) закрыт.
Возможно ли получать данные из внешних файлов (в моем случае csv) в советник онлайн (обновлять данные в советнику из csv ежесекундно или ежеминутно)? Если да, то напишите, пожалуйста, как.
Спасибо.