Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2180
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не роботает тестер выбивает: 2023.04.20 17:20:30.885 Tester no optimized parameter selected, please check input(s) to be optimized and set start, step and stop values
2023.04.20 16:03:08.754 Tester Cloud servers switched off
Есть решение или это мт5 лагает?
либо выключите оптимизацию, либо настройте ее корректно. Если не знаете как или что это такое - то просто выключите и тестируйте в обычном режиме
Я сделал массив статическим
моя переменная a - это Ваша G, поэтому избавимся от нее
В результате у Вас должно появиться 5 файлов (на каждый день недели).
В тех случаях, когда Вы объявили переменную и далее производите с этой переменной сравнение или действия кроме присвоения, необходимо первоначально присвоить ей нужное значение. По умолчанию, в инициализированной переменной не обязательно будет ноль, то же самое касается элементов массива. Так неправильно:
Используйте #property strict в начале кода, он будет указывать Вам на подобные неточности.
В OnTick() может быть больше сделок, чем 366, и произойдет ошибка выхода за пределы массива.моя переменная a - это Ваша G, поэтому избавимся от нее
В результате у Вас должно появиться 5 файлов (на каждый день недели).
В тех случаях, когда Вы объявили переменную и далее производите с этой переменной сравнение или действия кроме присвоения, необходимо первоначально присвоить ей нужное значение. По умолчанию, в инициализированной переменной не обязательно будет ноль, то же самое касается элементов массива. Так неправильно:
Используйте #property strict в начале кода, он будет указывать Вам на подобные неточности.
В OnTick() может быть больше сделок, чем 366, и произойдет ошибка выхода за пределы массива.Огромное Вам спасибо за ценную информацию А есть техническая возможность содержимое всех 5 файлов объединить в 1. Я знаю как это сделать средствами екселя. А mql4 по завершении всех 5 прогонов может содержимое 5 файлов положить в 1 файл? Если может буду Вам очень признателен, если продемонстрируйте мне это в коде.
Еще раз большое спасибо за помощь.
Компилятор не разрешил на глобальном уровне заполнить массив нулями при помощи функции ArrayInitialize . Я вообще удалил эту функцию из кода, то есть не стал заполнять массив нулями вообще. Программа этого даже не заметила и действительно создала 5 файлов и положила в них все что мне нужно. Мне бы теперь объединить в программе 5 в 1.
Но если есть вариант инициализации массива на глобальном уровне при помощи функции , буду Вам очень признателен если подскажете мне его.
Огромное Вам спасибо за ценную информацию А есть техническая возможность содержимое всех 5 файлов объединить в 1. Я знаю как это сделать средствами екселя. А mql4 по завершении всех 5 прогонов может содержимое 5 файлов положить в 1 файл? Если может буду Вам очень признателен, если продемонстрируйте мне это в коде.
Еще раз большое спасибо за помощь.
Компилятор не разрешил на глобальном уровне заполнить массив нулями при помощи функции ArrayInitialize . Я вообще удалил эту функцию из кода, то есть не стал заполнять массив нулями вообще. Программа этого даже не заметила и действительно создала 5 файлов и положила в них все что мне нужно. Мне бы теперь объединить в программе 5 в 1.
Но если есть вариант инициализации массива на глобальном уровне при помощи функции , буду Вам очень признателен если подскажете мне его.
Это написано на mql5, но в mql4 всё точно так-же.
Это написано на mql5, но в mql4 всё точно так-же.
Спасибо за помощь
Если я правильно Вас понял еще не читая материал по ссылке, Вы предлагаете для моего случая объединять массивы. Но не объединять содержимое файлов сvs. По ссылке речь идет об объединении НЕСКОЛЬКИХ массивов в один. А у меня только один массив Му[ ]
Спасибо за помощь
Если я правильно Вас понял еще не читая материал по ссылке, Вы предлагаете для моего случая объединять массивы. Но не объединять содержимое файлов сvs. По ссылке речь идет об объединении НЕСКОЛЬКИХ массивов в один. А у меня только один массив Му[ ]
Ну так прочтите первый файл в результирующий массив, затем прочтите второй файл во временный массив. Объедините эти два массива, прочтите третий в тот-же временный массив, не забыв изменить его размер до нуля и так далее пока не кончатся массивы. Потом запишите результирующий массив в файл.
Аааа… А зачем вам файл .csv если можно записать массив в .bin файл одним движением мизинца… Конечно все советчики тут имеют свой опыт и каждый по своему понимает алгоритм. Кому-то очень надо после записи такого массива увидеть результат в Excell но если глазами смотреть нет необходимости, то и писать надо так как проще выполнить операцию кастрации…
Второй вариант, дописывать в готовый файл каждый следующий массив. Так тоже можно…
Ну так прочтите первый файл в результирующий массив, затем прочтите второй файл во временный массив. Объедините эти два массива, прочтите третий в тот-же временный массив, не забыв изменить его размер до нуля и так далее пока не кончатся массивы. Потом запишите результирующий массив в файл.
Аааа… А зачем вам файл .csv если можно записать массив в .bin файл одним движением мизинца… Конечно все советчики тут имеют свой опыт и каждый по своему понимает алгоритм. Кому-то очень надо после записи такого массива увидеть результат в Excell но если глазами смотреть нет необходимости, то и писать надо так как проще выполнить операцию кастрации…
Второй вариант, дописывать в готовый файл каждый следующий массив. Так тоже можно…
Мне нужно смотреть глазами....и как я понял в .bin мои глаза увидят но ум не поймет...
А вот второй вариант был бы для меня оптимальным...как мне кажется. Если Вам не сложно не могли бы Вы внести изменения в последнюю версию моего кода в соответствии со вторым вариантом. Так я усвою новую для меня информацию намного быстрее .А если внесете в мой код изменения и в соответствии с первым вариантом , то еще больше обогатите меня новой инфой по mql4 ... и моя благодарность Вам не будет знать никаких границ.....
А правильно я понял, что прочесть файл в массив - это значит записать содержимое файла в массив?
А изменять до нуля нужно размер третьего файла или временного массива?
Спасибо большое за помощь.
Мне нужно смотреть глазами....и как я понял в .bin мои глаза увидят но ум не поймет...
А вот второй вариант был бы для меня оптимальным...как мне кажется. Если Вам не сложно не могли бы Вы внести изменения в последнюю версию моего кода в соответствии со вторым вариантом. Так я усвою новую для меня информацию намного быстрее .А если внесете в мой код изменения и в соответствии с первым вариантом , то еще больше обогатите меня новой инфой по mql4 ... и моя благодарность Вам не будет знать никаких границ.....
А правильно я понял, что прочесть файл в массив - это значит записать содержимое файла в массив?
А изменять до нуля нужно размер третьего файла или временного массива?
Спасибо большое за помощь.
Я говорил о размере временного массива.
Когда-то я пытался разобраться с местом указателя файла, но как-то так получилось, что длина одной строки отличается от другой и соответственно точно попасть в конец строки у меня не получилось. На том я и бросил это занятие, решил что писать массивы в .bin дешевле. Хотя у вас другая ситуация… Вам нужно не конец строки в середине файла, а самый конец файла, это проще, но я этим не занимался. Следовательно, чтобы вам написать несколько строк, я должен написать, проверить перепроверить, а мне лениво… Не обессудьте…
Я говорил о размере временного массива.
Когда-то я пытался разобраться с местом указателя файла, но как-то так получилось, что длина одной строки отличается от другой и соответственно точно попасть в конец строки у меня не получилось. На том я и бросил это занятие, решил что писать массивы в .bin дешевле. Хотя у вас другая ситуация… Вам нужно не конец строки в середине файла, а самый конец файла, это проще, но я этим не занимался. Следовательно, чтобы вам написать несколько строк, я должен написать, проверить перепроверить, а мне лениво… Не обессудьте…
Понял. Спасибо за ценную информацию. Объясните мне пожалуйста такой момент
Если я не ошибаюсь управление в выделенную строку попадает на каждом тике. Для чего на каждом тике делать 365 итераций. Например, на тике N в первую (0) ячейку массива записалось значение. А 355 ячеек - пустые, без значений. Для чего нужно по пустым ячейкам массива прогонять заголовок цикла с последующими итерациями? Почему нельзя вообще обойтись без цикла и в функции FileWrite(eHandle,DoubleToString(My[i][1],Digits)); вместо [i][ всегда ставить [b] Я убирал цикл и делал так как я здесь написал. Почему то в этом случае в файл ничего не писалось....
Спасибо