Version 30.1.0
We are happy to announce version 30.1.0.
This release brings clear indicator legends, more flexible drag-to-export feature, and various other improvements and bug fixes. Let's dive into the highlights.

Key updates
Distinguish indicators at a glance
When users apply the same indicator (like a Moving Average) to multiple symbols on a single chart, the legend can become ambiguous. Hiding inputs to clean up the view often removes the one piece of information they need most: which symbol each indicator line belongs to.
We've introduced the always_show_study_symbol_input_values_in_legend featureset.
When enabled, symbol inputs in your indicator legends remain visible even when other inputs are hidden.
This provides instant clarity, allowing users to confidently compare indicators across different instruments.
- Featureset enabled
- Featureset disabled


More flexible drag-to-export feature
Previously, enabling the drag-to-export feature meant putting the entire chart into a rigid drag mode. This locked out normal interactions, forcing you to write complex logic with key listeners to toggle the mode on and off.
We've completely reimagined this feature to be more flexible and easier to implement. The new event-driven approach keeps your chart fully interactive at all times. Here’s how it works.
After enabling the chart_drag_export featureset, you subscribe to the dragstart event.
The event parameters now include a keys object, giving you direct access to the state of modifier keys (metaKey, ctrlKey, etc.).
Inside your handler, you check if a key is pressed.
If it is, you call setData to activate the export for that specific drag.
If you do nothing, the drag is ignored and chart interaction proceeds as normal.
Get the precise range of visible bars
To give you more precision, we've added a new method that complements the existing getVisibleRange.
Use the new getVisibleBarsRange when you need the range of the actual data on screen.
This method returns the precise time of the first visible bar to the last, including incomplete bars and correctly handling non-time-based styles like Renko.
The range does not include any empty future space beyond the last visible bar.
Documentation
Here are the key updates in the documentation:
- New Time and sessions section explains core principles of how to correctly handle bar times, symbol sessions, and resolutions in your datafeed to prevent common issues.
- The previous Tutorials section has been split into four focused categories: Tutorials, How-to guides, Framework integrations, and Interactive code examples. You can now find the type of content you need right away.
- New Troubleshooting article is a practical starting point for diagnosing and resolving issues you may encounter while implementing the library.
Conclusion
This release also includes other fixes to make the library more stable and reliable, from fixing a VWAP indicator bug to ensuring UI elements resize correctly. For the full list of updates, improvements, and fixes, see the Release notes.