Таблицы
Below is an example of the indicator, which displays the data in the table form (Cluster Statistic analog)
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 } }
Servicio de atención al cliente por UserEcho