Не могу отобразить методом Draw индикаторы класса BaseComplexIndicator на графике.

Не могу отобразить методом Draw индикаторы класса BaseComplexIndicator на графике.
Atom
28.01.2019
allint29


Здравствуйте,

Не могу разобраться как вывести на график составные индикаторы типа 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);
                
            });

Подскажите, пожалуйста, в чем ошибка.

QuestIndicator.jpg 146 KB (345)



Спасибо:




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

loading
clippy