Я не понял. Эта опция указывает на местоположение файла - \\MetaQuotes\Terminal\Common. Без этой опции я не смогу взять файл, который сформировался в тестере. Без этой опции файл будет искаться в MQL4\Files - а туда файл из тестера я не смогу положить.
Спасибо за помощь - это просто опечатка - я этот флаг знаю. Проблема не решена - файл не хочет открываться в режиме общего чтения - даже без использования тестера. Пока этот файл открыт индикатором - скрипт не может его открыть. А вот Блокнот открывает его без проблем.
Спасибо за помощь - это просто опечатка - я этот флаг знаю. Проблема не решена - файл не хочет открываться в режиме общего чтения - даже без использования тестера. Пока этот файл открыт индикатором - скрипт не может его открыть. А вот Блокнот открывает его без проблем.
Попробуй периодически принудительно скидывать данные на диск FileFlush().
зы: вот ещё что заметил не сразу
tvv:
ExtHandle=FileOpen(c_symbol+(string)20+".csv",FILE_BIN|FILE_WRITE|FILE_SHARE_WRITE|FILE_READ|FILE_SHARE_READ|FILE_COMMON); Файл в скрипте открыт так: ExtHandleR=FileOpen("EURUSD20.csv",FILE_BIN|FILE_READ|FILE_SHARE_READ); Прошу указать на мою ошибку.
При выполнении операции записи в файл физически данные могут оказаться в нем только через некоторое время. Для того чтобы данные сразу же сохранились в файле, нужно использовать функцию FileFlush(). Если не использовать функцию, то часть данных, еще не попавших на диск, принудительно записывается туда только при закрытии файла функцией...
.CSV - это расширение файла - оно может быть любое - я выбрал такое, чтобы можно было в Блокноте смотреть. Вот интересная статья - https://www.mql5.com/ru/articles/2720. Мой код соответствует правилам, которые там описаны - но не могу прочитать файл программно. в режиме FILE_SHARE_READ. Для файла EURUSD20.HST с расширением .HST - флаг должен быть FILE.BIN, так чтобы в МТ4 файл можно было открыть автономно.
Функции для работы с файлами есть почти во всех языках программирования, и MQL5 в этом смысле — не исключение. Хотя при программировании советников и индикаторов на MQL5 работать с использованием файлов приходится не всегда, (а скорее даже — очень редко), но тем не менее, каждый экспертописатель рано или поздно с этим сталкивается. Диапазон...
.CSV - это расширение файла - оно может быть любое - я выбрал такое, чтобы можно было в Блокноте смотреть. Вот интересная статья - https://www.mql5.com/ru/articles/2720. Мой код соответствует правилам, которые там описаны - но не могу прочитать файл программно. в режиме FILE_SHARE_READ. Для файла EURUSD20.HST с расширением .HST - флаг должен быть FILE.BIN, так чтобы в МТ4 файл можно было открыть автономно.
Я пробовал работать не в тестере а просто на обычном графике (EURUSD M1) - запускаю индикатор, который формирует ТФ М20.
Этот файл в этом случае появится в папке MQL4\Files. Далее запуска скрипт на обычном графике (EURUSD M5), который копирует содержимое файла EURUSD20.csv в файл EURUSD20.HST. Файл EURUSD20.HST формируется в папке history в том же каталоге, что и MQL4.
Код скрипта:
файл для чтения ExtHandleR=FileOpen("EURUSD20.csv",FILE_BIN|FILE_READ|FILE_SHARE_READ);
файл для записи ExtHandleW=FileOpenHistory("EURUSD20.hst",FILE_BIN|FILE_WRITE|FILE_SHARE_WRITE|FILE_SHARE_READ);
Все работает только тогда, когда я удаляю индикатор с графика М1. То есть режим разделения файла по чтению у меня не работает.
Здравствуйте! Что за глюк метатрейдера на графике евродолар? Появилась дневная свеча за восскресенье 9.10.2011 , на часовом графике только один час 23:00 за это число. Наверно это связано с переводом часов на зимнее время. Как это исправить? Раньше этой свечи не было.
tvv: Все работает только тогда, когда я удаляю индикатор с графика М1. То есть режим разделения файла по чтению у меня не работает.
Проблема решается так: Программа, записывающая файл, должна после каждой операции записи закрывать файлFileClose тем самым освобождая его для чтения другой программой. Это связано с тем, что данные при записи сначала попадают в буфер и в файле физически какое-то время отсутствуют. Закрытие файла освобождает буфер в файл. Перед следующей записью
// Открытие или создание файла и перемещение указателя в конец
Файл = FileOpen(ИмяФайла, FILE_CSV | FILE_READ | FILE_WRITE, " "); // еще COMMON SHARE...
FileSeek(Файл, 0, SEEK_END);
файл снова открывается и указатель перемещается к концу
Здравствуйте! Подскажите а верным ли будет утверждение, что получаемое количество пунктов будет одинаково в обоих выражениях?? Мне это действительно важно!
"Цена закрытия последнего закрытого ордера"-Ask>=30*PointAsk-"Цена закрытия последнего закрытого ордера">=30*Point //Если цена Выше
Точнее сказать Ведь пункты не могут быть отрицательными??? Или все же.....))
Начал изучать mql5 появилось несколько вопросов, поэтому прошу помощи.
Задача получить в массив значения хаев n последних свечей, и отсортировать массив отобрав только не побитые хаи.
Написал такую функцию:
Выдает ошибку array out of range. в строке.
Данная ошибка, как я понял, вызвана обращением к несуществующей ячейки массива.
Но найти ошибку с хода не смог, подскажите где накосячил, или может есть более элегантная сортировка.
Сравните значение index с размерностью массива. Учтите, что элементы массива нумеруются с нуля, и номер последнего на 1 меньше размерности. А NumCand чему равно?
Я не понял. Эта опция указывает на местоположение файла - \\MetaQuotes\Terminal\Common. Без этой опции я не смогу взять файл, который сформировался в тестере. Без этой опции файл будет искаться в MQL4\Files - а туда файл из тестера я не смогу положить.
Именно на отсутствие этого флага я указал.
Именно на отсутствие этого флага я указал.
Спасибо за помощь - это просто опечатка - я этот флаг знаю. Проблема не решена - файл не хочет открываться в режиме общего чтения - даже без использования тестера. Пока этот файл открыт индикатором - скрипт не может его открыть. А вот Блокнот открывает его без проблем.
Спасибо за помощь - это просто опечатка - я этот флаг знаю. Проблема не решена - файл не хочет открываться в режиме общего чтения - даже без использования тестера. Пока этот файл открыт индикатором - скрипт не может его открыть. А вот Блокнот открывает его без проблем.
Попробуй периодически принудительно скидывать данные на диск FileFlush().
зы: вот ещё что заметил не сразу
tvv:
ExtHandle=FileOpen(c_symbol+(string)20+".csv",FILE_BIN|FILE_WRITE|FILE_SHARE_WRITE|FILE_READ|FILE_SHARE_READ|FILE_COMMON);
Файл в скрипте открыт так: ExtHandleR=FileOpen("EURUSD20.csv",FILE_BIN|FILE_READ|FILE_SHARE_READ);
Прошу указать на мою ошибку.
Попробуй периодически принудительно скидывать данные на диск FileFlush().
зы: вот ещё что заметил не сразу
Странно что читает. Должен быть флаг FILE_CSV.CSV - это расширение файла - оно может быть любое - я выбрал такое, чтобы можно было в Блокноте смотреть. Вот интересная статья - https://www.mql5.com/ru/articles/2720. Мой код соответствует правилам, которые там описаны - но не могу прочитать файл программно. в режиме FILE_SHARE_READ. Для файла EURUSD20.HST с расширением .HST - флаг должен быть FILE.BIN, так чтобы в МТ4 файл можно было открыть автономно.
.CSV - это расширение файла - оно может быть любое - я выбрал такое, чтобы можно было в Блокноте смотреть. Вот интересная статья - https://www.mql5.com/ru/articles/2720. Мой код соответствует правилам, которые там описаны - но не могу прочитать файл программно. в режиме FILE_SHARE_READ. Для файла EURUSD20.HST с расширением .HST - флаг должен быть FILE.BIN, так чтобы в МТ4 файл можно было открыть автономно.
Я пробовал работать не в тестере а просто на обычном графике (EURUSD M1) - запускаю индикатор, который формирует ТФ М20.
Код открытия файла:
ExtHandle= FileOpen("EURUSD20.csv",FILE_BIN|FILE_WRITE|FILE_SHARE_WRITE|FILE_READ|FILE_SHARE_READ).
Этот файл в этом случае появится в папке MQL4\Files. Далее запуска скрипт на обычном графике (EURUSD M5), который копирует содержимое файла EURUSD20.csv в файл EURUSD20.HST. Файл EURUSD20.HST формируется в папке history в том же каталоге, что и MQL4.
Код скрипта:
файл для чтения ExtHandleR=FileOpen("EURUSD20.csv",FILE_BIN|FILE_READ|FILE_SHARE_READ);
файл для записи ExtHandleW=FileOpenHistory("EURUSD20.hst",FILE_BIN|FILE_WRITE|FILE_SHARE_WRITE|FILE_SHARE_READ);
Все работает только тогда, когда я удаляю индикатор с графика М1. То есть режим разделения файла по чтению у меня не работает.
Здравствуйте! Что за глюк метатрейдера на графике евродолар? Появилась дневная свеча за восскресенье 9.10.2011 , на часовом графике только один час 23:00 за это число. Наверно это связано с переводом часов на зимнее время. Как это исправить? Раньше этой свечи не было.
Проблема решается так: Программа, записывающая файл, должна после каждой операции записи закрывать файл FileClose тем самым освобождая его для чтения другой программой. Это связано с тем, что данные при записи сначала попадают в буфер и в файле физически какое-то время отсутствуют. Закрытие файла освобождает буфер в файл. Перед следующей записью
файл снова открывается и указатель перемещается к концу
Здравствуйте! Подскажите а верным ли будет утверждение, что получаемое количество пунктов будет одинаково в обоих выражениях?? Мне это действительно важно!
Точнее сказать Ведь пункты не могут быть отрицательными??? Или все же.....))
Добрый вечер.
Начал изучать mql5 появилось несколько вопросов, поэтому прошу помощи.
Задача получить в массив значения хаев n последних свечей, и отсортировать массив отобрав только не побитые хаи.
Написал такую функцию:
Выдает ошибку array out of range. в строке.
Данная ошибка, как я понял, вызвана обращением к несуществующей ячейки массива.
Но найти ошибку с хода не смог, подскажите где накосячил, или может есть более элегантная сортировка.
Добрый вечер.
Начал изучать mql5 появилось несколько вопросов, поэтому прошу помощи.
Задача получить в массив значения хаев n последних свечей, и отсортировать массив отобрав только не побитые хаи.
Написал такую функцию:
Выдает ошибку array out of range. в строке.
Данная ошибка, как я понял, вызвана обращением к несуществующей ячейки массива.
Но найти ошибку с хода не смог, подскажите где накосячил, или может есть более элегантная сортировка.