набросать шаблон типа :
template<T> ArrayInitialize ( T &arr[], const T &value) .....
в структурах как и в классах можно обьявить конструктор
в структурах как и в классах можно обьявить конструктор
Да, я в курсе. Конструктор объявлен.
Я только что отдебажил ArrayInitialize() и она работает только при связывании инициализируемого буфера с индикаторным буфером, а я этого не знал.
Как я понял, ArrayInitialize() выполняет ArrayFree(),ArrayResize(),ArrayFill().
По сути моего вопроса, мне нужен ArrayResize() + конструктор структуры.
задача не совсем понятна
если у Вас все упирается в
Первоначального количество элементов неизвестно.
тогда
- или копировать содержимое во временные массивы/структуры - понятно, что это расход ресурсов
- или уходите из структур в классы и используйте вместо массива структур - список классов, со списками Вы можете и добавлять новые элементы и удалять
в общем я не понял проблему (((
задача не совсем понятна
если у Вас все упирается в
тогда
- или копировать содержимое во временные массивы/структуры - понятно, что это расход ресурсов
- или уходите из структур в классы и используйте вместо массива структур - список классов, со списками Вы можете и добавлять новые элементы и удалять
в общем я не понял проблему (((
Задача следующая
Я пишу индикатор по свечному анализу.
Массив со структурой нужен для хранения в структуре копируемых данных о свече (time,open,close,high,low), а так же вычисляемых параметров: типа свечи бычья/медвежья, направление тренда, паттерн свечи (дожи, молот, марибозу, длинная/короткая и т.д.), формация в которую свеча входит.
При первом проходе в индикаторе, по каждой свече в массиве заполняются поля структуры.
Далее, после поступления новой свечи - она должна добавляться в массив.
И на данный момент я столкнулся с проблемой - как правильно расширять динамический массив и в каком месте, чтобы не плодить сущности.
Задача следующая
Я пишу индикатор по свечному анализу.
Массив со структурой нужен для хранения в структуре копируемых данных о свече (time,open,close,high,low), а так же вычисляемых параметров: типа свечи бычья/медвежья, направление тренда, паттерн свечи (дожи, молот, марибозу, длинная/короткая и т.д.), формация в которую свеча.
При первом проходе в индикаторе, по каждой свече в массиве заполняются поля структуры.
Далее, после поступления новой свечи - она должна добавляться в массив.
типичная дилемма :
набор структур vs структура наборов.
работая с индикаторными буферами лучше второе. То есть каждое свойство ваших "свечей" - отдельный индикаторный буфер.
Далее, после поступления новой свечи - она должна добавляться в массив.
я предложил Вам списки, именно так и будет все работать - добавили элемент по открытию нового бара и заполнили содержимое - и структуры Вам не нужны, поля в классе time,open,close,high,low....... опишете и заполняйте их
https://www.mql5.com/ru/docs/standardlibrary/datastructures/carrayobj
типичная дилемма :
набор структур vs структура наборов.
работая с индикаторными буферами лучше второе. То есть каждое свойство ваших "свечей" - отдельный индикаторный буфер.
Спасибо, я как раз к этому пониманию и пришел, что проще привязаться к индикаторным буферам, чем плодить кучу функций.
я предложил Вам списки, именно так и будет все работать - добавили элемент по открытию нового бара и заполнили содержимое - и структуры Вам не нужны, поля в классе time,open,close,high,low....... опишете и заполняйте их
https://www.mql5.com/ru/docs/standardlibrary/datastructures/carrayobj
Спасибо, я как раз после реализации в функциональном стиле, хочу реализовать на классах.
Решение разными способами - это скажем так для построения ассоциативности в голове между проблемами и решаемыми методами :)
зависит от структуры данных, которую Вы хотите хранить/обрабатывать
если Вы можете "влезть" в double - однозначно индикаторные буфера с параметром INDICATOR_CALCULATIONS , эти буфера терминал сам и сдвигает по открытию бара и память для них распределяет
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Привествую.
Для инициализации динамических массивов элементами которых являются стандартные типы данных есть функция ArrayInitialize().
Возникла ситуация, когда мне необходима аналогичная функция в индикаторе, но для инициализации динамического массива где элементы массива кастомная структура с разными типами данных.
Вопрос, как правильно реализовать функцию инициализации динамического массива, где элементами массива является структура?
Первоначального количество элементов неизвестно.