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
Sus comentarios se han enviado
Agradecemos su esfuerzo e intentaremos corregir el artículo