Виктор, ты меня извини, но такой чуши я ещё не читал... Для чего в цикле заполнять массив значениями если существует специальная функция
Заполняет числовой массив указанным значением.
void ArrayFill( void& array[], // массив int start, // индекс начального элемента int count, // количество элементов void value // значение, которым заполняется массив );
А про индикаторный буфер вообще ничего не понятно. Кто и где инициализирует нулём индикаторный буфер?
Конечно мысль попользовать массив структур в качестве индикаторного буфера интересна, но на столько сомнительна...
Виктор, ты меня извини, но такой чуши я ещё не читал... Для чего в цикле заполнять массив значениями если существует специальная функция
Заполняет числовой массив указанным значением.
Алексей, а разница то какая? Функция ArrayFill() тоже самое, что я по ходу придумал когда писал свой вопрос. Разница лишь в том, что в ArrayFill() имеется множество перегрузок и она универсальна. И не более того. А я изобразил, как это выглядит изнутри в плане одной перегрузки и всё... Где тут тупость то? :)
Идём дальше.. На самом деле, у меня буферы инициализируются не в ИНИТЕ. А написал я так сверху неподумав. Но это сути вопроса не меняется. Возьмём, например, стандартный индикатор ZigZag. В нём имеется функция InitializeAll().
int InitializeAll() { ArrayInitialize(ExtZigzagBuffer,0.0); ArrayInitialize(ExtHighBuffer,0.0); ArrayInitialize(ExtLowBuffer,0.0); //--- first counting position return(Bars-InpDepth); }
Размер данным инициализируемым буферам не задаётся да момента их инициализации. Тогда какой резон их инициализировать? Я не представляю реализацию подобного алгоритма инициализации массива у которого нет чёткой длинны !
Алексей, а разница то какая? Функция ArrayFill() тоже самое, что я по ходу придумал когда писал свой вопрос. Разница лишь в том, что в ArrayFill() имеется множество перегрузок и она универсальна. И не более того. А я изобразил, как это выглядит изнутри в плане одной перегрузки и всё... Где тут тупость то? :)
Идём дальше.. На самом деле, у меня буферы инициализируются не в ИНИТЕ. А написал я так сверху неподумав. Но это сути вопроса не меняется. Возьмём, например, стандартный индикатор ZigZag. В нём имеется функция InitializeAll().
Размер данным инициализируемым буферам не задаётся да момента их инициализации. Тогда какой резон их инициализировать? Я не представляю реализацию подобного алгоритма инициализации массива у которого нет чёткой длинны !
Разница вот такая
И чушь это далеко не всегда тупость.
Я никогда не смотрел ZigZag, но судя по индикатору хуйкинАши, даже в базовых индикаторах МТ такой чуши можно встретить, что крышу трудно удержать чтобы не съехала.
Может по вызову InitializeAll какая-то отложенная инициализация идет?
Разница вот такая
Ну как бы сказать, тут разницы не видя реализации не понять т.к. заполнения в цикле чередуются абы как. Потому я и не любитель встроенных средств языков, т.к. хз что думал тот или иной разработчик, когда писать тот или ной класс или функцию, как таковую.
Хотя, нам то какая разница. Вопрос не в том. Инициализация произойдёт как у меня заданным числом, так и при помощи ArrayFill(). Но я спрашивал о том, зачем массив, размер которого не задан, инициализировать некоторым значением. Смысл в этом какой? Я это, кстати, не у метаквотовцев изначально встретил в терминале (эти индюки я особо не копал, т.к. мне не нравится как они написаны), а у некоторых других авторов, к которым я отношусь весьма положительно, за их профессионализм. Но как бы то ни было, инициализация часто реализуется. Зачем это делается?
Ну как бы сказать, тут разницы не видя реализации не понять т.к. заполнения в цикле чередуются абы как. Потому я и не любитель встроенных средств языков, т.к. хз что думал тот или иной разработчик, когда писать тот или ной класс или функцию, как таковую.
Хотя, нам то какая разница. Вопрос не в том. Инициализация произойдёт как у меня заданным числом, так и при помощи ArrayFill(). Но я спрашивал о том, зачем массив, размер которого не задан, инициализировать некоторым значением. Смысл в этом какой? Я это, кстати, не у метаквотовцев изначально встретил в терминале (эти индюки я особо не копал, т.к. мне не нравится как они написаны), а у некоторых других авторов, к которым я отношусь весьма положительно, за их профессионализм. Но как бы то ни было, инициализация часто реализуется. Зачем это делается?
Я тоже к некоторым отношусь с уважением, к одному из них отношусь с большим уважением, я учился на его примерах, но и у них есть такие места которые я не приемлю чисто из логической бесполезности некоторых частей кода.
Если понимаешь что это бесполезно так и не делай эту инициализацию. Почему-то мне кажется что даже автор такого кода ответить не сможет. Разве что "так все делают"...
Я тоже к некоторым отношусь с уважением, к одному из них отношусь с большим уважением, я учился на его примерах, но и у них есть такие места которые я не приемлю чисто из логической бесполезности некоторых частей кода.
Если понимаешь что это бесполезно так и не делай эту инициализацию. Почему-то мне кажется что даже автор такого кода ответить не сможет. Разве что "так все делают"...
Ну так загляните, и проверьте это.. )
А не проверить однозначно. Разработчики знают наверняка.
Есть вариант. Вызывать ArrayInitialize в OnCalculate при prev_calculated = 0
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
По некоторым причинам меня не устраивает вариант использования встроенных буферов терминала. Я не говорю вообще о любых ситуациях, а лишь а некоторых индикаторах, где удобнее будет работать с пользовательским массивом структур.
В общем-то появилось несколько вопросов, о которых я раньше не задумывался. Обычно, в индикаторах в функции OnInit() инициализируют каждый массив-буфер. Хотя, объявляется данный массив, как правило, без задания размера оного, например:
Так вопрос первый в том, что если нет чёткой длинны, то какой резон данный буфер-массив инициализировать нулём или пустым значением? Ведь по сути инициализациях некоторого диапазона данных некоторым значением, есть заполнение диапазона данных неким значением. Например:
В данном случае всё логично, а какой резон инициализировать массив, количество элементов в котором не ведомо?