HTMLcopy
1
<div id="container"></div>
CSScopy
8
1
html,
2
body,
3
#container {
4
width: 100%;
5
height: 100%;
6
margin: 0;
7
padding: 0;
8
}
JavaScriptcopy
x
1
anychart.onDocumentReady(function () {
2
anychart.data.loadCsvFile(
3
'https://gist.githubusercontent.com/shacheeswadia/cd509e0b0c03964ca86ae7d894137043/raw/5f336c644ad61728dbac93026f3268b86b8d0680/teslaDailyData.csv',
4
function (data) {
5
// create data table on loaded data
6
var dataTable = anychart.data.table();
7
dataTable.addData(data);
8
9
// map loaded data for the candlestick series
10
var mapping = dataTable.mapAs({
11
open: 1,
12
high: 2,
13
low: 3,
14
close: 4
15
});
16
17
// create stock chart
18
var chart = anychart.stock();
19
20
// create first plot on the chart
21
var plot = chart.plot(0);
22
23
// set grid settings
24
plot.yGrid(true).xGrid(true).yMinorGrid(true).xMinorGrid(true);
25
26
27
var series = plot.candlestick(mapping);
28
series.name('Tesla');
29
series.legendItem().iconType('rising-falling');
30
31
// create EMA indicators with period 50
32
plot
33
.ema(dataTable.mapAs({ value: 4 }))
34
.series()
35
.stroke('1.5 #455a64');
36
37
// create envelope indicator
38
chart.plot().env(mapping);
39
40
41
// disable X axis for first plot
42
plot.xAxis().enabled(false);
43
44
// second plot to show macd values
45
var macdPlot = chart.plot(1);
46
47
var macdIndicator = macdPlot.macd(mapping);
48
// set series type for histogram series.
49
macdIndicator.histogramSeries('area');
50
51
macdIndicator
52
.histogramSeries()
53
.normal()
54
.fill('green .3')
55
.stroke('green');
56
macdIndicator
57
.histogramSeries()
58
.normal()
59
.negativeFill('red .3')
60
.negativeStroke('red');
61
62
// set second plot's height
63
macdPlot.height('40%');
64
65
// create annotation
66
var annotation = plot.annotations();
67
68
// create annotation rectangle
69
annotation.rectangle({
70
// X - part of the first anchor
71
xAnchor: '2021-11-08',
72
// Y - part of the first anchor
73
valueAnchor: 950,
74
// X - part of the second anchor
75
secondXAnchor: '2021-11-26',
76
// Y - part of the second anchor
77
secondValueAnchor: 1250,
78
// set stroke settings
79
stroke: '3 #c20000',
80
// set fill settings
81
fill: '#c20000 0.25'
82
});
83
84
// create annotation and set settings
85
annotation
86
.label()
87
.xAnchor('2021-11-26')
88
.valueAnchor(950)
89
.anchor('right-top')
90
.offsetY(5)
91
.padding(6)
92
.text('Elon Musk sells Tesla stock worth $1.05 billion')
93
.fontColor('#fff')
94
.background({
95
fill: '#c20000 0.75',
96
stroke: '0.5 #c20000',
97
corners: 2
98
});
99
100
101
// create scroller series with mapped data
102
chart.scroller().candlestick(mapping);
103
104
// set chart selected date/time range
105
chart.selectRange('2021-09-27', '2021-11-26');
106
107
// create range picker
108
var rangePicker = anychart.ui.rangePicker();
109
110
// init range picker
111
rangePicker.render(chart);
112
113
// create range selector
114
var rangeSelector = anychart.ui.rangeSelector();
115
116
// init range selector
117
rangeSelector.render(chart);
118
119
// sets the title of the chart
120
chart.title('Tesla Inc. Stock Chart');
121
122
// set container id for the chart
123
chart.container('container');
124
125
// initiate chart drawing
126
chart.draw();
127
}
128
);
129
});