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