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

Не могу отобразить методом Draw индикаторы класса BaseComplexIndicator на графике.
Atom
1/28/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)



Thanks:




Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy