Release date: 9/30/21
See the 8.3.0 to 8.4.0 upgrade notes for information about upgrading to this version.
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:
- 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:
- Study Edit
- Color Picker
- Timezone Select
- Language Select
- Theme Edit
- 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.
Smart magnetize for multiple y-axis chart
For users who have multiple series on separate y-axes with different price ranges on the same panel, magnetize uses the y-axis that corresponds to the data point selected to determine the vertical positioning. When adding a drawing, it automatically attaches itself to the highlighted line. The color of the drawing defaults to the color of the attached series. When the line is moved, the drawing follows.
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.
- New CIQ.ChartEngine.XAxis.setPropertiesForInterval defines the object containing functions used to rank the x-axis labels into priority "levels".
- New CIQ.Market.tradingDays function creates an array of days on which trading occurs.
- New CIQ.Market.isMarketDate function checks if a supplied date is a market day.
- New CIQ.Market.isFirstMarketDayOfMonth function checks if a supplied date is the first market day of the month.
- New CIQ.Market.isFirstMarketDayOfWeek function checks if a supplied date is the first market day of the week.
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.
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.
- New CIQ.Drawing.volumeprofile function creates a volume-by-price study overlay for a user-specified date range.
- New CIQ.ChartEngine.currentVectorParameters function specifies the volume profile drawing settings for the number of price buckets.
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.
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.
- 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-availableif a property matching an element's help-id attribute can be found in the
- New press function defines the actions within WebComponents.cq-help.
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.touchedto prevent unnecessary orderbook updates.
- Restricts unnecessary updates to pie charts caused by animation.
- Replaces expensive trade history background-color animation with a cheaper opacity transition.
- Chunks the orderbook method
createTableacross multiple frames to reduce interaction lag caused by thread blocking.
- Triggers trade history update based on
updateCurrentMarketDatato 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.
Optimized HUD and sticky tooltip interaction
Heads-up display (HUD) and sticky tooltips are now "aware" of each other and avoid overlap.
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.
parameters.interactiveAddparameter 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.,
true), then the y-axis labels CIQ.ChartEngine.createYAxisLabel automatically align right.