Tablas

Modificado el Thu, 24 Aug 2023 a las 04:47 PM

A continuación se muestra un ejemplo de indicador que muestra los datos en forma de tabla (análogo de Cluster Statistic)


public class ClusterStatisticSample : Indicator
    {
        public ClusterStatisticSample()
        {
            EnableCustomDrawing = true;
            SubscribeToDrawingEvents(DrawingLayouts.LatestBar);
            Panel = IndicatorDataProvider.NewPanel;
            DenyToChangePanel = true;
            DataSeries[0].IsHidden = true;
        }
 
        protected override void OnCalculate(int bar, decimal value)
        {
 
        }
 
        protected override void OnRender(RenderContext context, DrawingLayouts layout)
        {
            var rowHeight = Container.Region.Height / 3;
            var drawText = ChartInfo.PriceChartContainer.BarsWidth > 50;
            var font = new RenderFont("Roboto", 13);
 
            Rectangle rectangle;
 
            for (int bar = FirstVisibleBarNumber; bar <= LastVisibleBarNumber; bar++)
            {
                var candle = GetCandle(bar);
                var x = ChartInfo.GetXByBar(bar);
                var y = Container.Region.Y;
 
                rectangle = new Rectangle(x, y, (int)ChartInfo.PriceChartContainer.BarsWidth, rowHeight);
                context.FillRectangle(Color.LightBlue, rectangle);
                if (drawText)
                    context.DrawString(candle.Volume.ToString(), font, Color.Black, rectangle);
 
                rectangle.Y += rowHeight;
                context.FillRectangle(Color.IndianRed, rectangle);
                if (drawText)
                    context.DrawString(candle.Bid.ToString(), font, Color.Black, rectangle);
 
                rectangle.Y += rowHeight;
                context.FillRectangle(Color.Lime, rectangle);
                if (drawText)
                    context.DrawString(candle.Ask.ToString(), font, Color.Black, rectangle);
 
            }
 
            #region draw headers
 
            rectangle = new Rectangle(0, Container.Region.Y, 100, rowHeight);
            context.FillRectangle(Color.Gray, rectangle);
            context.DrawString("Volume", font, Color.Black, rectangle);
 
            rectangle.Y += rowHeight;
            context.FillRectangle(Color.Gray, rectangle);
            context.DrawString("Bid", font, Color.Black, rectangle);
 
            rectangle.Y += rowHeight;
            context.FillRectangle(Color.Gray, rectangle);
            context.DrawString("Ask", font, Color.Black, rectangle);
 
            #endregion
        }
    }

 


¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo