//---- последний посчитанный бар будет пересчитан if(counted_bars>0) counted_bars--;В смысле, что он и так будет пересчитан.... и без counted_bars--;
Напишите два условия и отпринтуйте результаты. Первый принт должен показать Вам что вобще возвращает функция IndicatorCounted(), какое число на каждом новом тике? Второй принт пусть вернёт Вам значение IndicatorCounted(), но только в том случае, если пришёл первый тик новой свечи.
Чтобы не вспоминать каждый раз, я для себя сделал небольшую шпаргалочку: -
// индекс начала пересчета int counted_bars = IndicatorCounted(); int indx = Bars - counted_bars - 1; // в первый заход counted_bars = 0, indx = Bars - 1 (номер самого левого БАРа) // на первом тике нулевого бара counted_bars = Bars - 2, indx = 1 (пересчитаем предпоследний БАР) // на следующих тиках counted_bars = Bars - 1, indx = 0 (нулевой, он же текущий, БАР)... и вставляю ее целиком в каждый индикатор.
Спасибо отозвавшимся за пример и совет также.
Да уж, действительно, пока сам не пощупаешь, не поймешь.
И вот, что у меня вышло:
А вот здесь я уже посмеялся!))) Но вначале я даже подумал, что нашел ошибку у прораба. Так, что можете в анналы)))
Все оказалось просто: я встроил функции печати в готовый индикатор под кодом:
if(iCountedBars > 0) iCountedBars--;
Чего изучал, на том и запутался. Поэтому разница на IndicatorCounted() и была 3 и 2 вместо 2 и 1))
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
По поводу функции:
Вот ход моих мыслей:
Последний бар всегда измененный потому, что отличается на один тик от того же бара или предыдущего.
Домустим имеем 10 баров. На новом тике IndicatorCounted() должен выдать 9.
Значит:
Тоесть мы в любом случае мы перещитываем последний бар.Даже, допустим, мы пропустили тики и появился следующий бар. Тогда
Вопрос! Зачем тогда условие:
Или все же в документации правильно было бы написать, что "Функция возвращает количество баров, присутсвующих при последнем вызове индикатора." Тогда условие операцию counted_bars--; действительно имеет смысл делать.
Что скажете?