... и 350 лет ждем когда закончится оптимизация эксперта на индикаторе с такой функцией.
К сожалению эта првада. Такая конструкция с массивами очень сильно снижет быстродействие.
Да. Это будет медленнее, чем если использовать инд. буфер. Кто ж спорит?
Я ведь о другом.
По-поводу "очень". Знаете, что-то не заметил заметного торможения. Эмуляция происходит на 1-м тике нового бара. Задержку оценить сложно - т.к. она не заметна. Можно попробовать организовать цикл и замерить.
А у вас что, эмуляция занимает больше времени, чем работа самого индикатора???)))
Единственное что, это отъедает память. Знаете, ваши разговоры - это в пользу бедных, что называется.
Потом необязательно использовать длину равную всей загруженной истории. Только необходимую для нормальной работы. (В большинстве случаев хватает 2 ячеек.)))
Но опять же - я о другом (см. хэдер темы).
К сожалению эта првада. Такая конструкция с массивами очень сильно снижет быстродействие.
И еще. Использование таких эмулированых массивов, когда не хватает оригинальных, во многих случаях как раз и повышает быстродействие.
Например, в них можно занести значения вызываемых из программы индикаторов и обращаться уже не к индикаторам, а к массивам. Если нужно много обращаться (например, в цикле), то нет нужды каждый раз вызывать индикатор, а просто взять готовое значение из ячейки.
Какие песни пел я ей про Север дальний!
Я думал: вот чуть-чуть - и будем мы на "ты".
Но я напрасно пел о полосе нейтральной -
Ей глубоко плевать, какие там цветы.
© В. Высоцкий
В деньгах? Или в быстроте работы эксперта?
Я вот думаю, что в деньгах. Вот смотри: сделал ты эксперт, быстрый эксперт, но он денег не зарабатывает. Так в чем тут сила?
Вот и брат говорит, что в деньгах...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Порой бывает необходимость (из-за свойств) использовать индикаторный массив для хранения внутренних расчетных данных. Но что делать, если они все заняты под вывод на экран? - Их придется эмулировать. По этой теме инфу в форуме найти можно, но не очевидно . Поэтому отдельно и конкретно.
Свойства массива, привязанного к буферу таковы:
- индексация идет "задом наперед" - последний элемент такого массива имеет индекс 0;
- длина массива равна кол-ву загруженных в терминал баров - Bars;
- при поступлении нового бара индексы ячеек увеличиваются на 1;
Вот простая функция для эмуляции индикаторных массивов:
Сперва устанавливается прямое направление индексирования. При увеличении длины (при добавлении нового бара) массива добавляется пустая ячейка с новым номером. После установки обратного индексирования эта ячейка оказывается под нулевым индексом. Старые значения сохранены и смещены. Вот, собственно, и все.
Натурально, массивы для эмуляции должны быть объявлены в головной части программы. Вызов ф-ии нужно делать до операций с этими массивами (например, в начале ф-ии start()).