В статическом массиве задается размер константный, его не изменить, в динамическом его можно менять, но размер массива задается! т.е. размер массива известен и индексы элементов от 0 до конца. <= выход за пределы как раз потому что индексы элементов с нуля, и индекс последнего элемента меньше на единицу размера массива.
Все в Ваших руках))))
Это как понять? Вы считаете чтобы скопировать какое-то количество элементов из одного массива в другой, какой-то temp[], то перед копированием надо задать размер массива ArrayResize(temp, new_size); ???
Да, можно и так. Плохо соображаю, поэтому спрашиваю совета.
А по хорошему вам и временный массив не нужен.
intArrayMaximum(
constvoid& array[], // массив для поиска int start=0, // с какого индекса начинаем поиск int count=WHOLE_ARRAY// количество проверяемых
);
Вот этот код
double open[];
int copy = CopyOpen(_Symbol, PERIOD_CURRENT, 0, 100, open);
int arrMaximum = ArrayMaximum(open, 85, 20);
ищет максимум среди 15ти оставшихся элементов, несмотря на то, что задано искать среди 20ти элементов.
Таким образом вам лучше пользовать цикл while() и не заморачиваться с количеством оставшихся элементов массива.
Это как понять? Вы считаете чтобы скопировать какое-то количество элементов из одного массива в другой, какой-то temp[], то перед копированием надо задать размер массива ArrayResize(temp, new_size); ???
Нет конечно, имел ввиду, что размер массива всегда известен или его можно узнать. И его можно и нужно контролировать на выход индекса за пределы.
А в чём проблема? Объявите массив temp[] и в него копируйте по 30 элементов и в нём ищите индекс минимального\максимального значения. А если в конце будет меньше 30ти, то скопируется сколько осталось. И в этом случае, я лучше-бы использовал цикл while()
Зачем мне контролировать размер массива temp[]?
Размер массива откуда копируем в temp[] контролировать надо, не спорю… А зачем мне размер массива в котором ищем максимум\минимум?
leonerd #: Напомните, пожалуйста, если есть вызов веб сокет соединения из DLL, вызываемого экспертом, нужно ли разрешать адрес хоста в настройках терминала?
Да, терминал только по разрешенным явно тыркается.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
В статическом массиве задается размер константный, его не изменить, в динамическом его можно менять, но размер массива задается! т.е. размер массива известен и индексы элементов от 0 до конца. <= выход за пределы как раз потому что индексы элементов с нуля, и индекс последнего элемента меньше на единицу размера массива.
Все в Ваших руках))))
Это как понять? Вы считаете чтобы скопировать какое-то количество элементов из одного массива в другой, какой-то temp[], то перед копированием надо задать размер массива ArrayResize(temp, new_size); ???
Да, можно и так. Плохо соображаю, поэтому спрашиваю совета.
А по хорошему вам и временный массив не нужен.
Вот этот код
ищет максимум среди 15ти оставшихся элементов, несмотря на то, что задано искать среди 20ти элементов.
Таким образом вам лучше пользовать цикл while() и не заморачиваться с количеством оставшихся элементов массива.
Это как понять? Вы считаете чтобы скопировать какое-то количество элементов из одного массива в другой, какой-то temp[], то перед копированием надо задать размер массива ArrayResize(temp, new_size); ???
Нет конечно, имел ввиду, что размер массива всегда известен или его можно узнать. И его можно и нужно контролировать на выход индекса за пределы.
Нет конечно, имел ввиду, что размер массива всегда известен или его можно узнать. И его можно и нужно контролировать на выход индекса за пределы.
Контролировать можно, но не всегда нужно…
Контролировать можно, но не всегда нужно…
Хе, тогда начинать после выхода за пределы)))
Вот смотри…
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Вопросы от начинающих MQL5 MT5 MetaTrader 5
Alexey Viktorov, 2023.06.27 21:19
А в чём проблема? Объявите массив temp[] и в него копируйте по 30 элементов и в нём ищите индекс минимального\максимального значения. А если в конце будет меньше 30ти, то скопируется сколько осталось. И в этом случае, я лучше-бы использовал цикл while()
Зачем мне контролировать размер массива temp[]?
Размер массива откуда копируем в temp[] контролировать надо, не спорю… А зачем мне размер массива в котором ищем максимум\минимум?
Напомните, пожалуйста, если есть вызов веб сокет соединения из DLL, вызываемого экспертом, нужно ли разрешать адрес хоста в настройках терминала?
Да, терминал только по разрешенным явно тыркается.
Да, терминал только по разрешенным явно тыркается.
дак тут не терминал полезет, а DLL
дак тут не терминал полезет, а DLL
для dll не надо разрешенный хост в мт. в мт достаточно разрешить использование dll. а сама dll может творить абсолютно что угодно