Несколько осей на графике
Atom Ответить
17.01.2014


Колеги , посмотрите пожалуйста что не так в моем коде , хочу на график выводить и цену, сделки и PnL . Вижу только цену:

версия 4.2.2.2:

Код

        public PnLChartWindow()
        {
            this.InitializeComponent();

            _area = new ChartArea();
            Curve.Areas.Add(_area);
            Curve.IsAutoScroll = true;
            _area.XAxises[0].AutoRange = true;
          
            _area.YAxises.Add(new ChartAxis()
            {
                Id = "Y1",
                AxisAlignment = ChartAxisAlignment.Left
            });


            _PriceElem = new ChartIndicatorElement
            {
                Indicator = new SimpleMovingAverage(),
                Title = "Price",
                Color = Colors.Black,
                YAxisId = "Y",
                XAxisId = "X"
            };
            _area.Elements.Add(_PriceElem);

            _tradeElem = new ChartTradeElement()
                {
                    YAxisId = "Y",
                    XAxisId = "X"
                };
            _area.Elements.Add(_tradeElem);

            _PnLElem = new ChartIndicatorElement
            {
                Indicator = new SimpleMovingAverage(),
                Title = "PnL",
                Color = Colors.Green,
                YAxisId = "Y1",
                XAxisId = "X"
            };

            _area.Elements.Add(_PnLElem);
        

            // и подписываемся на событие изменения времени, чтобы обновить ProgressBar
            Connector.NewTrades +=  DrawTrade;
            Connector.NewMyTrades += DrawMyTrade;



        }


        private void DrawTrade(IEnumerable<Trade> trades)
        {

            this.GuiAsync(() => Curve.ProcessValues(Herd.Security.LastTrade.Time, new Dictionary<IChartElement, object>
                {
                    { _PriceElem,  new ChartIndicatorValue(_PriceElem.Indicator, Price) { IsFormed = true } },
                     {_PnLElem, new ChartIndicatorValue(_PnLElem.Indicator, RUB_P_L) { IsFormed = true }},
                }));

        }

        private void DrawMyTrade(IEnumerable<MyTrade> trades)
        {
            
            foreach (var trade in trades)
            {
                this.GuiAsync(() => Curve.ProcessValues(trade.Trade.Time , new Dictionary<IChartElement, object>
                {
                    {_tradeElem, trade}
                }));
            }
        }


причем если без привязки к осям то все графики видно , но некрасиво , нужно для PnL привязку к другой оси Y.



Спасибо:




0 Ответов


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

loading
clippy