[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 306
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Массив "бесконечной" длины можно объявить в индикаторе. Объявить и затем в цикле сразу вписывать найденные значения в массив. Вопрос лишь в том, как осуществить передачу нужной Вам выборки в советника/скрипт? Средства есть, но нужно оценить трудоёмкость. Может действительно проще будет делать 2 прогона - в первом подсчитываем число отфильтрованных значений, затем меняем размерность массива, а во втором вносим значения в массив?
Спасибо, но вариант с индикатором не подходит - до передачи полученной выборки в советник возникает проблема передачи условий выборки из советника в индикатор.
Объявить массив больше максимально необходимого размера.
Точно :) Сработает, если увеличить размер в разы. Например, мы заранее знаем, что число отфильтрованных значений не может превышать тысячу. Объявляем массив размерностью в несколько тысяч ячеек и дело в шляпе :)
Тольк это отнимет у нас часть нужой оперативы. :(
Точно :) Сработает, если увеличить размер в разы. Например, мы заранее знаем, что число отфильтрованных значений не может превышать тысячу. Объявляем массив размерностью в несколько тысяч ячеек и дело в шляпе :)
Тольк это отнимет у нас часть нужой оперативы. :(
Если "мы заранее знаем, что число отфильтрованных значений не может превышать тысячу", то достаточно объявить массив размерностью 1000.
https://docs.mql4.com/ru/math/MathPow не? Или элементарные операции это условие задачи. тогда вариант http://bpascal.ru/download/desc/436.php если уж совсем все на ручнике делать, то реализовать экспоненту и логарифм своими функциями.
Добрый день, нужен совет: в цикле происходит поиск значений, удовлетворяющих определенным условиям. Найденные значения записываются в массив. Заранее не известно, сколько значений будет найдено. соответственно неизвестен размер массива, который нужно объявить. С точки зрения экономии времени и ресурсов не хотелось бы делать два прогона (чтобы в первом прогоне посчитать количество найденных значений, объявить массив и уже во втором прогоне записать в массив данные). Можно ли как-то получить требуемый результат за один прогон?
Если "мы заранее знаем, что число отфильтрованных значений не может превышать тысячу", то достаточно объявить массив размерностью 1000.
А как же запасной вариант на случай форсмажора? Делать код, сообщающий об ошибке и блокирующий работу советника? Дык человек может не увидеть - ну просто в тот момент был на работе.
Да, действительно, вариантов решения проблемы более одного. Думаю всё же лучшим будет тот, который предложил Zhunko - динамически увеличивать размерность масива внутри фильтрующего цикла. Честно говоря, я просто восхищён таким ответом. Мне такое и в голову не пришло :)
Думаю всё же лучшим будет тот, который предложил Zhunko - динамически увеличивать размерность масива внутри фильтрующего цикла. Честно говоря, я просто восхищён таким ответом. Мне такое и в голову не пришло :)
Решение действительно оригинальное, надо попробовать. Вот только при переобъявлении массива не потеряются ли данные из-за переинициализации?
Частенько так делаю. Создаю какой-то первоначальный массив. Потом (при необходимости) увеличиваю его на какую-то величину (на один нельзя, слишком долго операции с массивами выполняются) и просто в работе контролирую размер фактически заполненного массива. Проблем пока не было
слишком долго операции с массивами выполняются
Долго выполняются любые операции с массивами или только какие-то определенные?
Особенно изменение размера массива. Лучше их делать как можно реже