
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Хорошо, давайте попробуем английскую версию MQL.
Спасибо за ваш пост с кодом. Он сэкономил мне время. Я пробовал использовать массивы MQL, и они были запутанными. Я был очень подавлен тем, что мне снова нужно писать базовые структуры, которые должны были быть там, но потом я нашел ваш код, который сэкономил мне время на изучение массивов и того, как сделать их динамически увеличивающимися. Замечательное спасибо.
Надеюсь, я смогу вам помочь! Код ниже работает для всех типов данных. Он будет работать и с объектами, но метод Contains (поиск) может не сработать. Я тестировал его только на типах (double, int, bool). Со строками тоже могут возникнуть проблемы, и код, возможно, придется расширить.
Тогда вы можете объявить его для всех типов, которые вам нужны, следующим образом:
надеюсь, это кому-нибудь поможет
Пожалуйста, не принимайте во внимание мое предложение выше использовать динамический массив для любого типа данных. Уже объявлен общий CArrayList. Пожалуйста, используйте его. Я столкнулся с проблемой использования объектов, которая была решена в этой теме: https: //www.mql5.com/en/forum/358432.
Похоже, ошибка в функции arrayResize(), в примере содержимое массива 1, 1, 3 при нормальной индексации не 1, 2, 3. См. этот пример:
В добавленной функции arraySetAsSeries(), похоже, затронута функция arrayresieze, см. этот пример:Шаги:
1. ar = {}
2. ar = {9, 8}
3. ar = {9, 8, 0, 8, 0, 0}
4. Установите в качестве серии true:
ar = {0, 0, 8, 0, 8, 9}
5. Измените размер до 4
ar = {0, 0, 8, 0}
6. Установите в качестве серии false:
ar = {0, 8, 0, 0}
7. Установите в качестве серии true:
ar = {0, 0, 8, 0}
8. Измените первый элемент a[0]
ar = {8, 0, 8, 0}
Я не знаю, что такое resize массива (3 -5) берет значения и копирует в новые позиции, 6 вперед берет случайные значения, я думаю. Я предпочитаю сначала выполнить resize(), а затем setasseries(), как здесь: