Не роботает тестер выбивает: 2023.04.20 17:20:30.885Testerno optimized parameter selected, please check input(s) to be optimized and set start, step and stop values
2023.04.20 16:03:08.754TesterCloud servers switched off
Есть решение или это мт5 лагает?
либо выключите оптимизацию, либо настройте ее корректно. Если не знаете как или что это такое - то просто выключите и тестируйте в обычном режиме
В результате у Вас должно появиться 5 файлов (на каждый день недели).
В тех случаях, когда Вы объявили переменную и далее производите с этой переменной сравнение или действия кроме присвоения, необходимо первоначально присвоить ей нужное значение. По умолчанию, в инициализированной переменной не обязательно будет ноль, то же самое касается элементов массива. Так неправильно:
int b,B;
double My[366];
if(B!=Day()) ...; //в первый раз B имеет неизвестное значение
b++; //начали увеличивать неизвестное значение
FileWrite(eHandle,DoubleToString(My[i],Digits)); //ранее в OnTick() не все элементы массива могли быть заполнены, поэтому в файл может быть выведен мусор вместо нулей
Используйте #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.
Но если есть вариант инициализации массива на глобальном уровне при помощи функции , буду Вам очень признателен если подскажете мне его.
Ничего не понял объединение двух сортированных массивов применяй. ---- если были-бы указатели как C можно было-бы писать быструю функцию объединения многих массивов. Поэтому мне нужно все массивы с временем объединить в один
Если я правильно Вас понял еще не читая материал по ссылке, Вы предлагаете для моего случая объединять массивы. Но не объединять содержимое файлов с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] Я убирал цикл и делал так как я здесь написал. Почему то в этом случае в файл ничего не писалось....
Думаю так: создать двумерный массив 5х366. Перед началом прогона загружать из файла всё имеющиеся колонки. В момент прогона заполнить нужный столбец из пяти. По окончании выгрузить весь массив целиком заменив предыдущий файл. Но такое писать не пять минут. Не обещаю, что смогу быстро сделать. Сами тоже попробуйте писать.
Не роботает тестер выбивает: 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] Я убирал цикл и делал так как я здесь написал. Почему то в этом случае в файл ничего не писалось....
Спасибо