Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Сделайте примерно вот так, пусть у вас функция поиска вершинки сама ищет является ли переданный бар вершинкой, чтобы в основном теле программы было минимум ненужных действий. Вот примерно так, функция принимает номер бара и смотрит выше ли он левостоящих bars баров.
Согласен. С точки зрения ООП, это грамотнее реализовано. Но я лишь проверял свою мысль и не заморачивался над компановкой кода. Почему тогда у меня не верно? Ведь логически то написано всё нормально. Вы видите у меня не корректность вообще?
Переписал вот так:
Теперь пропускает некоторые места на графике:
Так что и этот вариант не работает как нужно.
вот тут почему поставили 0, выше об этом писал уже, у вас метод рисования не знает на каком именно баре стрелки рисовать, рисует только на 0 баре.
Вы видите у меня не корректность вообще?
вот тут почему поставили 0, выше об этом писал уже, у вас метод рисования не знает на каком именно баре стрелки рисовать, рисует только на 0 баре.
Если будет не 0, а i, то рисоваться будет объект на на последнем баре, т.е. на момент расчёта последнем, а на 3 в цикле, а это смещение на 3, как я понимаю. Я сделал, как Вы написали:
Всё-равно не корректно отрисовываются объекты. Вот на скрине можно увидеть сколько пропусков имеется:
Код из класса рисующий объект вот:
Уже не понятно в какую сторону и смотреть...
Если будет не 0, а i, то рисоваться будет объект на на последнем баре, т.е. на момент расчёта последнем, а на 3 в цикле, а это смещение на 3, как я понимаю. Я сделал, как Вы написали:
Нет будет рисоваться именно на текущем баре если он выше 3 левостоящих. По скрину пропусков вроде не вижу. Нарисуйте на скрине где вы видите пропуск ?
Вот на вскиду:
Терминал не может не корректно отображать данные?
Ну так разве там должна быть стрелка ? Хай бара указаного стрелкой возьмём за 0 он выше 1 (левостоящего) далее сравнивается 1 бар со 2, а вот второй уже не выше 3 потому нет стрелки. Знак не в ту сторону, но думаю понятно.
Хотя всё верно. Мне нужно было 2 повышающихся вершины, а это значит что счётчик будет не 3, а 2. Такой вариант работает. Тока если я уберу строку:
Из функции OnCalculate(), то индикатор сообщает ошибку времени выполнения:
Это ещё почему?
Я понимаю, что происходит выход за пределы массива. Но где, не понятно.