Скачать MetaTrader 5

Спасайте! Импорт данных из csv в советник ОНЛАЙН.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пополняй свой счет через PayPal
Voitseh
139
Voitseh 2016.11.01 14:28 

Доброго времени суток!

Я не профи в mql. 

Помогите, пожалуйста, решить вопрос, если, конечно, он решаемый. 

Подключил csv к советнику. Данные в csv обновляются с каждым тиком. И как я понял, данные из csv считываются советником, только когда он (csv) закрыт.

Возможно ли получать данные из внешних файлов (в моем случае csv) в советник онлайн (обновлять данные в советнику из csv ежесекундно или ежеминутно)? Если да, то напишите, пожалуйста, как.

Спасибо. 

Andrey Dik
11353
Andrey Dik 2016.11.01 14:36  

Попробуйте флаги

FILE_READ|FILE_WRITE
Vladimir Tkach
19203
Vladimir Tkach 2016.11.01 14:45  

В кодобазе есть симпл копир. Там есть код чтения и записи данных в файл.

https://www.mql5.com/ru/code/14085 

new-rena
3372
new-rena 2016.11.01 14:45  
Andrey Dik:

Попробуйте флаги

FILE_READ|FILE_WRITE

Тогда уж лучше FILE_READ

и почитать статью (MQL5)

https://www.mql5.com/ru/articles/2720


Основы программирования на MQL5: Файлы
Основы программирования на MQL5: Файлы
  • 2016.09.28
  • //www.mql5.com/ru/users/Integer">
  • www.mql5.com
Статья-практикум по работе с файлами в MQL5. Читайте, выполняйте несложные задания, и к концу статьи вы обретете не только теоретические знания, но и практические навыки по работе с файлами в MQL5.
Sergey Gritsay
6479
Sergey Gritsay 2016.11.01 15:14  
Voitseh:

Доброго времени суток!

Я не профи в mql. 

Помогите, пожалуйста, решить вопрос, если, конечно, он решаемый. 

Подключил csv к советнику. Данные в csv обновляются с каждым тиком. И как я понял, данные из csv считываются советником, только когда он (csv) закрыт.

Возможно ли получать данные из внешних файлов (в моем случае csv) в советник онлайн (обновлять данные в советнику из csv ежесекундно или ежеминутно)? Если да, то напишите, пожалуйста, как.

Спасибо. 

Попробуйте использовать эти флаги

FILE_SHARE_READ совместный доступ по чтению со стороны нескольких программ
FILE_SHARE_WRITE совместный доступ по записи со стороны нескольких программ


 ...

Dr.Trader
3781
Dr.Trader 2016.11.01 15:33  

Если какая-то программа всё время пишет в файл, то она будет мешать тем программам (MT5) которые будут пытаться читать из этого файла.

Попробуйте использовать флаг FILE_SHARE_READ в MT5 при открытии файла. Но и пишущая программа должна использовать флаг FILE_SHARE_WRITE при открытии файла у себя. Сам не пробовал, но в гугле пишут что так вроде ок.

Другой, велосипедный вариант - пишущая программа иногда убирает хэндл с файла (закрывает его), а MT5 в цикле постоянно пытается открыть этот файл, пока наконец не попадёт в момент когда он освобождён пишущей программой. До тех пока файл открыт в MT5 - будут проблемы уже у пишущей программы, тут уже она должна в цикле пытаться открыть его, пока он не будет освобождёт MT5. Так они и будут иногда открывать и закрывать файл, и по очереди в цикле ждать друг друга.

 

*прошло много времени пока я отправил ответ, про FILE_SHARE_READ и FILE_SHARE_WRITE уже Сергей ответил за то время.

new-rena
3372
new-rena 2016.11.01 15:37  
Dr.Trader:

Если какая-то программа всё время пишет в файл, то она будет мешать тем программам (MT5) которые будут пытаться читать из этого файла.

Попробуйте использовать флаг FILE_SHARE_READ в MT5 при открытии файла. Но и пишущая программа должна использовать флаг FILE_SHARE_WRITE при открытии файла у себя. Сам не пробовал, но в гугле пишут что так вроде ок.

Другой, велосипедный вариант - пишущая программа иногда убирает хэндл с файла (закрывает его), а MT5 в цикле постоянно пытается открыть этот файл, пока наконец не попадёт в момент когда он освобождён пишущей программой. До тех пока файл открыт в MT5 - будут проблемы уже у пишущей программы, тут уже она должна в цикле пытаться открыть его, пока он не будет освобождёт MT5. Так они и будут иногда открывать и закрывать файл, и по очереди в цикле ждать друг друга.

Открыть файл достаточно один раз, при инициализации. А закрыть при деинициализации.

Такой флаг действительно поможет, т.к. файл будет открыт в режиме совместного доступа к файлу.

Voitseh
139
Voitseh 2016.11.01 15:49  
Помогло, но обновляются данные в советнике только после сохранения в программе(Excel).

Автосохранение не помогает.
new-rena
3372
new-rena 2016.11.01 16:16  
Voitseh:
Помогло, но обновляются данные в советнике только после сохранения в программе(Excel).

Автосохранение не помогает.
Вам нужно работу по формированию и редактированию файла возложить на советника.
Voitseh
139
Voitseh 2016.11.01 16:40  
В моей системе Excel выступает посредником. В него поступают данные с третей программы, а дальше в МТ. 
new-rena
3372
new-rena 2016.11.01 17:19  
Voitseh:
В моей системе Excel выступает посредником. В него поступают данные с третей программы, а дальше в МТ. 

Нет проблем.

МТ4?

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