HTMLcopy
1
<div id="container"></div>
CSScopy
x
1
html,
2
body,
3
#container {
4
width: 100%;
5
height: 100%;
6
margin: 0;
7
padding: 0;
8
}
9
10
.anychart-tooltip {
11
width: 300px;
12
background: white;
13
color: black;
14
box-shadow: 5px 5px 18px #333;
15
}
16
17
.anychart-tooltip h3 {
18
text-align: center;
19
}
20
21
.anychart-tooltip img {
22
max-height: 50px;
23
display: block;
24
margin: 0 auto 10px;
25
}
26
27
.anychart-tooltip table {
28
width: 100%;
29
}
30
31
.anychart-tooltip table tr td:last-child {
32
text-align: right;
33
}
34
35
.anychart-tooltip .k-square {
36
color: #67b6f4;
37
}
38
39
.anychart-tooltip .d-square {
40
color: #428cd6;
41
}
42
43
.anychart-tooltip .j-square {
44
color: #ed6c20;
45
}
JavaScriptcopy
115
1
anychart.onDocumentReady(function () {
2
// The data used in this sample can be obtained from the CDN
3
// https://cdn.anychart.com/csv-data/aapl-daily.csv
4
anychart.data.loadCsvFile(
5
'https://cdn.anychart.com/csv-data/aapl-daily.csv',
6
function (data) {
7
// create data table on loaded data
8
var dataTable = anychart.data.table();
9
dataTable.addData(data);
10
11
// map data for the candlestick series
12
var ohlcMapping = dataTable.mapAs({
13
open: 1,
14
high: 2,
15
low: 3,
16
close: 4
17
});
18
19
// map data for scroller and volume series
20
var valueMapping = dataTable.mapAs({
21
value: 5
22
});
23
24
// create stock chart
25
var chart = anychart.stock();
26
27
var plot = chart.plot(0);
28
29
// create and setup candlestick series on the first plot
30
var ohlcSeries = plot.candlestick(ohlcMapping);
31
ohlcSeries.name('AAPL');
32
ohlcSeries.legendItem().iconType('risingfalling');
33
34
// create volume series on the first plot
35
var volumeSeries = plot.column(valueMapping);
36
volumeSeries.name('Volume');
37
38
// set max height of volume series and attach it to the bottom of plot
39
volumeSeries.maxHeight('30%').bottom(0);
40
41
// create indicator plot
42
var indicatorPlot = chart.plot(1);
43
44
// set indicator plot height
45
indicatorPlot.height('25%');
46
47
// create KDJ indicator
48
indicatorPlot.kdj(ohlcMapping);
49
50
// get tooltip
51
var tooltip = chart.tooltip();
52
53
// setup formatters for the title and content of the tooltip using HTML
54
tooltip.useHtml(true);
55
tooltip.titleFormat(function () {
56
return (
57
'<h3>' +
58
anychart.format.dateTime(this.x, 'dd MMMM yyyy') +
59
'</h3>'
60
);
61
});
62
tooltip.unionFormat(function () {
63
return (
64
'<img src="https://upload.wikimedia.org/wikipedia/commons/f/fa/Apple_logo_black.svg"/>' +
65
'<table>' +
66
'<tr><td>Open</td><td>$' +
67
anychart.format.number(this.points[0].open, 2) +
68
'</td></tr>' +
69
'<tr><td>High</td><td>$' +
70
anychart.format.number(this.points[0].high, 2) +
71
'</td></tr>' +
72
'<tr><td>Low</td><td>$' +
73
anychart.format.number(this.points[0].low, 2) +
74
'</td></tr>' +
75
'<tr><td>Close</td><td>$' +
76
anychart.format.number(this.points[0].close, 2) +
77
'</td></tr>' +
78
'<tr><td>Volume</td><td>$' +
79
anychart.format.number(this.points[1].value, 2) +
80
'</td></tr>' +
81
'<tr><td><span class="k-square">◼</span>%K(14, 5)</td><td>$' +
82
anychart.format.number(this.points[2].value, 2) +
83
'</td></tr>' +
84
'<tr><td><span class="d-square">◼</span>%D(5)</td><td>$' +
85
anychart.format.number(this.points[3].value, 2) +
86
'</td></tr>' +
87
'<tr><td><span class="j-square">◼</span>%J</td><td>$' +
88
anychart.format.number(this.points[4].value, 2) +
89
'</td></tr>' +
90
'</table>'
91
);
92
});
93
94
// create scroller series with mapped data
95
chart.scroller().line(ohlcMapping);
96
// set container id for the chart
97
chart.container('container');
98
// initiate chart drawing
99
chart.draw();
100
101
// set values for selected range
102
chart.selectRange('qtd', 1, 'last-date');
103
104
// create range picker
105
var rangePicker = anychart.ui.rangePicker();
106
// init range picker
107
rangePicker.render(chart);
108
109
// create range selector
110
var rangeSelector = anychart.ui.rangeSelector();
111
// init range selector
112
rangeSelector.render(chart);
113
}
114
);
115
});