SciChart® the market leader in Fast WPF Charts, WPF 3D Charts, and now iOS Charting & Android Chart Components

Preview! The following article was a preview of the Annotations API in SciChart v1.5 Premium Edition when it was in Beta. The full trial version of v1.5 can be downloaded now at www.scichart.com/downloads

Welcome back!

The SciChart team is back from summer vacations and gearing up for an exciting Autumn with new features & examples for you all. First of all we’d like to welcome you back from the summer and hope that you had good times with family & friends. We’d also like to thank our userbase who have been providing great feedback in the forums and via email. If you haven’t used our forums yet, please feel free to contribute! I hope that you will be pleasantly surprised by the speed and professionalism at which our team addresses your issues.

What’s Coming Soon: v1.5, SciChart Premium Edition

Blast from the past! SciChart v1.0 Beta was a bit, err, basic

When SciChart v1.0 was released back in early 2012, we admit, it was rather basic. Since then it has come on in leaps & bounds! We want to thank our valued customers who have adopted SciChart since Launch. We want to continue to serve you and ensure that SciChart adds value to your business.

With the release of SciChart v1.5 we will be announcing SciChart Premium Edition. This will include certain features which will only be available to Premium Edition customers. The Premium Edition will incur a price rise over SciChart Standard for new customers (to be decided). To thank to our early adopters, all our existing customers who have already licensed SciChart will be automatically upgraded to Premium for the remainder of their 1-year support contract.

Feature Updates

Static and Dynamic Annotations API (Premium Edition)

Until now, SciChart has had basic support for annotations by manually placing UIElements on the ModifierSurface. In SciChart v1.5 we have built out a full annotations API:

  • A nice neat API to add/remove annotations via code-behind or MVVM
  • Built in annotations out of the box such as
    • Line
    • LineArrow
    • HorizontalLine (with optional text)
    • VerticalLine (with optional text)
    • Box (with optional text)
    • Text
    • AxisMarker (with axis value)
  • Absolute coordinate placement via data-points, e.g. X1=2012-08-01, Y1=75.0 will place the annotation at the specified data-point.
  • Relative placement, e.g. X1=0.25, Y1=0.5 will place the annotation in the center of the Y-axis, and 25% along the X-Axis no matter what data is showing.
  • Automatically update annotation position as the chart data changes, or scrolls. Hide annotations when out of view.
  • Choose a canvas above or below the chart series.
  • Alignment of annotations, e.g. left, right, top, bottom, center to assist placement.
  • Selection and Editing of Annotations e.g. resizing, dragging, via the mouse.
  • AnnotationBase API for creation of your own annotation types (supports WPF/Silverlight UIElements, shapes or OnRender – WPF Only)
  • Silverlight and WPF support

Box, Line, LineArrow, HorizontalLine, AxisMarker annotations and more!

Click or mouse-over to select, then drag, resize and reposition annotations

Real-time, Multi-Pane Trading Charts (Premium Edition)

We’ve received a lot of interest from financial users who want to use SciChart in trading applications, but as yet SciChart is not ready to meet their needs.

This is our aim – to become a market-leader in scientific & financial charting on the WPF/Silverlight and WinRT platforms, so the past quarter we have been working to address shortfalls in the trading chart features of SciChart.

We have been providing working with a UK-based trading platform provider, MT Predictor, to provide charting capabilities to v7.5 of their software. As a result, v1.5 will have a host of features which will propel SciChart into a leading position to provide WPF / Silverlight stock charts. Check out some of the incredible screenshots of MT Predictor v7.5 Beta (powered by SciChart) below!

SciChart provides real-time stock charts at the core of MTPredictor v7.5

SciChart provides multi-pane stock charts, complex annotations with incredible performance

Dynamic Bar or Point Coloring (Standard Edition)

A hotly requested feature is the ability to dynamically color a bar or candle depending on data-point value. SciChart v1.5 will allow you to register an IPaletteProvider derived type on a RenderableSeries to override the Color of an OHLC bar, Candle or Column of a specific data-point.

Using PaletteProvider to override data-point color on render

New TradeChartDateTimeAxis and TradeChart control (Premium Edition)

SciChart v1.3 has had many problems reported in its CategoryDateTimeAxis. Namely, the inability to scroll past the end of the data-series, inconsistent zooming & panning and errors with ticks / axis labels when including irregular data, such as hourly/minute bars with weekends, or tick/range bars.

These issues have been addressed with a complete re-write of the CategoryDateTimeAxis. It’s now a bespoke axis type for trading charts so has been renamed -> TradeChartDateTimeAxis.

In addition, we’ve created the TradeChart control, which allows you to stack indicator panes below a price pane, or arrange them as tabs. TradeChart and TradeChartDateTimeAxis will only be available in the Premium Edition of SciChart.

TradeChart control, providing stacked or tabbed multiple pane stock charts

Improved TradeChartDateTimeAxis and coordinate system for stock charts

Improved DataSeries API (Standard Edition)

The DataSeries API has undergone a refactor to cope with future requirements of SciChart. We have taken our basic DataSeries API (which looks like this):

var dataSeries = new DataSeries<DateTime, double>();
dataSeries.Append(x, y); // Append xy
dataSeries.Append(x, open, high, low, close); // or OHLC

… and modified it to remove the Append overload. Now there’s just DataSeries.Append(x,y). So, how do you add OHLC data you ask? By using an OhlcDataSeries:

// Declare dataset and two series, one for Xy data and the other for Ohlc data
var dataSeriesSet = new DataSeriesSet<DateTime, double>();
var dataSeries = new XyDataSeries<DateTime, double>();
var ohlcDataSeries = new OhlcDataSeries<DateTime, double>();
// Add to the DataSet, note DataSeriesSet.AddSeries() now only returns an XyDataSeries
dataSeriesSet.Add(dataSeries);
dataSeriesSet.Add(ohlcDataSeries);
// Append data
dataSeries.Append(x, y);
ohlcDataSeries.Append(x, open, high, low, close);

The above provides an intuitive way to add multi-dimensional data to a data-series. In future releases we will be extending this API to provide other IDataSeries derived types, in order to allow a host of features such as Fan charts, Band charts, Heatmaps etc…

Improved Series Selection API (Standard Edition)

Series Selection in SciChart v1.3 used the HitTest API. You may recall the API is something like this:

var hitTestInfo = myRenderableSeries.HitTest(e.MousePoint);
if (hitTestInfo.IsHit) 
{
   // series was hit, select
   myRenderableSeries.IsSelected;
}

Those of you who have used the above will know that the hit-test only returns IsHit == true when a data-point has been clicked. In SciChart v1.5 we have added an overload to allow interpolation. This will have the effect of hit-testing on the line, or on the candle body for Candlesticks, on the area for Mountain, Column charts and on the vertical line for OHLC and Impulse charts.

bool interpolate = true;
var hitTestInfo = myRenderableSeries.HitTest(e.MousePoint, interpolate);
if (hitTestInfo.IsHit) 
{
   // series was hit, select
   myRenderableSeries.IsSelected;
}

Series-Selection improvements

New RenderableSeries – BandSeries (Premium Edition)

As part of our work to improve the DataSeries API, we have included a new RenderableSeries type – BandSeries. The BandSeries accepts an XyyDataSeries as data source, which has Y0 and Y1 values for each X value. The Band Series renders two lines and a shaded area between the lines depending on whether Y0 > Y1 or vice versa. Check out the screenshot below!

BandSeries – renders a shaded band between two line series

Improved DataSeries/RenderableSeries Synchronization (Premium Edition)

Currently a work in progress, we are addressing issues reported in the forums of synchronising DataSeries and RenderableSeries. We’re planning to address the issue with minimal impact to existing users of the DataSeries API, but maximum ease of developing applications with SciChart.

Improved Cursors & Interactivity, Multiple bug fixes (Standard Edition)

SciChart v1.5 will feature an improved cursor, which can be used right out of the box via the themes to place axis labels on the chart at the cursor position. That’s not all, we’ve included multiple bug fixes (too many to mention) which haven’t made it into the v1.3.* branch.

More examples & Tutorials

Plenty more examples are on the way, and some long overdue tutorials! We will be creating examples for Annotations, Annotations using MVVM, interactive annotations, Add/Remove Series, Changing RenderableSeries type, MVVM series binding, TradeChart control and more! …

Licensing Update

At release time we will also be making some minor changes to our terms & conditions and licensing model. We intend to implement a 30-day trial mechanism with activation per-machine on both Standard and Premium editions of SciChart. You will still have the ability to redistribute SciChart royalty free without the need for an internet connection to activate, but at install time, developer licenses will need to have a one-time activation against our licensing server in order to be used in Visual Studio 2010. If you believe you may have the incorrect number of licenses, please contact sales and we will be happy to assist you with a licensing upgrade prior to the release date to minimise migration issues.

4 Comments

  1. Hi Andrew,

    I would like to drop you a quick line to say thank you to you and your team for a brilliant product in SciCharts, which has outperformed my initial expectations. The Charts, are smooth, fast and very professional looking, and as such gives our final product (MTPredictor v7.5) the professional and polished feel we were looking for.

    Secondly, I would like to thank you for the additional work you (and your team) have been doing for me. The work has been delivered quicker than anticipated and in budget. As such I am very pleased to be able to incorporate your SciCharts component into our new flagship software, MTPredictor v7.5. I know all my customers will be very impressed with the new Charting interface.

    Overall, I am very impressed with SciCharts and the work you and your team have been doing, you are head and shoulders above the competition.

    Keep up the good work

    Steve Griffiths
    Managing Director
    MTPredictor Ltd

  2. Richard says:

    Hi,
    I have a question.
    I’m wondering how to change the color.(UpWickColor, DownWickColor)

    My Source Code..
    var fastOhlc = new FastCandlestickRenderableSeries();
    fastOhlc.UpWickColor = Color.FromArgb(0xFF, 0xFF, 0x00, 0x00); //red
    fastOhlc.DownWickColor = Color.FromArgb(0xFF, 0x00, 0x00, 0xFF); //blue
    fastOhlc.SeriesColor = Color.FromArgb(0xFF, 0xFF, 0xFF, 0xFF);

    thanks..

Leave a Reply