Conceptual Chart's Unique Design and Features


Here at ITL, we have created an age of accelerated trading system development. That's why programmers who have written trading and investing programs make enthusiastic comments such as "I've been looking for a product like this for years".

Often, people put us in a slot with general charting OCX's. We understand the desire to compare, but we have to say that it's like comparing a good scientific calculator with a fully loaded Pentium III computer. They have a small portion of our charting features, but that is where the similarity ends. These OCX's are good products for what they were designed to do, general charting. Such OCX's have only approximately 2% of the functionality of Conceptual Charts, as far as trading and investing are concerned.

The choice is yours. You can plod along using their minimal functionality and non-trading design, trying to make it do what you want; or you can sail along smoothly toward your goal with a specialized program that was designed exactly for your needs.

Design

Conceptual Charts meets the needs of the trading system developer by being truly object oriented. The visual parts of the charts, such as x and y-axes, and the different types of indicators and line studies are all objects. Non-visual parts, such as datasets, data access, data conversion, etc. are designed as objects. This allows a great deal of flexibility and control. Using Conceptual Charts is not like the old style of programming with function libraries. We invite you to see the Objects section of our website for more details.

The most common type of investment or trading chart is end-of-day based. If you use the default axes, all you have to do is create a DataPlot object, one or more dataset objects, and load some data to produce a chart. Conceptual Charts does the rest of the work for you. The methods used to build a chart are relatively simple. Basically, objects are created and placed in the chart. To remove an object, you just delete it.

Conceptual Charts is designed to allow charts and objects to be added, deleted, and modified dynamically. The application may support interactive control by the user to add, delete, and change the chart and the objects. Conceptual Charts also supports real-time data input, display, and Technical Analysis, with particular emphasis on day trading applications. Real-time charts are displayed with flicker free updates as new data is inputted.

Automatic Scaling

Conceptual Charts is designed to handle the scaling and adjustments required to display a chart properly. Whether the chart is zoomed, scrolled, or resized, the chart is automatically adjusted and drawn accurately.

You Have Control

When a chart is first created, the chart contains a single graph that fills the chart. For many Technical Analysis applications, it is desirable to create stacked graphs within a chart in order to be able to compare price patterns, etc. In Conceptual Charts it is possible to create or add a graph to the chart in a specified position, and in a stacked fashion. It is also possible move these graphs to new positions and specify their relative height in the chart.

If desired, you can control the amount of space between the plotted data and the boundaries of the graph. Why would someone want to change a graph margin? Perhaps to increase the amount of space to make room for interactively placing Line Studies. The right graph margin could be increased to allow a Trendline Line Study to be extended into future time periods in the graph.

You Get To Choose

Conceptual Charts includes a large set of x and y-axes types. There are a total of thirteen different x-axis types and six y-axis types. The axes are optimized for particular functions and this allows Conceptual Charts to produce professional publication quality charts for a wide range of sample periods, data ranges, varying window sizes, and hardcopy. These axes also allow the display of specialized Technical Analysis indicators that cannot be displayed with common plot software.

Conceptual Charts allows x and y-axes to be created and placed in different positions in a chart. When a chart is initially created, it contains the default end-of- day x-axis, and a price based y-axis. Up to 7 x-axes are possible in various bottom, top, or center positions. An x-axis can be common to more than one graph, if the chart contains more than one graph. Each graph can contain up to 7 y-axes in left, right, or center positions. Since one chart can contain up to 16 graphs, the maximum number of y-axes is 112.

Conceptual Charts implements both horizontal and vertical zoom and scroll. Zoom and scroll can be applied to any axis, and zoom and scroll of multiple axes is possible.

A Powerful Data Management Design

Conceptual Charts contains a data management system that is a proprietary design. It is fast, efficient, object oriented, and is optimized for financial information.

The data management system handles the management, allocation, and deallocation of memory used by data automatically without burdening the programmer with memory management issues. The complex task of data management has been reduced to simply creating a dataset object and accessing the data using the properties and methods of an interface. When the application no longer needs the dataset object, the application releases the dataset. Most of the work is done automatically by Conceptual Charts.

The arrays in Conceptual Charts are called datasets, and are best described as a dynamic smart array. Datasets are dynamic because, when needed, they automatically increase in size to accommodate additional data. They are smart arrays because, as objects, they also contain logic that handles many tasks that would be burdensome to the programmer.

A very important feature of datasets is that they are global and can be accessed by multiple charts, threads, processes, or applications within the computer. Additionally, all data accesses are synchronized properly by the data management system.

Internally Conceptual Charts and sampled datasets contain logic that is optimized for speed to allow lightening fast data access using criteria such as date and time as well as element index in the dataset. The programmer can retrieve financial data by specifying the time for intraday data, or date using a dataset with end-of-day or longer sample periods. Sampled datasets can have a sample period in terms of minutes, end-of-day, weekly, monthly, quarterly, or yearly.

Easy Input of Data

In Conceptual Charts, the DataAccess object can be used with databases and ASCII data files to input or output data. Internally, Conceptual Charts uses Microsoft's ActiveX Data Objects (ADO) and OLEDB to handle database access. The properties and methods of the Data Access interface are designed to simplify the programming process, while allowing access to the wide range of databases supported by ADO.

Trading Data Conversion

Conceptual Charts includes two types of specialized data conversion.

The first is tick data conversion. It is used to convert tick data to intraday sampled data. Tick data can include the price of a security and the time of occurrence, and may also include volume information. Commonly, tick data is converted to a more useful format such as sampled data using a 15 minute sample period. The TickDataConvert object can be used to convert tick data in two different ways:

The second is end-of-day data conversion. It is used to convert sampled end-of-day data to sampled data with longer sample periods such as weekly, monthly, quarterly, and yearly.

Calendar Accuracy

A common problem of general charting programs is plotting data improperly due to inadequate calendar functionality. The market trades Monday thru Friday, excluding holidays. Internally, Conceptual Charts includes extensive calendar support that is optimized for speed. This functionality is extremely important for financial and trading software. Using Conceptual Charts, while a complex chart is being scrolled through large amounts of data, every data point is plotted in the correct position, right down to the pixel. Every date label and tick mark on the x- axis is in exactly the correct position, every time. This includes any sample period. For example, for monthly data, the ending date is the last trading day in the month. Most general charting OCX's can't handle this, and their data and x-axis labels are incorrectly placed.

Holidays are another problem for general charting OCX's. The only way they can handle a holiday is if you actually place a null value in the input data as a place holder for a holiday. This is a lot of tedious work. Conceptual Charts handles holidays automatically.

Another way to spot a poorly designed (for trading) charting OCX used in a trading application is when their x-axis on a chart only has two or three date labels, with too much space between labels. A programmer may find out that the OCX can't plot the data in the correct position, so to work around this, they only plot the few labels that are in the correct position.

Example Source Code

In addition to the examples in the tutorials, Conceptual Charts includes an example trading program. The purpose of this program is to serve as a code example that includes much of the functionality of Conceptual Charts. The source code of this program can be used as a starting point for developing a custom trading system. It is not meant to be a complete system, but it includes the following:

  1. Input of data using ASCII data files.
  2. Use of the large set of Technical Analysis (TA) indicators.
  3. All Line Studies.
  4. Interactive creation and modification of trading charts.
  5. End-of-day charts and intraday charts.
  6. Optional simulation of real-time tick input data and real-time screen updates.
  7. Saving charts to disk for later display.
  8. Print and Print Preview of charts.
  9. MDI, MFC architecture allowing multiple charts.

Top Products News Design Software Consulting Objects Example Code F.A.Q. Sales Day Trading Successful Trading Indicators Line Studies Company History