Version 7.0.0

Release Date: 4/15/19

  • Breaking change: The library has been reorganized to allow developers to quickly and easily identify and remove resources not used in their implementation. See Library Directory Structure for an outline of the new library structure.
    If you choose to use our latest templates with this version, no changes are required on your part, and all you need to do is copy all files from the new package to your installation. Otherwise, if you wish to continue using the prior default html templates or have a custom template, you will need to sync you project to reflect the required changes. For your convenience, a copy of the default 6.3 sample-template-advanced.html file already adjusted to run on 7.0 can be downloaded here:

Compare this with your current 6.3 html template to see the differences. Also see additional migration details below to address web component changes.

  • Breaking change: Web Components Version 0 is no longer supported. Therefore, all Web Components used on the sample temples have been redesigned to use Version 1, which is standard in all modern browsers.
    • Web Components Version 1 leverage ES6 capabilities/syntax, and so will our Web Components based UI.
    • A new set of Web Components polyfills for Version 1 will now be included with the library to support older browsers.
      • These polyfill files will be located under the thirdparty/@webcomponents directory.
      • The new files are custom-elements.min.js and native-shim.js.
      • custom-elements.min.js requires Promises to work. If you are running this in an environment without Promises, be sure to load the promise.min.js polyfill also included in this distribution.
    • webcomponents-lite.min.js, which was used to support version 0, will no longer be distributed as of this version.
    • If you have created your own custom web components, be sure to review the new syntax and make the required changes to comply with Web Components Version 1.

The following are instructions for adapting a version 6.3 sample-template-advanced.html file to run on version 7.0 :

  • Changes to required external script files:

    • Add the following:
    <script nomodule src="js/thirdparty/promise.min.js"></script>
    <script src="js/thirdparty/@webcomponents/custom-elements.min.js"></script>
    <script src="js/thirdparty/@webcomponents/native-shim.js"></script>
    <script src="examples/markets/marketDefinitionsSample.js"></script>
    <script src="examples/markets/marketSymbologySample.js"></script>
    
    • Modify paths/names on the the following:
    <script src="examples/feeds/quoteFeedSimulator.js"></script>
    <script src="examples/feeds/symbolLookupChartIQ.js"></script>
    <script src="examples/translations/translationSample.js"></script>
    
    • Remove the following:
    <script src="js/thirdparty/webcomponents-lite.min.js"></script>
    
  • Code changes:

    • Remove webComponentSupport() function and call these functions unconditionally instead:
    startUI();
    resizeScreen();
    
    • Remove the conditional loading of the promise.min.js :
    if(typeof Promise === 'undefined') CIQ.loadScript('js/thirdparty/promise.min.js');
    
    • Replace the following line ( file path ):
    CIQ.loadScript("example-feeds/L2_simulator.js", function(stx){return function(){CIQ.simulateL2({stx:stx, onInterval:1000, onTrade:true});};}(stxx));
    

    with:

    CIQ.loadScript("examples/feeds/L2_simulator.js", function(stx){return function(){CIQ.simulateL2({stx:stx, onInterval:1000, onTrade:true});};}(stxx));
    

For your convenience, a copy of the default 6.3 sample-template-advanced.html file already adjusted to run on 7.0 can be downloaded here:

Instructions for continuing to use Web Components V0 for 6.3 TFC, cryptoIQ and sample-template-advanced.html on the version 7.0 :

  • Make the 'examples' path changes mentioned above, and include components.js and componentUI.js from the 6.3 release.
  • webComponentSupport code and the conditional promise polyfill loader should remain as they are on 6.3.
  • Be sure js/thirdparty/webcomponents-lite.min.js is included. This UI will still use Web Components V0, thus the V0 pollyfill is needed.
  • Breaking change: CIQ.Studies.displaySeriesAsHistogram no longer supports sd.inputs.HeightPercentage. Use CIQ.ChartEngine.YAxis#heightFactor instead.

  • Breaking change: CIQ.ChartEngine#undoStamp before and after parameters now must contain an array of serialized drawings instead of an array of drawingObjects.

  • Please Note: CIQ.ChartEngine#newChart has been deprecated and replaced with CIQ.ChartEngine#loadChart, but maintained for backward compatibility. This was done to prevent confusion on the actual intent of the function call, which loads a chart for a new instrument, rather than create a new chart instance. Additionally, in order to improve ease of use, CIQ.ChartEngine#loadChart was also given a more intuitive function signature, but will also continue to accept parameters as per deprecated CIQ.ChartEngine#newChart to allow for backwards compatibility.

  • Please Note: Multi-chart sample templates are not yet supported using the Version 1 Web Components included in this release, but will once again be supported on our next release.

  • Please Note: CIQ.Drawing#getLineColor now replaces CIQ.Drawing#setLineColor, which has been maintained for backwards compatibility.

  • Please Note:scriptIQ is no longer supported on IE11.

  • Please Note: On prior versions, comparisons were based on the Close of the first candle showed. As of this release they start from the Close of the previous candle, so the first candle displayed already shows a change. For example, if setting a span to YTD and the market closed at $x.xx December 31 of last year and opened at $y.yy on the first day of the current year, the % change at market opening should not be zero but rather be the difference between $x.xx and $y.yy. This logic applies to all periodicities.

License Packaging and delivery

  • Improved modular packaging is now supported to give firms total control over what modules should be included in the project in order to minimize library footprint. All packages will now include an additional minimal kernel file called chartiq-lite.js, as well as an optional directory containing a set of files which developers can include at their discretion depending on the type of API calls required for their final implementation. See Library Directory Structure for more details.

UI, Web Components and sample templates

  • CIQ.Tooltip now includes new interpolation logic allowing it to show estimated crosshair values across a forecasting plot, that may not necessarily have a compete set of data points.

Y-Axis enhancements

  • More accurate Y-axis width calculations when CIQ.ChartEngine.Chart#dynamicYAxis is used with larger font sizes, ensuring text does not go off view.
  • Better automatic text color selection on Y-axis floating labels to ensure they are readable regardless of selected background color.

Drawings enhancements

  • Average line drawings can now be based on any rendered series or study line, not just the primary series.  To select the line to base the average on, the user would hover over it with the mouse, or tap on it on the screen. An icon will appear when the line is engaged to indicate an average line is possible for it. If no icon appears, this indicates an average line can not be based on that plot.
  • Annotation and Callout drawings now allow text to be modified without needing to create a new drawing.
  • CIQ.ChartEngine#activateDrawing panel now defaults to the currentPanel instead of chart panel. See DrawingEdit#text.

Studies enhancements

  • Standard deviation capabilities have been added to the VWAP Study.

TFC enhancements

cryptoIQ plugin

UI, Web Components and sample templates

  • To improve ease of use, sample-template-advanced.html has been enhanced. The 'Drawing Toolbar' now has icons for undo/redo/clear and activator icons display left aligned, to match the location of the drop-down.(7.0.3)

Other enhancement