Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Prival, тут все правильно объяснили. Речь идет о первых барах цены, а не первых барах, на которых появляются значения вашего индикатора. Чтобы получить нужный вам эффект, вам нужно пересчитывать начальный индекс бара. Т.е. в вашем случае он будет не 50, а 50+N, где N - индекс бара, на котором ваш индикатор начинает выдавать что-то осмысленное (т.е. видимое на графике).
Вставил SetIndexDrawBegin(0,History+50);
эффект тодже. Рисует с 100 бара. Счас постараюсь упростить индикатор, и выложить. Поправте его так что бы он делал то что нужно.
вот индикатор. Наличие или отсутсвие в нем команды SetIndexDrawBegin(0,50); никаким образом не влияет на отрисовку.
Что я делаю не так?
Индикатор я приложил посмотрите его пожалуйста, я наверное что то не так там делаю.
Индикатор - не очень, четно говоря. Кроме того, он использует в своих расчетах какой-то другой индикатор 04_Kal.
вот индикатор. Наличие или отсутсвие в нем команды SetIndexDrawBegin(0,50); никаким образом не влияет на отрисовку.
Что я делаю не так?
так
Функция SetIndexDrawBegin() необходима для подавления вывода первых N значений индексного массива. Например, Вы рассчитываете сложную сглаженную, и индикатор начнет правильно отрисовывать свои значения только через 30 баров с начальной точки, тогда объявите SetIndexDrawBegin(номер_индекса, 30). Тогда первые тридацать значений будут корректно вычислены и сохранены в индикаторном буфере, но отображаться не будут.
Т.е. приход нового бара увеличивает историю на один бар и, стало быть, количество неотображаемых баров при этом не изменилось. Они же слева.
Понятно. Только это надо в справке написать. Про динамику этого явления сразу не поймёшь.
Спасибо Всем за помощь.
Если бы в хелпе (в примерах) была вот такая строчка
SetIndexDrawBegin(0,(Bars-History) +50);
былобы сразу понятнее.
Спасибо Всем за помощь.
Если бы в хелпе (в примерах) была вот такая строчка
SetIndexDrawBegin(0,(Bars-History) +50);
былобы сразу понятнее.
В примерах такой строчки никогда не будет хотя бы по причине плохого стиля написания данного индикатора. Вместо того, чтобы строить правильные экономные расчеты индикатора, народ начинает приделывать к таким индикаторам костыли в виде ограничения на количества раз за разом пересчитываемых баров.
Нельзя привыкать к такому стилю программированию, он неизбежно отражается на способе мышления.
Я в аналогичных ситуациях просто обнуляю значение, уходящее из нужного мне окна отрисовки. В данном случае что-то вроде
Спасибо!
Это работает.
Всё таки, начало данных, номер...
Начало данных справа. Это логично воспринимается, потому, как бары начинаются с нуля.
Из этого текста можно понять, что указав номер бара (он не изменен на графике и всегда находится в одном месте) можно расчитывать на отрисовку именно с него.
В примерах такой строчки никогда не будет хотя бы по причине плохого стиля написания данного индикатора. Вместо того, чтобы строить правильные экономные расчеты индикатора, народ начинает приделывать к таким индикаторам костыли в виде ограничения на количества раз за разом пересчитываемых баров.
Нельзя привыкать к такому стилю программированию, он неизбежно отражается на способе мышления.
Приведенный выше индикатор, неэкономичен ? он неправильно написан ? где там раз за разом пересчитываються бары ?
Если я правильно понимаю там 0 бар вообше не считаеться.
Rosh если вас не затруднит как бы вы написали индикатор (который приведен мною ниже, вычитание машек).
Этот индикатор, его логику построения брал из учебника SK https://book.mql4.com/ru/samples/icustom просто вставил в те места где нужно свои расчеты, а оказывается, так нельзя ((
P/S/ Я уже несколько раз изучал, ваши уроки. Но видно способ мышления никак не могу переделать, никак я не могу с индикаторами подружиться