Не могу отобразить методом Draw индикаторы класса BaseComplexIndicator на графике.
Здравствуйте,
Не могу разобраться как вывести на график составные индикаторы типа BollingerBands. Метод Draw говорит что не поддерживает данный тип данных.
Код private void InitIndicators()
{
_chartCandleElement = new ChartCandleElement(); // после чего определим новый элемент графика для свечей и
area1.Elements.Add(_chartCandleElement); // добавим ее на область графика
_chBolBands = new ChartIndicatorElement {FullTitle = "Боллинжер", Color = Colors.DeepPink, };
area1.Elements.Add(_chBolBands);
_chAlligatorEl = new ChartIndicatorElement { FullTitle = "Аллигатор", Color = Colors.SaddleBrown };
area1.Elements.Add(_chAlligatorEl);
_chartIndElSMAFast = new ChartIndicatorElement { FullTitle = "Короткая", Color = Colors.OrangeRed };
area1.Elements.Add(_chartIndElSMAFast);
_chartIndElSMALong = new ChartIndicatorElement { FullTitle = "Длинная", Color = Colors.GreenYellow };
area1.Elements.Add(_chartIndElSMALong);
_chartIndElVolume = new ChartIndicatorElement { FullTitle = "Объем", Color = Colors.Blue, DrawStyle = ChartIndicatorDrawStyles.Histogram };
area3.Elements.Add(_chartIndElVolume);
_chDiMin = new ChartIndicatorElement() { FullTitle = "Di-", Color = Colors.Red, DrawStyle = ChartIndicatorDrawStyles.Histogram };
area2.Elements.Add(_chDiMin);
_chDiPlus = new ChartIndicatorElement() { FullTitle = "Di+", Color = Colors.DarkGreen };
area2.Elements.Add(_chDiPlus);
_alligator = new Alligator() {Teeth = { Shift = 2, Length = 2}};
_diMin = new DiMinus() { Length = 10 };
_diPlus = new DiPlus() { Length = 10 };
_smaFast = new SimpleMovingAverage() { Length = 5};
_smaLong = new SimpleMovingAverage() { Length = 50 };
_totalVolume = new SimpleMovingAverage() { Length = 1 };
_bollingerBands = new BollingerBands() { Length = 3, UpBand = { Width = 2,} };
}
private void InitChart()
{
ChartPanel.ClearAreas(); // очистим от старых свечей
area1 = new ChartArea(); // и создадим нову область графика
area2 = new ChartArea();
area3 = new ChartArea();
ChartPanel.AddArea(area1); // добавим ее на график
ChartPanel.AddArea(area2);
ChartPanel.AddArea(area3);
}
private void DrawData(CandleSeries series, Candle candle)
{
var longValueFast = _smaFast.Process(candle.ClosePrice);
var longValueLong = _smaLong.Process(candle.ClosePrice);
var diMin = _diMin.Process(candle);
var diPlus = _diPlus.Process(candle);
var totalVol = _totalVolume.Process(candle.TotalVolume);
var bolVol = _bollingerBands.Process(candle.ClosePrice);
var data = new ChartDrawData();
this.GuiAsync(()=>
{
data
.Group(candle.OpenTime)
.Add(_chartCandleElement, candle)
.Add(_chartIndElSMAFast, longValueFast)
.Add(_chartIndElSMALong, longValueLong)
.Add(_chDiMin, diMin)
.Add(_chDiPlus, diPlus)
.Add(_chartIndElVolume, totalVol)
.Add(_chBolBands, bolVol)
;
ChartPanel.Draw(data);
});
Подскажите, пожалуйста, в чем ошибка.