Проблемы с масштабом графика при отрисовке свечей


Проблемы с масштабом графика при отрисовке свечей
Atom
01.07.2021


Добрый день!

Давно мучаюсь, решил оформить в пост:

Если для осей графика убрать галочку "Автоматический диапазон", то при отрисовке каждой свечи график дергается, а затем масштабирование, которое было на графике сбивается и показывается ровно то количество свечей, которое указано в свойстве ChartPanel.MinimumRange (по умолчанию 50).
Таким образом становится невозможным смотреть на крупный или мелкий масштабы графика, так как при каждой новой свечке график "прыгает" и растягивается ровно на определенное количество свечей.
Например если поставить ChartPanel.MinimumRange = 1 при каждой новой свечке вы будете видеть только одну свечку, как бы вы график не растягивали/сжимали.

Прикрепляю видео того, как это выглядит.

Дополнительная информация, которая возможно будет полезна:
1. За "Автоматический диапазон" осей отвечает свойство ChartAxis.AutoRange в объектах ChartArea.XAxises и ChartArea.YAxises. Т.е. я ставлю в коде для всех осей AutoRange = false
2. У меня несколько осей Y в одной ChartPanel.ChartArea, на которых рисуются данные индикаторов, в том числе дополнительные свечи. В видео это не показано, но возможно это на что-то влияет.

Насколько я понимаю такое поведение ненормально и хотелось бы чтобы график не "прыгал", а оставался в том масштабе, на который он растянут мышкой.

Candle1.mp4 570 KB (295) Candle2.mp4 1 MB (288)



Спасибо:


< 1 2 
Sprite

Фотография
Дата: 25.12.2021
Ответить


Спасибо за ответы.

Вопрос по поводу ChartPanel.MinimumRange:

Support Перейти
- Причина того что чарт дергается -- свойство ChartPanel.MinimumRange, по умолчанию выставленное в 50 свечей и из-за которого график автоматически менял отображаемый диапазон если свечей было недостаточно.
В следующем релизе поведение будет слегка изменено, теперь заданный диапазон будет использоваться единожды в начале отрисовки. Это должно исправить проблему.

А если в процессе отрисовки пользователь поменяет значение ChartPanel.MinimumRange, новое значение будет учитываться?

Спасибо:

Sprite

Фотография
Дата: 27.12.2021
Ответить


Support Перейти
График рендерит всю видимую часть при каждом изменении любого элемента. Поэтому да, чем больше видимых элементов, тем медленнее отрисовка. Если вы отрисовываете 100 серий данных на одном графике, то возможно будет тормозить.

Именно видимых в области экрана? Т.е. если задать ChartPanel.MinimumRange=1, то при одинаковом количестве серий такой график будет рендериться быстрее, чем если задать ChartPanel.MinimumRange=50?

Спасибо:

Support

Фотография
Дата: 11.01.2022
Ответить


Цитата:
А если в процессе отрисовки пользователь поменяет значение ChartPanel.MinimumRange, новое значение будет учитываться?

Нет, не будет. Только в момент первой отрисовки, чтобы определить масштаб графика.

Цитата:
Именно видимых в области экрана? Т.е. если задать ChartPanel.MinimumRange=1, то при одинаковом количестве серий такой график будет рендериться быстрее, чем если задать ChartPanel.MinimumRange=50?

ChartPanel.MinimumRange тут не имеет значения.
Имеет значение текущий видимый диапазон, и количество данных в этом видимом диапазоне.
Спасибо:
< 1 2 

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy