Вопрос к разработчикам - как сделать виртуальный буфер в индикаторе ? - страница 3

 
TheXpert:
Ваш вариант по идее неправильно отрабатывает вставки истории.

К сожалению, да, если они происходят внутри уже рассчитанных баров.

Для меня вообще загадка, как это (вставка в середину) работает в самом МТ. Здесь либо нужна изначальная привязка каждого элемента индикаторного буфера к конкретному времени, либо в самом механизме обработки потока истории есть блок, который рассчитывает правильное место вставки, раздвигает массив и пишет в середину данные... Хотя бы понятно, почему количество буферов ограничено...Вручную сделать такое не пытался, да и смысла нет большого - подкачку середины истории на рабочем счете никто никогда не использует, а на тесте можно и перезагрузить индикатор разок.

 
excelf:

Не понятно как ArrayResize меняет размер. Копирует ли он каждый раз данные из массива в массив или нет? А вообще ваш вариант не плохой, возможно я им воспользуюсь, спасибо.
Если я что-то в чем-то понимаю, то нет. Массив, насколько я представляю, организован в виде структуры, состоящей из собственно выделенной памяти и целого числа ArraySize - размера. Причем ArraySize не обязательно совпадает с реальным размером памяти, она выделяется при необходимости блоками по N килобайт. После этого можем ресайзить массив сколько угодно, изменяется только число ArraySize, до тех пор, пока не превысим объем выделенной памяти - вот тогда надо снова проводить операцию реального выделения. Поправьте меня кто-нибудь, если не то пишу...
 
excelf:

Не понятно как ArrayResize меняет размер. Копирует ли он каждый раз данные из массива в массив или нет?


блин, ну неужели вам попробовать слабо? обломс на клаву давить?

 
excelf:
Собственно как буфер в индикаторе работает? Можно предположить что это большой массив, у которого меняется размер когда количество баров больше его размера. А при обращении к первому элементу мы получаем последний последний элемент массива. На сколько элементов увеличивается массив при его заполнении? Или возможно индикаторный буфер это комбинация массивов? Вообщем хочется сделать средствами языка, сделать буферы аналогичные индикаторным.

Это стэк.
 
У него размер не меняется, по определению. Стэк, он и в Африке стэк.
 
tara:
У него размер не меняется, по определению. Стэк, он и в Африке стэк.

С какого макара это стек ? Обращение к любому элементу занимает одинаковое время. Это не может быть стек чисто технически.
 
sergeev:

блин, ну неужели вам попробовать слабо? обломс на клаву давить?

Если вы знаете, расскажете нам, а если нет тогда не надо всех посылать.
 
excelf:

С какого макара это стек ? Обращение к любому элементу занимает одинаковое время. Это не может быть стек чисто технически.

А как еще, чисто технически, Вы это реализовали-бы ?
 
tara:

А как еще, чисто технически, Вы это реализовали-бы ?

Однозначно можно сказать что это массив и любой разработчик реализовал так же. Интересно как его обжуливает среда mql4.
 
excelf:

Однозначно можно сказать что это массив и любой разработчик реализовал так же. Интересно как его обжуливает среда mql4.

Элементарно,Ватсон. Как только Вы добавляете в этот массив что-то новенькое, из него тотчас-же уходит нечто старенькое :)
Причина обращения: