Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2291
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нет, открытие и чтение это разные вещи. Файл в винде может быть открыт только одной программой. Режим для пользователя открыть открытый кем то файл только для чтения это уже копия файла. Ошибку возвращает 5004. Не давно парился, в индикаторах вызванный из советника по айКьюстом файлы открываются, а вот ОнДеИнит индикатора в тестере не срабатывает и выгрузка индикатора в ОнДеИнит советника тоже.
Флаг для чтения не помог)))
Получаем:
Если первый раз открывать по (до)записи (закомментированная строка), получаем:
И по поводу "одной программы" - легко смотрю логи своих роботов, пока они открываются/дописываются/закрываются самими роботами.
Общий лот * Стоимость пункта * Кол-во пунктов
Получаем:
Если первый раз открывать по (до)записи (закомментированная строка), получаем:
И по поводу "одной программы" - легко смотрю логи своих роботов, пока они открываются/дописываются/закрываются самими роботами.
Лучше так все таки не делать.) путаница в хендлах еще тот баг))) Читать писать совместно никто не запрещает. Совместный доступ нескольких программ по чтению и по записи это все таки спецрежим и нужный в общем то, если читать писать несколькими советниками в один файл, в рамках одного советника он особо не нужен))) И если какие то хендлы не убрать, файл останется открытым.
К тому же ситуация часто бывает, тест закончился, файл остался открытым, новый тест не смог открыть файл.
Блокнот винды кстати позволяет открывать открытые другими прогами файлы в текущем состоянии и обновлять состояние.
Всем доброго времени суток! Вопрос по тестеру mql4, по включаемым файлам.
У меня есть включаемый файл, в который записан массив со значениями чисел.
Программа позволяет использовать этот файл с записанными в него значениями массива в нескольких различных Советниках.
Я написал код в котором читаю из включаемого файла, и меняю данные записанные во включаемый файл.
В данном Советнике эти данные меняются успешно и Советник прекращает исполнять первую строку. То есть, значение элемента массива из включаемого файла было STOP[0][1]=0; , а после изменения - стало STOP[0][1]=10; значение STOP[0][0] было =1, стало = 10
ВОПРОС 1
Почему после изменения этих значений в программе в самом массиве во включаемом файле значение этих элементов этого массива в этом включаемом файле остались прежними, то есть не изменились? . Это значит что новые значения этих элементов массива этого включаемого файла я не смогу использовать в другом Советнике, поскольку в массиве включаемого файла измененные значения элементов массива не сохранились.
Как нужно изменить код, что бы значения элементов массива из включаемого файла измененные программой менялись и сохранялись в массиве включаемого файла.
ВОПРОС 2
В вышеуказанный включаемый файл я записывал данные массива путем копирования из таблицы ЕКСЕЛЬ. А при помощи какого кода можно заполнять массив из включаемого файла прямо из программы? Я пробовал делать это при помощи цикла... но безуспешно
Всем спасибо за помощь.
Всем доброго времени суток! Вопрос по тестеру mql4, по включаемым файлам.
У меня есть включаемый файл, в который записан массив со значениями чисел.
Программа позволяет использовать этот файл с записанными в него значениями массива в нескольких различных Советниках.
Я написал код в котором читаю из включаемого файла, и меняю данные записанные во включаемый файл.
В данном Советнике эти данные меняются успешно и Советник прекращает исполнять первую строку. То есть, значение элемента массива из включаемого файла было STOP[0][1]=0; , а после изменения - стало STOP[0][1]=10; значение STOP[0][0] было =1, стало = 10
ВОПРОС 1
Почему после изменения этих значений в программе в самом массиве во включаемом файле значение этих элементов этого массива в этом включаемом файле остались прежними, то есть не изменились? . Это значит что новые значения этих элементов массива этого включаемого файла я не смогу использовать в другом Советнике, поскольку в массиве включаемого файла измененные значения элементов массива не сохранились.
Как нужно изменить код, что бы значения элементов массива из включаемого файла измененные программой менялись и сохранялись в массиве включаемого файла.
ВОПРОС 2
В вышеуказанный включаемый файл я записывал данные массива путем копирования из таблицы ЕКСЕЛЬ. А при помощи какого кода можно заполнять массив из включаемого файла прямо из программы? Я пробовал делать это при помощи цикла... но безуспешно
Всем спасибо за помощь.
Файл включается во время компиляции программы.
Если хотите во время исполнения - смотрите в сторону FileWriteArray()/FileReadArray() https://docs.mql4.com/ru/files , но там работа с бинарными файлами. Для парсинга текста придётся писать свой код.
ВОПРОС 1
Почему после изменения этих значений в программе в самом массиве во включаемом файле значение этих элементов этого массива в этом включаемом файле остались прежними, то есть не изменились? . Это значит что новые значения этих элементов массива этого включаемого файла я не смогу использовать в другом Советнике, поскольку в массиве включаемого файла измененные значения элементов массива не сохранились.
Как нужно изменить код, что бы значения элементов массива из включаемого файла измененные программой менялись и сохранялись в массиве включаемого файла.
Всё это описано в документации. Функция FileFlush вам в помощь.
Функция FileFlush вам в помощь.
Спасибо за ценную информацию. Если я правильно понял FileFlush из языка MQL5 . А я пишу код пока на MQL4
Правильно ли я понял что для четверки функция FileFlush не подходит. Если не подходит , то какую альтернативу ей можете посоветовать для решения моей проблемы именно на MQL4 ?
И еще... правильно ли я понял, что FileFlush запишет данные не в включаемый файл mqh а в файл стороннего приложения , например сvv ?
Еще раз спасибо.
Файл включается во время компиляции программы.
Если хотите во время исполнения - смотрите в сторону FileWriteArray()/FileReadArray() https://docs.mql4.com/ru/files , но там работа с бинарными файлами. Для парсинга текста придётся писать свой код.
Спасибо за ценную информацию
Если я Вас правильно понял, Вы предлагаете писать массив не в включаемый файл mqh , а в файл стороннего приложения типа сvv и ему подобных. Это делать я уже умею.
Но я хочу научиться записывать из программы на mql 4 данные именно в файл mqh. Если это возможно.