Den писал(а):Нет, ну как Input.Close[1] > Input.Close[0] может быть задним числом-то? Бар [1] закрылся ФИЗИЧЕСКИ. Индикатор сравнивает закрытый бар в текущим и если условие совпадает , то рисует сигнал.
Вы показываете УСЛОВИЕ и спрашивает про то, где тут предыдущий бар.
В условии вы сравниваете CLOSE текущего бара (это не обязательно последний, как вы думаете, в этом ваша ошибка) с предыдущим баром [1].
А сигнал рисуете не на текущем, а на предыдущем баре в серии H[1], L[1] !!!
Den писал(а):Какой по-вашему рисует НЕ ЗАДНИМ ЧИСЛОМ?
Любой, другой, который рисует на текущем баре [0] сигнал.
Вам надо понять логику как работает отрисовка индикатора.
[0] это всегда текущий бар (даже все предыдущие это тоже [0])
т.е. относительно каждого из них есть смещение НАЗАД В ПРОШЛОЕ, а это [1] - 1 бар назад, [2] - 2 бара назад и так далее
так вот визуально бары все которые мы видим они все в индикаторе в evaluate() имеют индекс в ряде Input = 0, т.е. они все имеют смещение 0 и функция evaluate() расчет ведет для каждого из них
(!!! это принципиально важно!!!), а вот относительно каждого из них мы можем заглянуть в историю со смещением [1],[2],[3] и т.д.
так вот сигналы надо рисовать на [0] баре, а не задним числом, т.е. со смещением в истории назад, как делали вы в сериях H[1], L[1].
НЕ ПУТАЙТЕТекущий бар и
последний барПоследний бар так же в evaluate имеет индекс [0], а все стоящие перед ним это [1],[2]... и т.д.
У последнего бара совпадает его CurrentIndex с MaxIndex.
Читайте инструкцию, думаю вопросов станет меньше. Смотрите код других индикаторов.