Tutorials
Getting started
Chart interface
Web components
Chart internals
Data integration
Customization
Frameworks and bundlers
Mobile development
Plug-ins
Troubleshooting
Glossary
Reference
JSFiddles

Getting the Library

The library is delivered to you as a zip package; everything you need is included. When you license the library, we provide a package that is locked to the domains where your app is hosted.

Installing

Unzip your ChartIQ package (zip) file. The extracted files and folders should include the following:

Distribution package folder

To install ChartIQ on a web server, copy the chartiq folder to the root folder of the web server.

The tutorial Installing the Library Using npm details how the tarball (chartiq-x.x.x.tgz) enables you to do just that.

Testing

Load the helloworld.html template (located in the root folder of the library package) in a web browser. For example, enter the following in your browser's address bar:

http://localhost/helloworld.html

If your code editor includes a live server, you can run helloworld.html from your editor.

Note: You cannot run helloworld.html (or any ChartIQ template) by double-clicking or double-tapping the file. See the Setting Up a Web Server tutorial for help with creating a development environment for viewing ChartIQ templates.

A basic chart similar to the following should appear:

Hello world chart
Figure. Hello world chart.

Troubleshooting

If a chart does not appear when you load helloworld.html, the library is not properly locked to meet your needs and may need the locking entitlements adjusted.

If you received a production license, make sure it is running from:

  • the domain or file system you provided to your account manager,
  • localhost or 127.0.0.1.

Otherwise, open a browser debugger window (F12 on Edge, Chrome, Firebug, or Safari browsers) and check the console for errors.

Email us at support@chartiq.com for help.

License locking mechanism

The keyfile

Starting with Version 9.0.0, your license key is contained in a keyfile (key.js) in the chartiq/ folder. If you use the tarball (chartiq-x.x.x.tgz) to install with npm, you can find the keyfile in node_modules/chartiq/.

Production licenses

A production license can be locked by:

  • IP address (example: 234.43.123.56)
  • Domain name (example: *.chartiq.com)
  • File system (examples: file:///, c:, d:, e:, etc.)
  • Expiration date
  • Any combination of the above

This means that the library will only function if hosted by a web server on the registered domains / IP addresses or from the registered file systems. The library will stop working once the expiration date is reached.

Another option is iframe locking, which is enabled by default. If you are hosting charts in an iframe, you must let us know, so we can unlock this entitlement. The iframe domains must also be present in the domains list.

All copies of the library are unlocked for http://127.0.0.1 and http://localhost so that you can develop on your personal machine.

Note:

  • The file system lock is provided to customers who transpile the library to ES5 for inclusion in applications running on iOS, Android, the Java JRE, .NET, or other platforms.
  • All expiration date locks expire after one year unless otherwise arranged by your account manager.

Trial Licenses

A trial license is expiration date locked only. It will run for a short time on any web view or browser. Once the license has expired, you will need to contact your sales person to request an extension.

Reviewing your license entitlements

You can check all license entitlements in your package by opening your keyfile, key.js, and reviewing the comments at the top of the file.

In versions of the library before 9.0.0, you can find this information in the comments at the top of js/chartiq.js.

Here is an example:

/**
 * x.x.x
 * Generation date: yyyy-dd-mmThh:mm:ss.mmmZ
 * Client name: xxxxxxxxxx
 * Package Type: Technical Analysis
 * License type: annual
 * Expiration date: yyy-mm-dd
 * Domain lock: ["127.0.0.1","localhost","sample.com","sample2.com"]
 * iFrame lock: true
 */

The first line of the comments is the library version.

Updating license locking entitlements

Starting with Version 9.0.0, all you have to do to extend the expiration date or update any other locking entitlements on an existing installation is replace your current keyfile with an updated version that your account manager will email you.

If you are developing with a framework, a little configuration enables you to extend your license this way without rebundling and redeploying your app. See "Hot swapping" the keyfile for instructions.

With versions before 9.0.0, you need to replace the currently locked files with the new ones.

Note: You can only replace these locked files — or your keyfile — as long as you are maintaining the exact same version of the library. To ensure the file and library versions are the same, open each of the affected files. The first line of the comments at the top of the file contains the version number (see example above). The file and library versions must match exactly; if they do not, you will need to perform a full upgrade by replacing all core files.

Version 7.5.0 and earlier

On Version 7.5.0 and prior versions of the library, the following file is locked and must be replaced:

  • js/chartiq.js.

Version 8.0.0 through 8.9.3

Starting with Version 8.0.0, the following files are locked and must be replaced:

  • js/chartiq.js
  • js/standard.js
  • js/advanced.js

If you are using individual module files, the following files are locked and must be replaced:

  • advanced/aggregations.js
  • standard/movement.js
  • standard/touch.js
  • standard/customCharts.js

Plug-ins before Version 9.0.0

The following locked plug-in files must be replaced:

Version 7.0.0 through 7.5.0
  • plugins/activetrader/marketdepth.js
  • plugins/scriptiq/scriptiqApi.js
  • plugins/termstructure/termstructure.js
  • plugins/timespanevent/timespanevent-marker.js
  • modules/studycalc/study-calculator.js
Version 8.0.0 through 8.2.0
  • plugins/activetrader/marketdepth.js
  • plugins/scriptiq/scriptiqApi.js
  • plugins/termstructure/termstructureRender.js
  • plugins/timespanevent/timespanevent-marker.js
  • modules/studycalc/study-calculator.js
Version 8.3.0 through 8.9.3
  • plugins/activetrader/marketdepth.js
  • plugins/scriptiq/scriptiqApi.js
  • plugins/crosssection/render.js
  • plugins/timespanevent/timespanevent-marker.js
  • modules/studycalc/study-calculator.js

Next steps