Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1466
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Эта ошибка из-за невнимательности. Её исправление не решает проблемы.
Вот как бы создать массив из 30-ти цен открытия свечей, чтобы уже в нём искать максимумы и минимумы?
ArrayMaximum
ArrayMaximum
Возвращает индекс максимального значения, а не цену.
Не проверял, но вроде так вы получите индексы минимумов и максимумов открытий (opens) свечей.
Хотя можно получить и сразу цену, а не индексы.
Нигде не нашёл примера цикла на mql с шагом. Это упрощает всё дело.
Только ChatGPT посоветовал мне такое написание:
Буду дальше экспериментировать. Код работает. Спасибо.
А ошибка "array out of range" возникает, если не делать ArrayResize.
Эта ошибка из-за невнимательности. Её исправление не решает проблемы.
Вот как бы создать массив из 30-ти цен открытия свечей, чтобы уже в нём искать максимумы и минимумы?
А в чём проблема? Объявите массив temp[] и в него копируйте по 30 элементов и в нём ищите индекс минимального\максимального значения. А если в конце будет меньше 30ти, то скопируется сколько осталось. И в этом случае, я лучше-бы использовал цикл while()
А в чём проблема? Объявите массив temp[] и в него копируйте по 30 элементов и в нём ищите индекс минимального\максимального значения. А если в конце будет меньше 30ти, то скопируется сколько осталось. И в этом случае, я лучше-бы использовал цикл while()
Да, можно и так. Плохо соображаю, поэтому спрашиваю совета.
Да, можно и так. Плохо соображаю, поэтому спрашиваю совета.
В статическом массиве задается размер константный, его не изменить, в динамическом его можно менять, но размер массива задается! т.е. размер массива известен и индексы элементов от 0 до конца. <= выход за пределы как раз потому что индексы элементов с нуля, и индекс последнего элемента меньше на единицу размера массива.
Все в Ваших руках))))
В статическом массиве задается размер константный, его не изменить, в динамическом его можно менять, но размер массива задается! т.е. размер массива известен и индексы элементов от 0 до конца. <= выход за пределы как раз потому что индексы элементов с нуля, и индекс последнего элемента меньше на единицу размера массива.
Все в Ваших руках))))
Это как понять? Вы считаете чтобы скопировать какое-то количество элементов из одного массива в другой, какой-то temp[], то перед копированием надо задать размер массива ArrayResize(temp, new_size); ???
Да, можно и так. Плохо соображаю, поэтому спрашиваю совета.
А по хорошему вам и временный массив не нужен.
Вот этот код
ищет максимум среди 15ти оставшихся элементов, несмотря на то, что задано искать среди 20ти элементов.
Таким образом вам лучше пользовать цикл while() и не заморачиваться с количеством оставшихся элементов массива.
Это как понять? Вы считаете чтобы скопировать какое-то количество элементов из одного массива в другой, какой-то temp[], то перед копированием надо задать размер массива ArrayResize(temp, new_size); ???
Нет конечно, имел ввиду, что размер массива всегда известен или его можно узнать. И его можно и нужно контролировать на выход индекса за пределы.
Нет конечно, имел ввиду, что размер массива всегда известен или его можно узнать. И его можно и нужно контролировать на выход индекса за пределы.
Контролировать можно, но не всегда нужно…