Добрый день!
Результат на рисунках
Не могу понять это баг или я неправильно что то делаю:
Создаю график со скользящей средней:
//Объявляю:
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);
}
}
Comentários (12)
Entrar ou Criar conta, Faça login ou cadastre-se para deixar um comentário
Красота... Не знаю почему так получается, но, для размышления 1. вы скользяшку строите не по свечам, а по тикам...
Так она мне нужна живая ;) Подразумевается что время в каждом тике OpenTime свечи! Добавление условия:
if (_emaChartElement != null && candle.State == CandleStates.Finished) { dict.Add(_emaChartElement, _ema.Process(candle)); }
картины не меняет ;(
Посмотрите примеры. Как там передаются свечи и индикаторы.
Так из примеров и код ;)
Изменены только названия переменных
Хотите сказать что пример не работает? Какой именно?
Я просто скопировал последовательность действий из примера. Насколько я понимаю дело не в примере, а в реализации интерфейса индикатора. Хотя Вам виднее. Я пробовал разные примеры в том числе из документации про Chart.
Какой-то индикатор не работает? EMA? Проверил сейчас на примере SampleChart - рисуется как должно.
Возможно. Я за базовый брал пример из документации. В приведенном коде где может быть ошибка?
Не знаю. Я проверяю на примере
Тогда получается что в документации по Chart написано "что то написано" :)
Если у вас есть замечания, оформляйте их через пул реквесты в нашем репозитарии https://github.com/StockSharp/StockSharp/.
А можно просто банальную поддержку на элементарный вопрос по Вашей документации без отсыланий в "пул реквесты в нашем репозитарии"? ;) Так слона не продашь :) Пример, на который Вы ссылаетесь, достаточно сложный, а по документации описано все просто. Но по документации что то не так работает :) Я прекрасно понимаю Ваше желание монетизировать Вашу прекрасную разработку, но то что сделано для широкой публики ДОЛЖНО соответствовать заявленному, работать и поддерживаться. Хотя .... Вам решать :) Я спрашиваю только по документации :)