← Zurück

Несколько осей на графике

Колеги , посмотрите пожалуйста что не так в моем коде , хочу на график выводить и цену, сделки и 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.

War dieses Thema hilfreich?

Thema teilen

Kommentare (0)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Noch keine Kommentare. Seien Sie der Erste!