Skip to main content

Version 32.0.0

· 4 min read

Welcome to Version 32.0.0.

This release introduces worker-based chart processing for improved performance, migrates core widget methods to a Promise-based API, extends countdown support to daily, weekly, and monthly bars, and includes updates to drawing tool names and availability. Let's dive into the highlights.

Breaking changes

Updated drawing tool names

Drawing tool names have been updated throughout the UI for consistency. If you use either of the following options, update the name strings you pass in:

  • custom_translate_function — the originalText argument now reflects the new names (for example, "Trendline" instead of "Trend Line").
  • drawings_access — the name property in the tools array must use the new names (for example, "Trendline" instead of "Trend Line").

Updated return values for dataReady, setChartType, and saveChartToServer

Calling these methods without a callback now returns a Promise instead of the previous value:

  • dataReady() on IChartWidgetApi now returns Promise<boolean> instead of a synchronous boolean. Update any synchronous readiness checks accordingly.
  • setChartType(type) now returns Promise<void> and rejects with an Error if the chart type change cannot load data.
  • saveChartToServer() now returns Promise<void> and rejects with a SaveChartError (exported as TradingView.SaveChartError) on failure — handle the returned promise to avoid unhandled rejections.

Existing calls that pass callbacks retain their previous behavior.

Key updates

Worker-based chart processing

Indicator calculations and other internal chart workloads can now run off the main thread. Enable the new workers option in the widget constructor to let the library attempt to start a dedicated worker thread. If the worker cannot be started, the library automatically falls back to the main-thread implementation.

const widget = new TradingView.widget({
container: 'tv_chart_container',
workers: { enabled: true },
library_path: 'charting_library/',
datafeed: myDatafeed,

/* Other widget constructor options */
});

Promise-based widget API

The remaining callback-based methods on IChartingLibraryWidget and IChartWidgetApi now have Promise-based counterparts:

The callback overloads remain for backward compatibility and emit a one-time deprecation warning on first use. widget.setSymbol() is also deprecated in favour of widget.activeChart().setSymbol().

warning

These methods will be removed in a future major release — migrate to the Promise-based API to avoid breakage when that happens.

Countdown for daily, weekly, and monthly bars

The bar close countdown was previously limited to intraday resolutions. It now also works for daily, weekly, and monthly bars. Set the mainSeriesProperties.showCountdown chart override to true to display the countdown on the price scale. As before, implementing getServerTime in your datafeed ensures accurate countdown values.

Unpaired exit levels

For Trading Platform integrations using supportMultipleExitLevels, the new supportUnpairedExitLevels flag allows each exit level to contain only one side — either a take-profit or a stop-loss — instead of requiring both. See Multiple exit levels for details.

Documentation

Implement Datafeed tutorial

The Implement Datafeed tutorial has been rewritten to use the Binance REST API, replacing the CryptoCompare integration. The tutorial now extends into a dedicated Extend to Trading Platform section that shows how to add quote-based features on top of a working datafeed: real-time quotes, the DOM widget, news, alerts, and save/load integration.

Margin meter

The margin meter lets traders see how close their current exposure is to the available margin limit, giving them a real-time signal before placing or adjusting orders. A new Enable margin meter section in the Order Ticket article explains what the margin meter displays and walks through the full integration.

Conclusion

This release also includes important bug fixes: timescale marks now render correctly on slow network connections, Risk/Reward drawings work properly with custom price formatters, and repeated no-data requests for monthly resolutions have been resolved. For the full list of updates, improvements, and fixes, see the Release notes.