Skip to main content

Drawing Overrides

The Overrides API includes properties that can be used to customize drawing parameters such as colors, width, size, and more. This article describes ways to customize drawings and contains a list of overrides for each drawing.

Customize drawings

This section describes ways to customize drawings.

Specify default properties

You should use the overrides property of the Widget Constructor to specify the drawing's default properties. For example, the following code sample specifies that all Horizontal Lines should be green and dashed.

var widget = window.tvWidget = new TradingView.widget({
// ...
overrides: {
"linetoolhorzline.linecolor": "rgba(48, 164, 22, 0.8)",
"linetoolhorzline.linestyle": 2,
}
});

Change default properties on the fly

To change the drawing's default properties after the chart is initialized, use the applyOverrides method. All drawings created after the applyOverrides call have new properties. For example, the following code sample specifies that all newly created Horizontal Lines should be purple.

widget.applyOverrides({ "linetoolhorzline.linecolor": "#7f11e0" });

Change the existing drawing

If you want to change a drawing that is already on the chart, use the setProperties method in ILineDataSourceApi. For example, the code sample below specifies new properties for the existing Icon.

const iconId = widget.activeChart().getAllShapes().find(x => x.name === "icon").id;
const icon = widget.activeChart().getShapeById(iconId);
icon.setProperties({ size: 60, color: "#7f11e0" });

Customize a single drawing

If you need to change a style of only one drawing, create the drawing using the Drawings API and pass overrides properties as a parameter. These properties are applied above the default ones that are specified in overrides.

For example, the code sample below specifies that the default Horizontal Line color is green and creates one red Horizontal Line.

var widget = window.tvWidget = new TradingView.widget({
// ...
overrides: {
"linetoolhorzline.linecolor": "rgba(48, 164, 22, 0.8)",
}
});

widget.onChartReady(() => {
widget.chart().createShape(
{ price: 180 },
{
shape: "horizontal_line",
overrides: { linecolor: "#FF0000" },
}
)
});

Customize icons, stickers, and emojis

Note that you cannot customize icons, stickers, or emojis using overrides in the Widget Constructor or the applyOverrides method. To customize such drawings, create a new drawing using the Drawings API and specify the drawing properties in the overrides parameter. Consider the examples below.

Icons

widget.chart().createShape(
{ time: 1514796562, price: 180 },
{
shape: "icon",
overrides: {
color: "#5eeb34",
size: 50,
},
icon: 0xf004, // Heart
}
);

Refer to Drawings list for a list of icons.

Stickers

widget.chart().createShape(
{ time: 1514796562, price: 160 },
{
shape: "sticker",
overrides: {
sticker: "dislike",
size: 90,
},
}
);

Refer to Drawings list for a list of stickers.

Emojis

widget.activeChart().createMultipointShape(
[{ time: 1712158200, price: 170 }],
{
shape: "emoji",
overrides: {
size: 30,
},
emoji: "u/1F602" // Grinning face
}
);

Note that the emoji code requires u/ before it.

Refer to Drawings list for a list of emojis.

List of overrides

Refer to DrawingOverrides for a list of overrides.