Version 8.4.0

Release date: 9/30/21

See the 8.3.0 to 8.4.0 upgrade notes for information about upgrading to this version.

New features

  • Dedicated GitHub repo for quotefeeds — To make it easier for developers to access prebuilt quotefeeds to pull data for their charts from a server, we have created a dedicated GitHub repo for real-data quotefeeds at https://github.com/chartiq/quotefeeds. The intent is to build a portfolio of quotefeeds for developers to plug and play into a chart, and to have a place where data vendors can post their feeds. Third-party quotefeeds are accessible to any client, but require authentication from the data vendor to access the data.

    The following feeds are no longer distributed in the library package and have either been moved to the new repo or deprecated:

    • quoteFeedSunGard.js
    • quoteFeedXignite.js
    • quoteFeedBarChart.js (deprecated, no replacement)
  • Accessibility: Keyboard navigation for dialogs and UI controls — Further enhancements have been made in ChartIQ v8.4.0 to meet the Web Content Accessibility Guidelines (WCAG), which were developed through the W3C process in cooperation with individuals and organizations around the world. The goal is to make web content more accessible to people with disabilities.

    In addition to using the Tab key to cycle through top layer menu elements, users can now use the Tab key to cycle through elements in open dialogs. Arrow keys can be used natively in elements that support them (e.g. text boxes). Pressing Enter gives an element focus. Esc closes a dialog. The following dialogs and UI controls are impacted:

    • Dialogs
      • Study Edit
      • Color Picker
      • Timezone Select
      • Language Select
      • Theme Edit
      • Share
      • Comparison Series Widget
    • UI Controls
      • Buttons within the Table View window are keyboard selectable.
      • Within the studies chart legend, the Edit button (gear icon, upper right) is keyboard selectable.
      • The range selector in the footer is keyboard selectable.
  • CSS performance enhancements — Prior to v8.4.0, fonts were fetched from Google. But there is latency in fetching fonts over the internet, so some fonts were pulled into the package so they could be loaded faster. The advantages are twofold: 1) developers may have greater control their own network traffic and 2) with webpack, fonts can be baked into the bundle. While this can result in a larger bundle, it ends up being faster and it reduces the font switching you may have seen on prior versions as the default font is changed to the Google font.

    • New chartiq/css/fonts/ folder containing fonts used on page load.
    • New chartiq/css/_ciq-fonts.scss style sheet.
  • Drawing auto-attach — Drawings automatically attach to any study or comparison series the mouse is hovering over before the drawing is started. The color of the drawing defaults to the color of the attached series. If the series is moved to another panel, the attached drawing moves with it, preserving its position relative to the series. Similarly, if the series is removed from or re-added to the chart, the drawing will also be removed/re-added.

    When a drawing tool is activated and the mouse pointer hovers near a series, a tooltip message appears indicating the series to which the drawing will be attached. To disable the tooltip, set stxx.controls.drawOk=null;.

  • X-axis labeling based on calendar priority — X-axis labels now display on two lines and are based on calendar priority to highlight the beginning of a unit of time. For example, daily charts show the date of Mondays and use Tuesday if Monday is a holiday. January, April, July, and October are prioritized over other months to show the start of the quarter.

    The enhanced axis allows users to quickly find the start and end of important dates. In addition, the feature benefits anyone who is printing or capturing images of charts and cannot interact with the graphic.

    X-axis labels calender vs legacy.
    Figure. New x-axis labels (left) based on calendar priority show weekly labels align with the first trading day of a week (e.g. Mon, Aug 9) vs legacy x-axis(right), which shows weekly labels by day of the month (e.g. Sat, Aug 7).

  • Volume profile by date range — For users interested in volume analysis and market profile, ChartIQ 8.4.0 introduces a drawing tool that overlays volume distributions by price for user-defined date ranges on the chart. By highlighting high and low liquidity trading areas, technical analysts can identify areas of support and resistance using volume.

    Volume profile drawing tool
    Figure. Volume profile drawing over a date range with dialog for grouping prices into buckets.

    The user selects the tool, clicks point A, and then moves to and clicks point B. The distribution is calculated and drawn covering the selected date/time range. Users can modify the range by selecting a side handle and adjusting the width. Line and fill color are selectable, as is line type. To bin the data, users set the number of price buckets.

Experimental features

The following features are included as experimental in ChartIQ v8.4.0. They might change substantially over time or might not be supported in the future. Use at your own risk.

  • Import data from CSV files — Users can import files in CSV format and add to a chart as data for a main or secondary series.

    Import data from CSV files.
    Figure. CSV formatted files can be added to a chart as a main or secondary series.

Update to defaultConfiguration.js adds a value property to the menuPeriodicity object to explicitly specify period, interval, and timeUnit values.

  • Interactive help for drawing tools — Drawing tool users can select a question mark icon that activates an interactive overlay of glowing dots on the tool palette that indicate help is available. Long pressing a tool that has a dot displays user assistance for the tool.

    Interactive help for rectangle drawing tool
    Figure. Interactive help for rectangle drawing tool.

    • New CIQ.UI.Layout.toggleHelp function toggles the help-active attribute in the context of the element, enabling display of cq-help components.
    • New WebComponents.cq-help web component displays help if available.
    • New ensureMessagingAvailable function ensures that an instance of the cq-floating-window web component is available to handle event messaging and create the shortcuts legend floating window.
    • New verifyHelpContent adds class help-available if a property matching an element's help-id attribute can be found in the CIQ.Help.Content object.
    • New press function defines the actions within WebComponents.cq-help.
    • New chartiq/css/_ciq-help.scss
    • New chartiq/examples/help/ folder containing image files and the helpContent.js file for configuring Help pop-ups.

Enhancements

  • Active Trader performance enhancements — ChartIQ v8.4.0 introduces a range of optimizations to improve Active Trader performance, including:

    • An Animation option to the Preferences dropdown, enabling users to turn off animation to save CPU cycles.
    • Restricts range selector from redrawing on animation frames.
    • Restricts range selector from redrawing on quote feed updates.
    • Throttles redraws triggered by the range selector.
    • Moves injections to prevent event build up.
    • Throttles changes to currentMarketData.touched to prevent unnecessary order-book updates.
    • Restricts unnecessary updates to pie charts caused by animation.
    • Replaces expensive trade history background-color animation with a cheaper opacity transition.
    • Chunks the order-book method createTable across multiple frames to reduce interaction lag caused by thread blocking.
    • Triggers trade history update based on currentMarketData.touched instead of updateCurrentMarketData to reduce unnecessary updates.
  • Console warning for unavailable studies — A new console log was added to warn developers building a custom UI that involves the study calculator, if they try to add a study not included in their loaded package.

  • Market holidays 2022-2023 — Market holidays and early closes for 2022-2023 have been added for NYSE and LSE.

  • INDCBSX symbols updated to IND_CBOM — As of September 15th, 2021, the INDCBSX group name is no longer supported due to compliance reasons. With the new compliance requirement, INDCBSX symbols have been updated to IND_CBOM. This impacts Xignite customers only.

    INDCBSX symbols updated to IND_CBOM.
    Figure. INDCBSX symbols updated to IND_CBOM.

  • Optimized HUD and sticky tooltip interaction — Heads-up display (HUD) and sticky tooltips are now "aware" of each other and avoid overlap.

    HUD and sticky tooltip interaction.
    Figure. HUD and sticky tooltip interaction.

  • Polished UI for anchor drop controls — Anchor drop controls have been updated to improve user experience as follows:

    • When adding the Anchored Volume Weighted Average Price (AVWAP) study, the anchor line attaches to the mouse pointer so that the user immediately finds a drop point.
    • After the drop point is added, hovering over the anchor line brings up a sticky message that directs the user to drag the handle to change the anchor time.
    • Reduced size of the drag handle.
    • Improved visual presentation of the anchor line.

    Anchor drop control and toast message.
    Figure. After placing anchor, toast message directs user to drag to change anchor time.

    • New parameters.interactiveAdd parameter added to CIQ.studies that when true, adds an AVWAP study in "interactive add" mode, enabling the user to specify the anchor time.
  • Smart y-axis label alignment — When the chart y-axis is right-justified (i.e., yAxis.justifyRight is true), then the y-axis labels CIQ.ChartEngine.createYAxisLabel automatically align right.

    Y-axis labels right justify when y-axis right-justified.
    Figure. Y-axis labels right justify when y-axis is right-justified.