We do our best to make every next version fully compatible with the previous one, but sometimes big changes requires you to make minor changes in your code when upgrading to a new version.
Note: you can check the Charting Library version by executing TradingView.version()
in a browser console.
Here is the list of breaking changes:
-
Action
tmzProperties
from executeActionById and getCheckableActionState methods is removed. -
Chart method
createStudy
options forpriceScale
have been changed.left
andright
have been renamed tonew-left
andnew-right
. -
Series API method
moveToOtherSourceScale
has been renamed tochangePriceScale
. New argument options are added:new-left
,new-right
,no-scale
. -
Study API method
changePriceScale
argument options have been changed.left
andright
have been renamed tonew-left
andnew-right
. New argument optionentityId
has been added, it pins the study to the same price axis as a study with a correspondingentityId
. -
Method
applyOverrides
of ChartWidget is disabled for "mainSeriesProperties.priceAxisProperties.*". -
Creating a study using
createStudy
of ChartWidgetApi can be undone by the user from now. You can disable it usingdisableUndo
inoptions
.
- Featureset
show_logo_on_all_charts
has been removed. - Featureset
cl_feed_return_all_data
has been removed. - Action
magnetAction
from executeActionById and getCheckableActionState methods is removed. Use magnetEnabled instead. callback
argument of createStudy has been removed.- createStudy returns Promise instead of
entityId
. - Pane-Api method
getLeftPriceScale
is removed and replaced withgetLeftPriceScales
that returns an array of scales instead a single element. - Pane-Api method
getRightPriceScale
is removed and replaced withgetRightPriceScales
that returns an array of scales instead a single element. - setVisibleRange method now returns a Promise object and don't accept a callback as the last argument.
- Priority of the symbol option has been made higher than the priority of the symbol from the saved_data option. Do not assign a value to the symbol option, if you don't want to override the symbol from saved_data.
Trading Terminal
We've changed the broker's interaction flow. Please read the following carefully to understand what changes should be made in your code to switch to the new version.
Till now the Trading Terminal called broker adapter's methods (e.g. placeOrder
, modifyOrder
) when user clicked on Buy/Sell/Modify buttons. When calling these methods the Trading Terminal passed a silently
argument. When silently
was set to true
, the broker adapter could send an order without showing the dialog. When it was set to false
, the broker adapter had to invoke a method from the host
to show the order ticket (or the Edit Position dialog).
Starting from 1.15 the Trading Terminal shows all dialogs by itself and invokes broker adapter's methods to send an order or a position to the broker's server. The reason for this change is that we've added an order panel that can be used to place an order at any time.
If you use your own order dialog then you still need to make changes in your broker adapter's methods, but additionally you need to use metainfo
to pass the dialog constructor to the Trading Terminal.
-
Argument
silently
was removed fromplaceOrder
,modifyOrder
,reversePosition
,closePosition
,closeTrade
,cancelOrder
,cancelOrders
methods of the Broker API. -
Arguments
handler
andoptions
were removed fromshowOrderDailog
method of the Trading Host. -
Argument
handler
was removed fromshowPositionBracketsDailog
method of the Trading Host. -
supportCustomPlaceOrderTradableCheck
flag is no longer supported. -
Override
symbolWatermarkProperties
is not supported anymore. You can use settings_adapter withsymbolWatermark
key. -
indicators_file_name
constructor option was removed. Use custom_indicators_getter instead. We made this change to speed up the loading of the library and get rid of possible vulnerabilities that may occur when loading a file. You just need to move the code of your custom indicators from the JS file to the widget constructor, wrapping them in a function and a Promise -
We pass the parent order to
modifyOrder
if it exists. If child order’s details are required while modifying the order you can get back this behavior by enablingalways_pass_called_order_to_modify
featureset.
- createButton returns
HTMLElement
instead ofJQuery
. - createButton must be used after headerReady()
Promise
is resolved. - getVisibleRange returns
{from, to}
in the UTC timezone (it was a timezone selected on a chart before). - Method
onready
was removed. You can usewindow.addEventListener('DOMContentLoaded', callback, false)
instead. saveAsSnapshot
parameter was removed from saveChartToServer
TypeScript type definitions
StudyInputValueType
type is renamed toStudyInputValue
.
Featureset
- Starting from this version you are no longer able to use the
keep_left_toolbar_visible_on_small_screens
featureset. This featureset is removed and the left toolbar visibility no longer depends on the screen size.
- Action
takeScreenshot
from executeActionById method is removed. Use takeScreenshot method instead. - Action
lockDrawingsAction
from executeActionById and getCheckableActionState methods is removed. Use lockAllDrawingTools instead. - Action
hideAllDrawingsAction
from executeActionById and getCheckableActionState methods is removed. Use hideAllDrawingTools instead. - Featureset
caption_buttons_text_if_possible
is enabled by default. - Fixed an issue that was causing bars to shift. Time-shifted bars used to appear when daily bars had a negative exchange timezone offset along with a 24x7 session. If you have a workaround for this issue, please remove it before updating to this version.
Charting Library
-
charting_library/charting_library.min.js
is now UMD module.If you only inline this script into HTML then nothing has changed for you. If you import it as a module you should import
widget
,version
andonready
functions directly from it. -
searchSymbolsByName
is removed fromJS-API
, usesearchSymbols
instead.
Study overrides:
- Overrides for
Overlay
should be applied only viastudies_overrides
(andapplyStudiesOverrides
in runtime). In the previous versions you had to useoverrides
andapplyOverrides
). See Studies-Overrides page. - Starting from this version you are no longer able to override
showStudyArguments
andshowLastValue
usingoptions
keyword.
Trading Terminal
hasHistory
flag is removed. UsehistoryColumns
to display History in the Account Manager.
The following items are still supported in the Trading Terminal, but will be deprecated in future versions:
subscribePL
andunsubscribePL
. The broker should callplUpdate
method of the Host every time the profit is changed.supportDOM
is removed. DOM widget visibility can be set usingdome_widget
featureset.
The Trading Controller is replaced with Broker API.
The following changes should be applied to your Trading Controller implementation to move to new Broker API:
- Method
setHost
is removed. Host should be passed to the constructor of Broker API. - Method
buttonDropdownItems
is removed. Broker API should update Broker API usingsetButtonDropdownActions
. - Methods
configFlags
anddurations
are removed. Use Widget Constructor fields instead. - All methods that returned
$.Deferred
should be modified to return Promise. - Method
chartContextMenuItems
is renamed tochartContextMenuActions
. - Method
isTradable
changed to return a Promise instead of a Boolean value. - All string constants ("working", "buy" etc.) should be replaced with the appropriate number of constants.
- Position
avg_price
renamed toavgPrice
. tradingController
field in the Widget Constructor is removed. UsebrokerFactory
instead.
Trading Terminal
The following items are still supported in Trading Terminal, but will be deprecated in future versions:
supportDOME
renamed tosupportDOM
.- The signature of `showClosePositionDialog has been changed.
showEditBracketsDialog
was renamed toshowPositionBracketsDialog
.The signature has been changed.
-
Default behavior of Volume indicator was changed.
Previous behavior: Volume indicator is added/removed when an instrument or a resolution is switched depending on volume support by the instrument. You can get back to this behavior by disabling
create_volume_indicator_by_default_once
featureset.New behavior: Volume indicator is added when an empty chart is loaded for the first time provided that it is supported by an active instrument.
- We don't compile Pine scripts anymore. You can still use scripts that were compiled earlier.
- The chart can no longer show active orders only. Appropriate methods have been removed.
showOrderDialog
receives an object instead of arguments listshowSampleOrderDialog
removed, use showOrderDialog insteadshowOrderDialog
removed from Broker API, useplaceOrder
andmodifyOrder
receivesilently
argument insteadreversePosition
,closePosition
,cancelOrder
have an additional argumentsilently
.
- Starting from this version calling
setSymbol
with the same symbol is no longer enough. You should callonResetCacheNeededCallback
fromsubscribeBars
first. Then you can usesetSymbol
or newresetData
method of the chart. - JSAPI protocol version 1 is not supported anymore.
nextTime
andnoData
must be provided.
-
Added
source
argument to MACD. You should change MACD creation code to passsource
also.chartWidget.chart().createStudy('MACD', false, false, [12, 26, "close", 9])
-
Override
transparency
is not supported anymore. We added transparency support to every color. Usergba
form to define a color with transparency. Example:"symbolWatermarkProperties.color" : "rgba(60, 70, 80, 0.05)"
-
Override
paneProperties.gridProperties.*
is not supported anymore.Please use
paneProperties.vertGridProperties.*
andpaneProperties.horzGridProperties.*
-
Override
mainSeriesProperties.candleStyle.wickColor
is not supported anymore.Use
mainSeriesProperties.candleStyle.wickUpColor
andmainSeriesProperties.candleStyle.wickDownColor