This repository was archived by the owner on Jul 30, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathaccumulation-distribution-indicator.js
More file actions
99 lines (99 loc) · 7.19 KB
/
accumulation-distribution-indicator.js
File metadata and controls
99 lines (99 loc) · 7.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Sample for ADI Indicator
*/
var React = require("react");
var ej2_react_charts_1 = require("@syncfusion/ej2-react-charts");
var financial_data_1 = require("./financial-data");
var ej2_base_1 = require("@syncfusion/ej2-base");
var sample_base_1 = require("../common/sample-base");
var SAMPLE_CSS = "\n .control-fluid {\n\t\tpadding: 0px !important;\n }\n .charts {\n align :center\n }";
/**
* AccumulationDistribution sample
*/
var AccumulationDistribution = (function (_super) {
__extends(AccumulationDistribution, _super);
function AccumulationDistribution() {
return _super !== null && _super.apply(this, arguments) || this;
}
AccumulationDistribution.prototype.render = function () {
return (React.createElement("div", { className: 'control-pane' },
React.createElement("style", null, SAMPLE_CSS),
React.createElement("div", { className: 'control-section' },
React.createElement(ej2_react_charts_1.ChartComponent, { id: 'charts', load: this.load.bind(this), style: { textAlign: "center" }, primaryXAxis: {
valueType: 'DateTime',
majorGridLines: { width: 0 },
zoomFactor: 0.2, zoomPosition: 0.6,
crosshairTooltip: { enable: true },
}, primaryYAxis: {
title: 'Price',
labelFormat: '${value}',
minimum: 50, maximum: 170,
plotOffset: 25,
interval: 30, rowIndex: 1, opposedPosition: true, lineStyle: { width: 0 }
}, tooltip: {
enable: true, shared: true
}, crosshair: { enable: true, lineType: 'Vertical' }, axisLabelRender: this.axisLableRender.bind(this), chartArea: { border: { width: 0 } }, width: ej2_base_1.Browser.isDevice ? '100%' : '80%', zoomSettings: { enableSelectionZooming: true, mode: 'X', enablePan: true }, title: 'AAPL 2012-2017', loaded: this.onChartLoad.bind(this) },
React.createElement(ej2_react_charts_1.Inject, { services: [ej2_react_charts_1.CandleSeries, ej2_react_charts_1.Category, ej2_react_charts_1.Tooltip, ej2_react_charts_1.StripLine, ej2_react_charts_1.DateTime, ej2_react_charts_1.Zoom, ej2_react_charts_1.Logarithmic, ej2_react_charts_1.Crosshair, ej2_react_charts_1.LineSeries,
ej2_react_charts_1.AccumulationDistributionIndicator] }),
React.createElement(ej2_react_charts_1.RowsDirective, null,
React.createElement(ej2_react_charts_1.RowDirective, { height: '40%' }),
React.createElement(ej2_react_charts_1.RowDirective, { height: '60%' })),
React.createElement(ej2_react_charts_1.AxesDirective, null,
React.createElement(ej2_react_charts_1.AxisDirective, { rowIndex: 0, name: 'secondary', opposedPosition: true, majorGridLines: { width: 0 }, majorTickLines: { width: 0 }, minimum: -7000000000, maximum: 5000000000, interval: 6000000000, title: 'Accumulation Distribution', lineStyle: { width: 0 } },
React.createElement(ej2_react_charts_1.StripLinesDirective, null,
React.createElement(ej2_react_charts_1.StripLineDirective, { start: -7000000000, end: 6000000000, text: '', color: '#6063ff', visible: true, opacity: 0.1, zIndex: 'Behind' })))),
React.createElement(ej2_react_charts_1.SeriesCollectionDirective, null,
React.createElement(ej2_react_charts_1.SeriesDirective, { dataSource: financial_data_1.chartData, width: 2, xName: 'x', yName: 'y', low: 'low', high: 'high', close: 'close', volume: 'volume', open: 'open', name: 'Apple Inc', bearFillColor: '#2ecd71', bullFillColor: '#e74c3d', type: 'Candle', animation: { enable: true } })),
React.createElement(ej2_react_charts_1.IndicatorsDirective, null,
React.createElement(ej2_react_charts_1.IndicatorDirective, { type: 'AccumulationDistribution', field: 'Close', seriesName: 'Apple Inc', yAxisName: 'secondary', fill: '#6063ff', period: 3, animation: { enable: true } })))),
React.createElement("div", { id: "action-description" },
React.createElement("p", null, "This sample illustrates a stock chart with candle series and an accumulation distribution indicator. Trackball shows the information about the stock and signal value of a day.")),
React.createElement("div", { id: "description" },
React.createElement("p", null, "In this example, you can see how to render and configure the Accumulation Distribution Indicator."),
React.createElement("p", null, "Tooltip is enabled in this example, to see the tooltip in action, hover a point or tap on a point in touch enabled devices."),
React.createElement("br", null),
React.createElement("p", null,
React.createElement("b", null, "Injecting Module")),
React.createElement("p", null,
"Chart component features are segregated into individual feature-wise modules. To use Accumulation Distribution Indicator, we need to inject",
React.createElement("code", null, "AccumulationDistributionIndicator"),
" module into ",
React.createElement("code", null, "services"),
"."),
React.createElement("p", null,
"More information on the Accumulation Distribution Indicator can be found in this \u00A0",
React.createElement("a", { target: "_blank", href: "http://ej2.syncfusion.com/react/documentation/chart/api-series.html#type-chartseriestype" }, "documentation section"),
"."))));
};
AccumulationDistribution.prototype.onChartLoad = function (args) {
var chart = document.getElementById('charts');
chart.setAttribute('title', '');
};
;
AccumulationDistribution.prototype.load = function (args) {
var selectedTheme = location.hash.split('/')[1];
selectedTheme = selectedTheme ? selectedTheme : 'Material';
args.chart.theme = (selectedTheme.charAt(0).toUpperCase() + selectedTheme.slice(1));
};
;
AccumulationDistribution.prototype.axisLableRender = function (args) {
if (args.axis.name === 'secondary') {
var value = Number(args.text) / 1000000000;
args.text = String(value) + 'bn';
}
};
return AccumulationDistribution;
}(sample_base_1.SampleBase));
exports.AccumulationDistribution = AccumulationDistribution;