ASP.NET Core StockChart Overview

The Telerik UI StockChart TagHelper and HtmlHelper for ASP.NET Core are server-side wrappers for the Kendo UI StockChart component.

The StockChart is a specialized control visualizing the price movement of any financial instrument over a certain period of time. StockCharts include extensive touch support and a navigator pane for easy browsing of extended time periods. Generally, StockCharts extend the Telerik UI Chart and share most of its features.

Telerik UI for ASP.NET Core Ninja image
New to Telerik UI for ASP.NET Core?

Telerik UI for ASP.NET Core is a professional grade UI library with 110+ components for building modern and feature-rich applications. To try it out sign up for a free 30-day trial.

To see the component in action, check the examples:

All of the following series types that are supported by the StockChart are also accessible from a Telerik UI Chart:

Basic Configuration

When the StockChart is configured for remote data binding, it makes AJAX requests to the specified Read endpoint.

The following example demonstrates a basic StockChart configuration with a DataSource, which requests the data from the server.

    @(Html.Kendo().StockChart<Kendo.Mvc.Examples.Models.StockDataPoint>()
        .Name("stockChart")
        .DataSource(ds => ds.Read(read => read
            .Action("_StockData", "Home")
        ))
        .DateField("Date")
        .Series(series =>
        {
            series.Candlestick(s => s.Open, s => s.High, s => s.Low, s => s.Close);
        })
    )
    <kendo-stockchart name="stockChart" date-field="Date">
        <datasource>
            <transport>
                <read  url="@Url.Action("_StockData", "Home")"/>
            </transport>
            <schema>
                <model>
                    <fields>
                        <field name="Date" type="date"></field>
                        <field name="Close" type="number"></field>
                        <field name="Open" type="number"></field>
                        <field name="High" type="number"></field>
                        <field name="Low" type="number"></field>
                        <field name="Volume" type="number"></field>
                    </fields>
                </model>
            </schema>
        </datasource>
        <series>
            <series-item type="ChartSeriesType.Candlestick" open-field="Open" high-field="High" low-field="Low" close-field="Close"></series-item>
        </series>
    </kendo-stockchart>
    public IActionResult Index()
    {
        return View(); // The Action that returns the View with the StockChart.
    }

    public IActionResult _StockData()
    {
        using (var db = GetContext())
        {
            // Return the data as JSON.
            return Json(
                (from s in db.Stocks
                where s.Symbol == "BA"
                select new StockDataPoint
                {
                    Date = s.Date,
                    Open = s.Open,
                    High = s.High,
                    Low = s.Low,
                    Close = s.Close,
                    Volume = s.Volume
                }).ToList()
            );
        }
    }
    public class StockDataPoint
    {
        public DateTime Date { get; set; }

        public decimal Close { get; set; }

        public long Volume { get; set; }

        public decimal Open { get; set; }

        public decimal High { get; set; }

        public decimal Low { get; set; }

        public string Symbol { get; set; }
    }

The Navigator of the StockChart represents a pane that renders at the bottom of the chart that changes the date interval in the main pane. You can drag or scroll the Navigator to select the desired date range.

The following example shows how to enable and configure the Navigator of the chart.

    @(Html.Kendo().StockChart<Kendo.Mvc.Examples.Models.StockDataPoint>()
        .Name("stockChart")
        .DataSource(ds => ds.Read(read => read
            .Action("_StockData", "Home")
        ))
        .DateField("Date")
        .Series(series =>
        {
            series.Candlestick(s => s.Open, s => s.High, s => s.Low, s => s.Close);
        })
        .Navigator(nav => nav
            .Series(series =>
            {
                series.Area(s => s.Close); // Specify the field that holds the series data for the Navigator.
            })
            .Select( // Specifies the initially selected date range.
                DateTime.Parse("2009/02/05"),
                DateTime.Parse("2011/10/07")
            )
        )
    )
    <kendo-stockchart name="stockChart" date-field="Date">
        <datasource>
            <transport>
                <read  url="@Url.Action("_StockData", "Home")"/>
            </transport>
            <schema>
                <model>
                    <fields>
                        <field name="Date" type="date"></field>
                        <field name="Close" type="number"></field>
                        <field name="Open" type="number"></field>
                        <field name="High" type="number"></field>
                        <field name="Low" type="number"></field>
                        <field name="Volume" type="number"></field>
                    </fields>
                </model>
            </schema>
        </datasource>
        <series>
            <series-item type="ChartSeriesType.Candlestick" open-field="Open" high-field="High" low-field="Low" close-field="Close"></series-item>
        </series>
        <navigator>
            <navigator-series> <!-- Specify the field that holds the series data for the Navigator.-->
                <series-item type="ChartSeriesType.Area" field="Close"></series-item>
            </navigator-series>
            <!-- Specifies the initially selected date range.-->
            <select from="new DateTime(2009,02,05)" to="new DateTime(2011,10,07)"></select>
        </navigator>
    </kendo-stockchart>

Functionality and Features

  • Data Binding—You can bind the StockChart to local or remote data.
  • Multiple Panes—Configure the StockChart with multiple panes.
  • PDF Export—Export the StockChart to PDF.
  • Events—Subscribe to the available client events and implement any custom logic.

Next Steps

See Also

In this article