Вывожу 2 графика на 2 chartArea - верхний свечки, нижний - объемы. Все выводится в одном процедуре через GuiAsync:
var volVal = candle.TotalVolume;
var volValue = new ChartIndicatorValue(volumeElement.Indicator, volVal);
//добавляем свечки и график индикатора на чарт
if (candle.State == CandleStates.Finished || (candle.State == CandleStates.Changed && candle.OpenTime >= time && val!=null))
{
this.GuiAsync(() => stockChartWindow.Chart2.ProcessValues(candle.OpenTime, new Dictionary<IChartElement, object>
{
{chartCandleElement, candle},
{volumeElement, volValue},
}));
}
На нижнем графике нет временных меток вообще: http://gyazo.com/3717d5f7d35664dee873a4287b7344d4
Если построить какой-нибудь индикатор, например боллинждера, то метки появляются, но есть постоянное отставание по временным меткам - сами значения соответствуют реальным, а вот временные метки запаздывают: http://gyazo.com/55ed99b42a8cc7bc93e730d854936497
Исправьте пожалуйста
Комментарии (4)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Можно какой-то пример сделать (желательно с захардкожеными значениями)? Саппорт скичарта постоянно с нас такое требует, а делать для них сэмпл для воспроизведения проблемы достаточно долго.
выведите график фьюча на РТС за сегодня например - сильное расхождение видно уже через час минутных данных, также видно и отсутствие меток. Я могу конечно из боевого кода выкинуть все лишнее и оставить только вывод на график, но данные то вам все равно нужны свои
В версии .26 проблема пропала ввиду того, что теперь под 2 графиками одна временная ось и они нормально синхронизируются, надо только добавить ChartArea.IsAligned = true
Устранение ошибки с зависанием временной оси при выводе свечек не подтверждаю. Думаю, что эта ошибка одного рода с багом очистки областей графика Areas. Какие-то данные не обнуляются. Ошибки ярко проявляются, если работать с несколькими областями графика.