HTMLcopy
1
<div id="container"></div>
CSScopy
6
1
html, body, #container {
2
width: 100%;
3
height: 100%;
4
margin: 0;
5
padding: 0;
6
}
JavaScriptcopy
x
1
anychart.onDocumentReady(function () {
2
var dataTable = anychart.data.table();
3
4
// The data used in this sample can be obtained from the CDN
5
// https://cdn.anychart.com/csv-data/dji-daily-short.js
6
dataTable.addData(get_dji_daily_short_data());
7
8
var mapping = dataTable.mapAs({open: 1, high: 2, low: 3, close: 4});
9
10
var chart = anychart.stock();
11
12
// Create computer.
13
var computer = dataTable.createComputer(mapping);
14
15
var context = anychart.math.priceChannels.initContext(25);
16
17
// Set init context.
18
computer.setContext(context);
19
20
// Set start calculation function.
21
computer.setStartFunction(anychart.math.priceChannels.startFunction);
22
23
// Calculation function.
24
computer.setCalculationFunction(anychart.math.priceChannels.calculationFunction);
25
26
computer.addOutputField('upperResult');
27
computer.addOutputField('middleResult');
28
computer.addOutputField('lowerResult');
29
30
var plot = chart.plot();
31
plot.rangeArea(dataTable, {high: computer.getFieldIndex('upperResult'), low: computer.getFieldIndex('lowerResult')});
32
plot.line(dataTable, {value: computer.getFieldIndex('upperResult')}).name('Channels U');
33
plot.line(dataTable, {value: computer.getFieldIndex('middleResult')}).name('Channels M');
34
plot.line(dataTable, {value: computer.getFieldIndex('lowerResult')}).name('Channels M');
35
36
chart.container('container');
37
chart.draw();
38
});