Добрый день!
Результат на рисунках
Не могу понять это баг или я неправильно что то делаю:
Создаю график со скользящей средней:
Code
//Объявляю:
public ChartPanel TradeChartPanel { get; set; }
private ChartIndicatorElement _emaChartElement;
private ExponentialMovingAverage _ema;
public ChartArea CandlesArea { get; set; }
public ChartCandleElement CandlesElem { get; set; }
//Инициализирую:
TradeChartPanel = panel;
TradeChartPanel.IsInteracted = true;
TradeChartPanel.ClearAreas();
TradeChartPanel.FillIndicators();
CandlesArea = new ChartArea();
var yAxis = CandlesArea.YAxises.First();
var xAxis = CandlesArea.XAxises.First();
//yAxis.AutoRange = true;
//TradeChartPanel.IsAutoRange = true;
//TradeChartPanel.IsAutoScroll = true;
TradeChartPanel.AddArea(CandlesArea);
CandlesElem = new ChartCandleElement { FullTitle = "Candles", YAxisId = yAxis.Id, /*XAxisId = xAxis.Id*/};
TradeChartPanel.AddElement(CandlesArea, CandlesElem, series);
_ema = new ExponentialMovingAverage() { Length = 9 };
_emaChartElement = new ChartIndicatorElement
{
DrawStyle = ChartIndicatorDrawStyles.Line,
AntiAliasing = true,
StrokeThickness = 1,
Color = Colors.Blue,
YAxisId = yAxis.Id,
// XAxisId = xAxis.Id
};
TradeChartPanel.AddElement(CandlesArea, _emaChartElement, series, _ema);
//Обрабатываю событие:
protected override void DrawCandle(CandleSeries series, Candle candle)
{
Application.Current.Dispatcher.InvokeAsync(() =>
{
var dict = new Dictionary<IChartElement, object>
{
{ CandlesElem, candle },
};
if (_emaChartElement != null )
{
dict.Add(_emaChartElement, _ema.Process(candle));
}
TradeChartPanel.Draw(candle.OpenTime, dict);
}
}