@amcharts/amcharts5 5.5.4 → 5.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.internal/charts/stock/StockChartDefaultTheme.d.ts.map +1 -1
- package/.internal/charts/stock/StockChartDefaultTheme.js +6 -4
- package/.internal/charts/stock/StockChartDefaultTheme.js.map +1 -1
- package/.internal/charts/stock/drawing/DrawingSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/DrawingSeries.js +21 -12
- package/.internal/charts/stock/drawing/DrawingSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/HorizontalRaySeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/HorizontalRaySeries.js +8 -4
- package/.internal/charts/stock/drawing/HorizontalRaySeries.js.map +1 -1
- package/.internal/charts/stock/drawing/ParallelChannelSeries.d.ts +33 -0
- package/.internal/charts/stock/drawing/ParallelChannelSeries.d.ts.map +1 -0
- package/.internal/charts/stock/drawing/ParallelChannelSeries.js +211 -0
- package/.internal/charts/stock/drawing/ParallelChannelSeries.js.map +1 -0
- package/.internal/charts/stock/drawing/RectangleSeries.d.ts +0 -1
- package/.internal/charts/stock/drawing/RectangleSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/RectangleSeries.js +0 -3
- package/.internal/charts/stock/drawing/RectangleSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/RegressionSeries.d.ts +1 -0
- package/.internal/charts/stock/drawing/RegressionSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/RegressionSeries.js +36 -3
- package/.internal/charts/stock/drawing/RegressionSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/SimpleLineSeries.d.ts +1 -0
- package/.internal/charts/stock/drawing/SimpleLineSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/SimpleLineSeries.js +15 -9
- package/.internal/charts/stock/drawing/SimpleLineSeries.js.map +1 -1
- package/.internal/charts/stock/drawing/TrendLineSeries.d.ts +1 -0
- package/.internal/charts/stock/drawing/TrendLineSeries.d.ts.map +1 -1
- package/.internal/charts/stock/drawing/TrendLineSeries.js +5 -0
- package/.internal/charts/stock/drawing/TrendLineSeries.js.map +1 -1
- package/.internal/charts/stock/indicators/CommodityChannelIndex.js +1 -1
- package/.internal/charts/stock/indicators/CommodityChannelIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/OverboughtOversold.d.ts.map +1 -1
- package/.internal/charts/stock/indicators/OverboughtOversold.js +1 -13
- package/.internal/charts/stock/indicators/OverboughtOversold.js.map +1 -1
- package/.internal/charts/stock/indicators/RelativeStrengthIndex.d.ts +15 -0
- package/.internal/charts/stock/indicators/RelativeStrengthIndex.d.ts.map +1 -1
- package/.internal/charts/stock/indicators/RelativeStrengthIndex.js +47 -3
- package/.internal/charts/stock/indicators/RelativeStrengthIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/StochasticMomentumIndex.js +5 -5
- package/.internal/charts/stock/indicators/StochasticMomentumIndex.js.map +1 -1
- package/.internal/charts/stock/indicators/StochasticOscillator.js +5 -5
- package/.internal/charts/stock/indicators/StochasticOscillator.js.map +1 -1
- package/.internal/charts/stock/indicators/WilliamsR.js +1 -1
- package/.internal/charts/stock/indicators/WilliamsR.js.map +1 -1
- package/.internal/charts/stock/toolbar/DrawingControl.d.ts.map +1 -1
- package/.internal/charts/stock/toolbar/DrawingControl.js +12 -4
- package/.internal/charts/stock/toolbar/DrawingControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/DrawingToolControl.d.ts +1 -1
- package/.internal/charts/stock/toolbar/DrawingToolControl.d.ts.map +1 -1
- package/.internal/charts/stock/toolbar/DrawingToolControl.js.map +1 -1
- package/.internal/charts/stock/toolbar/StockIcons.d.ts.map +1 -1
- package/.internal/charts/stock/toolbar/StockIcons.js +2 -1
- package/.internal/charts/stock/toolbar/StockIcons.js.map +1 -1
- package/.internal/charts/xy/axes/AxisRenderer.d.ts +1 -0
- package/.internal/charts/xy/axes/AxisRenderer.d.ts.map +1 -1
- package/.internal/charts/xy/axes/AxisRenderer.js +7 -0
- package/.internal/charts/xy/axes/AxisRenderer.js.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.d.ts +1 -1
- package/.internal/charts/xy/axes/DateAxis.d.ts.map +1 -1
- package/.internal/charts/xy/axes/DateAxis.js +2 -3
- package/.internal/charts/xy/axes/DateAxis.js.map +1 -1
- package/.internal/core/Classes.d.ts +2 -0
- package/.internal/core/Classes.d.ts.map +1 -1
- package/.internal/core/Classes.js.map +1 -1
- package/.internal/core/Registry.js +1 -1
- package/.internal/core/Registry.js.map +1 -1
- package/CHANGELOG.md +16 -1
- package/examples/javascript/flow-arc-horizontal/package.json +1 -1
- package/examples/javascript/flow-arc-vertical/package.json +1 -1
- package/examples/javascript/flow-chord/package.json +1 -1
- package/examples/javascript/flow-chord-directed/package.json +1 -1
- package/examples/javascript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/javascript/flow-sankey/package.json +1 -1
- package/examples/javascript/gauge/package.json +1 -1
- package/examples/javascript/gauge-bands/package.json +1 -1
- package/examples/javascript/hierarchy-force-directed/package.json +1 -1
- package/examples/javascript/hierarchy-pack/package.json +1 -1
- package/examples/javascript/hierarchy-partition/package.json +1 -1
- package/examples/javascript/hierarchy-sunburst/package.json +1 -1
- package/examples/javascript/hierarchy-tree/package.json +1 -1
- package/examples/javascript/hierarchy-treemap/package.json +1 -1
- package/examples/javascript/hierarchy-voronoi-treemap/package.json +1 -1
- package/examples/javascript/jest/package.json +1 -1
- package/examples/javascript/json-pie/package.json +1 -1
- package/examples/javascript/json-xy/package.json +1 -1
- package/examples/javascript/map-animating-along-lines/package.json +1 -1
- package/examples/javascript/map-day-and-night/package.json +1 -1
- package/examples/javascript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/javascript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/javascript/map-with-bubbles/package.json +1 -1
- package/examples/javascript/map-zoom-to-country/package.json +1 -1
- package/examples/javascript/misc-40-charts/package.json +1 -1
- package/examples/javascript/misc-microchart-grid/package.json +1 -1
- package/examples/javascript/pie-chart/package.json +1 -1
- package/examples/javascript/pie-donut-chart/package.json +1 -1
- package/examples/javascript/pie-variable-radius/package.json +1 -1
- package/examples/javascript/radar-column-iwatch-style/package.json +1 -1
- package/examples/javascript/radar-heat-map/package.json +1 -1
- package/examples/javascript/radar-line/package.json +1 -1
- package/examples/javascript/radar-time-line/package.json +1 -1
- package/examples/javascript/sliced-funnel/package.json +1 -1
- package/examples/javascript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/javascript/sliced-pyramid/package.json +1 -1
- package/examples/javascript/stock-chart/package.json +1 -1
- package/examples/javascript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/javascript/stock-chart-data-granularity/package.json +1 -1
- package/examples/javascript/stock-chart-data-grouping/package.json +1 -1
- package/examples/javascript/stock-chart-intraday/package.json +1 -1
- package/examples/javascript/stock-chart-live/package.json +1 -1
- package/examples/javascript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/javascript/venn-diagram/package.json +1 -1
- package/examples/javascript/wordcloud-with-data/package.json +1 -1
- package/examples/javascript/wordcloud-with-text/package.json +1 -1
- package/examples/javascript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/javascript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/javascript/xy-bubble/package.json +1 -1
- package/examples/javascript/xy-candlestick/package.json +1 -1
- package/examples/javascript/xy-clustered-column/package.json +1 -1
- package/examples/javascript/xy-column/package.json +1 -1
- package/examples/javascript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/javascript/xy-data-grouping/package.json +1 -1
- package/examples/javascript/xy-draggable-range/package.json +1 -1
- package/examples/javascript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/javascript/xy-dumbbell plot/package.json +1 -1
- package/examples/javascript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/javascript/xy-line/package.json +1 -1
- package/examples/javascript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/javascript/xy-live-data/package.json +1 -1
- package/examples/javascript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/javascript/xy-ohlc/package.json +1 -1
- package/examples/javascript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/javascript/xy-smoothed-line/package.json +1 -1
- package/examples/javascript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/javascript/xy-stacked-column/package.json +1 -1
- package/examples/javascript/xy-stacked-step/package.json +1 -1
- package/examples/javascript/xy-stock/package.json +1 -1
- package/examples/javascript/xy-stock-comparing/package.json +1 -1
- package/examples/typescript/flow-arc-horizontal/package.json +1 -1
- package/examples/typescript/flow-arc-vertical/package.json +1 -1
- package/examples/typescript/flow-chord/package.json +1 -1
- package/examples/typescript/flow-chord-directed/package.json +1 -1
- package/examples/typescript/flow-chord-non-ribbon/package.json +1 -1
- package/examples/typescript/flow-sankey/package.json +1 -1
- package/examples/typescript/gauge/package.json +1 -1
- package/examples/typescript/gauge-bands/package.json +1 -1
- package/examples/typescript/hierarchy-force-directed/package.json +1 -1
- package/examples/typescript/hierarchy-pack/package.json +1 -1
- package/examples/typescript/hierarchy-partition/package.json +1 -1
- package/examples/typescript/hierarchy-sunburst/package.json +1 -1
- package/examples/typescript/hierarchy-tree/package.json +1 -1
- package/examples/typescript/hierarchy-treemap/package.json +1 -1
- package/examples/typescript/hierarchy-voronoi-treemap/package.json +1 -1
- package/examples/typescript/jest/package.json +1 -1
- package/examples/typescript/json-pie/package.json +1 -1
- package/examples/typescript/json-xy/package.json +1 -1
- package/examples/typescript/map-animating-along-lines/package.json +1 -1
- package/examples/typescript/map-day-and-night/package.json +1 -1
- package/examples/typescript/map-globe-rotate-to-country/package.json +1 -1
- package/examples/typescript/map-globe-with-projected-circles/package.json +1 -1
- package/examples/typescript/map-with-bubbles/package.json +1 -1
- package/examples/typescript/map-zoom-to-country/package.json +1 -1
- package/examples/typescript/misc-40-charts/package.json +1 -1
- package/examples/typescript/misc-microchart-grid/package.json +1 -1
- package/examples/typescript/pie-chart/package.json +1 -1
- package/examples/typescript/pie-donut-chart/package.json +1 -1
- package/examples/typescript/pie-variable-radius/package.json +1 -1
- package/examples/typescript/radar-column-iwatch-style/package.json +1 -1
- package/examples/typescript/radar-heat-map/package.json +1 -1
- package/examples/typescript/radar-line/package.json +1 -1
- package/examples/typescript/radar-time-line/package.json +1 -1
- package/examples/typescript/sliced-funnel/package.json +1 -1
- package/examples/typescript/sliced-pictorial-stacked/package.json +1 -1
- package/examples/typescript/sliced-pyramid/package.json +1 -1
- package/examples/typescript/stock-chart/package.json +1 -1
- package/examples/typescript/stock-chart-comparing-stocks/package.json +1 -1
- package/examples/typescript/stock-chart-data-granularity/package.json +1 -1
- package/examples/typescript/stock-chart-data-grouping/package.json +1 -1
- package/examples/typescript/stock-chart-intraday/package.json +1 -1
- package/examples/typescript/stock-chart-live/package.json +1 -1
- package/examples/typescript/stock-chart-volume-separate-panel/package.json +1 -1
- package/examples/typescript/venn-diagram/package.json +1 -1
- package/examples/typescript/wordcloud-with-data/package.json +1 -1
- package/examples/typescript/wordcloud-with-text/package.json +1 -1
- package/examples/typescript/xy-100-percent-stacked-column/package.json +1 -1
- package/examples/typescript/xy-animated-bullet-at-the-end-of-the-series/package.json +1 -1
- package/examples/typescript/xy-bubble/package.json +1 -1
- package/examples/typescript/xy-candlestick/package.json +1 -1
- package/examples/typescript/xy-clustered-column/package.json +1 -1
- package/examples/typescript/xy-column/package.json +1 -1
- package/examples/typescript/xy-comparing-series-google-analytics-style/package.json +1 -1
- package/examples/typescript/xy-data-grouping/package.json +1 -1
- package/examples/typescript/xy-draggable-range/package.json +1 -1
- package/examples/typescript/xy-drawing-series-with-mouse-or-touch/package.json +1 -1
- package/examples/typescript/xy-dumbbell plot/package.json +1 -1
- package/examples/typescript/xy-evenly-spaced-date-axis/package.json +1 -1
- package/examples/typescript/xy-line/package.json +1 -1
- package/examples/typescript/xy-line-highlight-on-legend-hover/package.json +1 -1
- package/examples/typescript/xy-live-data/package.json +1 -1
- package/examples/typescript/xy-multiple-synced-value-axes/package.json +1 -1
- package/examples/typescript/xy-ohlc/package.json +1 -1
- package/examples/typescript/xy-real-time-data-sorting/package.json +1 -1
- package/examples/typescript/xy-smoothed-line/package.json +1 -1
- package/examples/typescript/xy-stacked-and-clustered-column/package.json +1 -1
- package/examples/typescript/xy-stacked-column/package.json +1 -1
- package/examples/typescript/xy-stacked-step/package.json +1 -1
- package/examples/typescript/xy-stock/package.json +1 -1
- package/examples/typescript/xy-stock-comparing/package.json +1 -1
- package/package.json +1 -2
- package/stock.d.ts +1 -0
- package/stock.d.ts.map +1 -1
- package/stock.js +1 -0
- package/stock.js.map +1 -1
|
@@ -12,6 +12,7 @@ export declare class TrendLineSeries extends SimpleLineSeries {
|
|
|
12
12
|
_privateSettings: ITrendLineSeriesPrivate;
|
|
13
13
|
_dataItemSettings: ITrendLineSeriesDataItem;
|
|
14
14
|
protected _tag: string;
|
|
15
|
+
protected _afterNew(): void;
|
|
15
16
|
protected _updateSegment(index: number): void;
|
|
16
17
|
}
|
|
17
18
|
//# sourceMappingURL=TrendLineSeries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrendLineSeries.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/drawing/TrendLineSeries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAEtI,MAAM,WAAW,wBAAyB,SAAQ,yBAAyB;CAC1E;AAED,MAAM,WAAW,wBAAyB,SAAQ,yBAAyB;CAE1E;AAED,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;CACxE;AAED,qBAAa,eAAgB,SAAQ,gBAAgB;IACpD,OAAc,SAAS,EAAE,MAAM,CAAqB;IACpD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAmE;IAE3F,SAAS,EAAE,wBAAwB,CAAC;IACpC,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,iBAAiB,EAAE,wBAAwB,CAAC;IAE3D,SAAS,CAAC,IAAI,SAAe;IAE7B,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM;CAgCtC"}
|
|
1
|
+
{"version":3,"file":"TrendLineSeries.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/drawing/TrendLineSeries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAEtI,MAAM,WAAW,wBAAyB,SAAQ,yBAAyB;CAC1E;AAED,MAAM,WAAW,wBAAyB,SAAQ,yBAAyB;CAE1E;AAED,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;CACxE;AAED,qBAAa,eAAgB,SAAQ,gBAAgB;IACpD,OAAc,SAAS,EAAE,MAAM,CAAqB;IACpD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAmE;IAE3F,SAAS,EAAE,wBAAwB,CAAC;IACpC,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,iBAAiB,EAAE,wBAAwB,CAAC;IAE3D,SAAS,CAAC,IAAI,SAAe;IAE7B,SAAS,CAAC,SAAS;IAMnB,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM;CAgCtC"}
|
|
@@ -9,6 +9,11 @@ export class TrendLineSeries extends SimpleLineSeries {
|
|
|
9
9
|
value: "trendline"
|
|
10
10
|
});
|
|
11
11
|
}
|
|
12
|
+
_afterNew() {
|
|
13
|
+
super._afterNew();
|
|
14
|
+
this.setPrivate("allowChangeSnap", false);
|
|
15
|
+
this.set("snapToData", true);
|
|
16
|
+
}
|
|
12
17
|
_updateSegment(index) {
|
|
13
18
|
const diP1 = this._di[index]["p1"];
|
|
14
19
|
const diP2 = this._di[index]["p2"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrendLineSeries.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/drawing/TrendLineSeries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAkF,MAAM,oBAAoB,CAAC;AAYtI,MAAM,OAAO,eAAgB,SAAQ,gBAAgB;IAArD;;QAQC;;;;mBAAiB,WAAW;WAAC;
|
|
1
|
+
{"version":3,"file":"TrendLineSeries.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/drawing/TrendLineSeries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAkF,MAAM,oBAAoB,CAAC;AAYtI,MAAM,OAAO,eAAgB,SAAQ,gBAAgB;IAArD;;QAQC;;;;mBAAiB,WAAW;WAAC;IAwC9B,CAAC;IAtCU,SAAS;QAClB,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAES,cAAc,CAAC,KAAa;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QAEnC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE;YAE3B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAEhC,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,QAAe,CAAC,CAAC,CAAC;YACpD,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,QAAe,CAAC,CAAC,CAAC;YAEpD,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChF,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEhF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;YAEtC,IAAI,GAAG,IAAI,GAAG,EAAE;gBACf,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,KAAY,CAAC,CAAC;gBAC/B,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,KAAY,CAAC,CAAC;gBAE/B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBAE3C,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACrC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAErC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;aAC5B;SACD;IACF,CAAC;;AA9CD;;;;WAAkC,iBAAiB;GAAC;AACpD;;;;WAA0C,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;GAAC","sourcesContent":["import { SimpleLineSeries, ISimpleLineSeriesSettings, ISimpleLineSeriesPrivate, ISimpleLineSeriesDataItem } from \"./SimpleLineSeries\";\r\n\r\nexport interface ITrendLineSeriesDataItem extends ISimpleLineSeriesDataItem {\r\n}\r\n\r\nexport interface ITrendLineSeriesSettings extends ISimpleLineSeriesSettings {\r\n\r\n}\r\n\r\nexport interface ITrendLineSeriesPrivate extends ISimpleLineSeriesPrivate {\r\n}\r\n\r\nexport class TrendLineSeries extends SimpleLineSeries {\r\n\tpublic static className: string = \"TrendLineSeries\";\r\n\tpublic static classNames: Array<string> = SimpleLineSeries.classNames.concat([TrendLineSeries.className]);\r\n\r\n\tdeclare public _settings: ITrendLineSeriesSettings;\r\n\tdeclare public _privateSettings: ITrendLineSeriesPrivate;\r\n\tdeclare public _dataItemSettings: ITrendLineSeriesDataItem;\r\n\r\n\tprotected _tag = \"trendline\";\r\n\r\n\tprotected _afterNew() {\r\n\t\tsuper._afterNew();\r\n\t\tthis.setPrivate(\"allowChangeSnap\", false);\r\n\t\tthis.set(\"snapToData\", true);\r\n\t}\t\r\n\r\n\tprotected _updateSegment(index: number) {\r\n\t\tconst diP1 = this._di[index][\"p1\"];\r\n\t\tconst diP2 = this._di[index][\"p2\"];\r\n\r\n\t\tconst series = this.get(\"series\");\r\n\t\tif (series && diP1 && diP2) {\r\n\r\n\t\t\tconst xAxis = this.get(\"xAxis\");\r\n\r\n\t\t\tlet x1 = this._getXValue(diP1.get(\"valueX\" as any));\r\n\t\t\tlet x2 = this._getXValue(diP2.get(\"valueX\" as any));\r\n\r\n\t\t\tconst di1 = xAxis.getSeriesItem(series, Math.max(0, xAxis.valueToPosition(x1)));\r\n\t\t\tconst di2 = xAxis.getSeriesItem(series, Math.min(1, xAxis.valueToPosition(x2)));\r\n\r\n\t\t\tconst field = this.get(\"field\") + \"Y\";\r\n\r\n\t\t\tif (di1 && di2) {\r\n\t\t\t\tlet y1 = di1.get(field as any);\r\n\t\t\t\tlet y2 = di2.get(field as any);\r\n\r\n\t\t\t\tthis._setContext(diP1, \"valueY\", y1, true);\r\n\t\t\t\tthis._setContext(diP2, \"valueY\", y2, true);\r\n\r\n\t\t\t\tthis._setContext(diP1, \"valueX\", x1);\r\n\t\t\t\tthis._setContext(diP2, \"valueX\", x2);\r\n\r\n\t\t\t\tthis._positionBullets(diP1);\r\n\t\t\t\tthis._positionBullets(diP2);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommodityChannelIndex.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/CommodityChannelIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAsF,MAAM,sBAAsB,CAAC;AAQ9I;;;;GAIG;AACH,MAAM,OAAO,qBAAsB,SAAQ,kBAAkB;IAQlD,SAAS;QAElB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAE7C,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAC7B;YACC,GAAG,EAAE,QAAQ;YACb,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC/C,IAAI,EAAE,QAAQ;SACd,EAAE;YACH,GAAG,EAAE,aAAa;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"CommodityChannelIndex.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/CommodityChannelIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAsF,MAAM,sBAAsB,CAAC;AAQ9I;;;;GAIG;AACH,MAAM,OAAO,qBAAsB,SAAQ,kBAAkB;IAQlD,SAAS;QAElB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QAE7C,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAC7B;YACC,GAAG,EAAE,QAAQ;YACb,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC/C,IAAI,EAAE,QAAQ;SACd,EAAE;YACH,GAAG,EAAE,aAAa;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC/C,IAAI,EAAE,OAAO;SACb,CACA,CAAA;IACF,CAAC;IAED;;OAEG;IACI,WAAW;QACjB,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC;YACpD,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAEpC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;gBAC/B,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC;gBAEtB,IAAI,aAAa,GAAG,CAAC,CAAC;gBACtB,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE;oBAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;wBACpC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;wBACjB,aAAa,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA;qBAC1C;oBACD,aAAa,GAAG,aAAa,GAAG,MAAM,CAAC;oBACvC,QAAQ,CAAC,MAAM,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC;iBACzD;aACD;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC9B;IACF,CAAC;;AAxDD;;;;WAAkC,uBAAuB;GAAC;AAC1D;;;;WAA0C,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;GAAC","sourcesContent":["import { OverboughtOversold, IOverboughtOversoldSettings, IOverboughtOversoldPrivate, IOverboughtOversoldEvents } from \"./OverboughtOversold\";\r\n\r\nexport interface ICommodityChannelIndexSettings extends IOverboughtOversoldSettings { }\r\n\r\nexport interface ICommodityChannelIndexPrivate extends IOverboughtOversoldPrivate { }\r\n\r\nexport interface ICommodityChannelIndexEvents extends IOverboughtOversoldEvents { }\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class CommodityChannelIndex extends OverboughtOversold {\r\n\tpublic static className: string = \"CommodityChannelIndex\";\r\n\tpublic static classNames: Array<string> = OverboughtOversold.classNames.concat([CommodityChannelIndex.className]);\r\n\r\n\tdeclare public _settings: ICommodityChannelIndexSettings;\r\n\tdeclare public _privateSettings: ICommodityChannelIndexPrivate;\r\n\tdeclare public _events: ICommodityChannelIndexEvents;\r\n\r\n\tprotected _afterNew() {\r\n\r\n\t\tthis._themeTags.push(\"commoditychannelindex\")\r\n\r\n\t\tsuper._afterNew();\r\n\r\n\t\tthis._editableSettings.unshift(\r\n\t\t\t{\r\n\t\t\t\tkey: \"period\",\r\n\t\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\t\ttype: \"number\"\r\n\t\t\t}, {\r\n\t\t\tkey: \"seriesColor\",\r\n\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}\r\n\t\t)\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tlet data = this._getTypicalPrice(dataItems);\r\n\t\t\tlet period = this.get(\"period\", 20);\r\n\r\n\t\t\tthis._sma(data, period, \"value_y\", \"sma\");\r\n\r\n\t\t\tfor (let i = 0, len = data.length; i < len; i++) {\r\n\t\t\t\tconst dataItem = data[i];\r\n\t\t\t\tconst value = dataItem.value_y;\r\n\t\t\t\tlet ma = dataItem.sma;\r\n\r\n\t\t\t\tlet meanDeviation = 0;\r\n\t\t\t\tif (i >= period - 1) {\r\n\r\n\t\t\t\t\tfor (let j = i; j > i - period; j--) {\r\n\t\t\t\t\t\tlet di = data[j];\r\n\t\t\t\t\t\tmeanDeviation += Math.abs(di.value_y - ma)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tmeanDeviation = meanDeviation / period;\r\n\t\t\t\t\tdataItem.valueS = (value - ma) / (0.015 * meanDeviation);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.series.data.setAll(data);\r\n\t\t}\r\n\t}\r\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverboughtOversold.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/OverboughtOversold.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC1H,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAQrD,MAAM,WAAW,2BAA4B,SAAQ,uBAAuB;IAE3E;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC;IAExB;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;CAAI;AAE9E,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;CAAI;AAG5E;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;IACrD,OAAc,SAAS,EAAE,MAAM,CAAwB;IACvD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAoE;IAE5F,SAAS,EAAE,2BAA2B,CAAC;IACvC,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,OAAO,EAAE,yBAAyB,CAAC;IAE3C,UAAU,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC1C,MAAM,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACtC,QAAQ,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAExC,aAAa,EAAG,oBAAoB,CAAC;IACrC,eAAe,EAAG,oBAAoB,CAAC;IAE9C;;OAEG;IACY,MAAM,EAAE,UAAU,CAAC;IAE3B,iBAAiB,EAAE,yBAAyB,EAAE,CAgBlD;IAEH,SAAS,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"OverboughtOversold.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/OverboughtOversold.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC1H,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAQrD,MAAM,WAAW,2BAA4B,SAAQ,uBAAuB;IAE3E;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC;IAExB;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;CAAI;AAE9E,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;CAAI;AAG5E;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;IACrD,OAAc,SAAS,EAAE,MAAM,CAAwB;IACvD,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAoE;IAE5F,SAAS,EAAE,2BAA2B,CAAC;IACvC,gBAAgB,EAAE,0BAA0B,CAAC;IAC7C,OAAO,EAAE,yBAAyB,CAAC;IAE3C,UAAU,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC1C,MAAM,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACtC,QAAQ,EAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAExC,aAAa,EAAG,oBAAoB,CAAC;IACrC,eAAe,EAAG,oBAAoB,CAAC;IAE9C;;OAEG;IACY,MAAM,EAAE,UAAU,CAAC;IAE3B,iBAAiB,EAAE,yBAAyB,EAAE,CAgBlD;IAEH,SAAS,CAAC,SAAS;IA+HnB,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,UAAU;IAS9D,aAAa,IAAI,UAAU;IAY3B,gBAAgB;IA4ChB,eAAe;CAQtB"}
|
|
@@ -71,19 +71,7 @@ export class OverboughtOversold extends ChartIndicator {
|
|
|
71
71
|
super._afterNew();
|
|
72
72
|
const chart = this.panel;
|
|
73
73
|
const yAxis = this.yAxis;
|
|
74
|
-
yAxis.
|
|
75
|
-
yAxis.onPrivate("max", (max) => {
|
|
76
|
-
const overBought = this.get("overBought", 0);
|
|
77
|
-
if ($type.isNumber(max) && max < overBought) {
|
|
78
|
-
yAxis.setPrivateRaw("max", overBought);
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
yAxis.onPrivate("min", (min) => {
|
|
82
|
-
const overSold = this.get("overSold", 0);
|
|
83
|
-
if ($type.isNumber(min) && min > overSold) {
|
|
84
|
-
yAxis.setPrivateRaw("min", overSold);
|
|
85
|
-
}
|
|
86
|
-
});
|
|
74
|
+
yAxis.setAll({ strictMinMax: true, autoZoom: false });
|
|
87
75
|
// middle grid
|
|
88
76
|
this.middle = this.yAxis.createAxisRange(this.yAxis.makeDataItem({}));
|
|
89
77
|
const middleGrid = this.middle.get("grid");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverboughtOversold.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/OverboughtOversold.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\nimport type { IValueAxisDataItem } from \"../../xy/axes/ValueAxis\";\r\nimport type { DataItem } from \"../../../core/render/Component\";\r\nimport type { Color } from \"../../../core/util/Color\";\r\n\r\nimport { ChartIndicator, IChartIndicatorSettings, IChartIndicatorPrivate, IChartIndicatorEvents } from \"./ChartIndicator\";\r\nimport { LineSeries, ILineSeriesAxisRange } from \"../../xy/series/LineSeries\";\r\nimport { Button } from \"../../../core/render/Button\";\r\nimport { Graphics } from \"../../../core/render/Graphics\";\r\nimport { AxisBullet } from \"../../xy/axes/AxisBullet\";\r\nimport type { AxisRendererY } from \"../../xy/axes/AxisRendererY\";\r\nimport * as $math from \"../../../core/util/Math\";\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\n\r\nexport interface IOverboughtOversoldSettings extends IChartIndicatorSettings {\r\n\r\n\t/**\r\n\t * A value for \"overbought\" threshold.\r\n\t */\r\n\toverBought?: number;\r\n\r\n\t/**\r\n\t * A value for \"oversold\" threshold.\r\n\t */\r\n\toverSold?: number;\r\n\r\n\t/**\r\n\t * A color for \"overbought\" section.\r\n\t */\r\n\toverBoughtColor?: Color;\r\n\r\n\t/**\r\n\t * A color for \"oversold\" section.\r\n\t */\r\n\toverSoldColor?: Color;\r\n}\r\n\r\nexport interface IOverboughtOversoldPrivate extends IChartIndicatorPrivate { }\r\n\r\nexport interface IOverboughtOversoldEvents extends IChartIndicatorEvents { }\r\n\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class OverboughtOversold extends ChartIndicator {\r\n\tpublic static className: string = \"OverboughtOversold\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([OverboughtOversold.className]);\r\n\r\n\tdeclare public _settings: IOverboughtOversoldSettings;\r\n\tdeclare public _privateSettings: IOverboughtOversoldPrivate;\r\n\tdeclare public _events: IOverboughtOversoldEvents;\r\n\r\n\tpublic overBought!: DataItem<IValueAxisDataItem>;\r\n\tpublic middle!: DataItem<IValueAxisDataItem>;\r\n\tpublic overSold!: DataItem<IValueAxisDataItem>;\r\n\r\n\tpublic overSoldRange!: ILineSeriesAxisRange;\r\n\tpublic overBoughtRange!: ILineSeriesAxisRange;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tdeclare public series: LineSeries;\r\n\r\n\tpublic _editableSettings: IIndicatorEditableSetting[] = [{\r\n\t\tkey: \"overBought\",\r\n\t\tname: this.root.language.translateAny(\"Overbought\"),\r\n\t\ttype: \"number\"\r\n\t}, {\r\n\t\tkey: \"overBoughtColor\",\r\n\t\tname: this.root.language.translateAny(\"Overbought\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"overSold\",\r\n\t\tname: this.root.language.translateAny(\"Oversold\"),\r\n\t\ttype: \"number\"\r\n\t}, {\r\n\t\tkey: \"overSoldColor\",\r\n\t\tname: this.root.language.translateAny(\"Oversold\"),\r\n\t\ttype: \"color\"\r\n\t}];\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis._themeTags.push(\"overboughtoversold\");\r\n\r\n\t\tsuper._afterNew();\r\n\r\n\t\tconst chart = this.panel;\r\n\t\tconst yAxis = this.yAxis;\r\n\t\tyAxis.set(\"strictMinMax\", true);\r\n\r\n\t\tyAxis.onPrivate(\"max\", (max) => {\r\n\t\t\tconst overBought = this.get(\"overBought\", 0);\r\n\t\t\tif ($type.isNumber(max) && max < overBought) {\r\n\t\t\t\tyAxis.setPrivateRaw(\"max\", overBought);\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tyAxis.onPrivate(\"min\", (min) => {\r\n\t\t\tconst overSold = this.get(\"overSold\", 0);\r\n\t\t\tif ($type.isNumber(min) && min > overSold) {\r\n\t\t\t\tyAxis.setPrivateRaw(\"min\", overSold);\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// middle grid\r\n\t\tthis.middle = this.yAxis.createAxisRange(this.yAxis.makeDataItem({}));\r\n\t\tconst middleGrid = this.middle.get(\"grid\")!;\r\n\t\tmiddleGrid.setAll({ themeTags: [\"middlegrid\"] });\r\n\t\tmiddleGrid._applyThemes();\r\n\r\n\t\tconst middleLabel = this.middle.get(\"label\")!;\r\n\t\tmiddleLabel.setAll({ visible: true, forceHidden: false });\r\n\r\n\t\tconst opposite = (yAxis.get(\"renderer\") as AxisRendererY).get(\"opposite\");\r\n\t\tlet side = \"left\";\r\n\t\tif (opposite) {\r\n\t\t\tside = \"right\"\r\n\t\t}\r\n\r\n\t\t// overbought range\r\n\t\tconst overBought = yAxis.makeDataItem({});\r\n\t\tthis.overBought = overBought;\r\n\t\toverBought.set(\"endValue\", 500);\r\n\t\toverBought.set(\"affectsMinMax\", false);\r\n\r\n\t\tconst overBoughtRB = Button.new(this._root, {\r\n\t\t\tthemeTags: [\"rangegrip\", \"vertical\", side],\r\n\t\t\ticon: Graphics.new(this._root, {\r\n\t\t\t\tthemeTags: [\"rangegrip\", \"icon\"]\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t// restrict from being dragged vertically\r\n\t\toverBoughtRB.adapters.add(\"x\", function() {\r\n\t\t\treturn 0;\r\n\t\t});\r\n\r\n\t\t// restrict from being dragged outside of plot\r\n\t\toverBoughtRB.adapters.add(\"y\", function(y) {\r\n\t\t\tif ($type.isNumber(y)) {\r\n\t\t\t\treturn $math.fitToRange(y, 0, chart.plotContainer.height());\r\n\t\t\t}\r\n\t\t\treturn y;\r\n\t\t});\r\n\r\n\t\t// change range when y changes\r\n\t\toverBoughtRB.events.on(\"dragged\", () => {\r\n\t\t\tthis._updateRange(overBoughtRB, \"overBought\");\r\n\t\t});\r\n\r\n\t\toverBought.set(\"bullet\", AxisBullet.new(this._root, {\r\n\t\t\tlocation: 0,\r\n\t\t\tsprite: overBoughtRB\r\n\t\t}))\r\n\r\n\t\tconst overBoughtRange = this.series.createAxisRange(overBought);\r\n\t\tthis.overBoughtRange = overBoughtRange;\r\n\t\tconst overBoughtFills = overBoughtRange.fills;\r\n\t\tif (overBoughtFills) {\r\n\t\t\toverBoughtFills.template.set(\"themeTags\", [\"overbought\", \"fill\"]);\r\n\t\t}\r\n\r\n\t\tconst overBoughtGrid = overBought.get(\"grid\")!;\r\n\t\toverBoughtGrid.setAll({ themeTags: [\"overbought\"], visible: true });\r\n\t\toverBoughtGrid._applyThemes();\r\n\r\n\t\tconst overBoughtLabel = overBought.get(\"label\")!;\r\n\t\toverBoughtLabel.setAll({ visible: true, forceHidden: false, location: 0 });\r\n\r\n\t\t// oversold range\r\n\t\tconst overSold = yAxis.makeDataItem({});\r\n\t\tthis.overSold = overSold;\r\n\t\toverSold.set(\"endValue\", -500);\r\n\t\toverSold.set(\"affectsMinMax\", false);\r\n\r\n\r\n\t\tconst overSoldRB = Button.new(this._root, {\r\n\t\t\tthemeTags: [\"rangegrip\", \"vertical\", side],\r\n\t\t\ticon: Graphics.new(this._root, {\r\n\t\t\t\tthemeTags: [\"rangegrip\", \"icon\"]\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t// restrict from being dragged vertically\r\n\t\toverSoldRB.adapters.add(\"x\", function() {\r\n\t\t\treturn 0;\r\n\t\t});\r\n\r\n\t\t// restrict from being dragged outside of plot\r\n\t\toverSoldRB.adapters.add(\"y\", function(y) {\r\n\t\t\tif ($type.isNumber(y)) {\r\n\t\t\t\treturn $math.fitToRange(y, 0, chart.plotContainer.height());\r\n\t\t\t}\r\n\t\t\treturn y;\r\n\t\t});\r\n\r\n\t\t// change range when y changes\r\n\t\toverSoldRB.events.on(\"dragged\", () => {\r\n\t\t\tthis._updateRange(overSoldRB, \"overSold\");\r\n\t\t});\r\n\r\n\t\toverSold.set(\"bullet\", AxisBullet.new(this._root, {\r\n\t\t\tlocation: 0,\r\n\t\t\tsprite: overSoldRB\r\n\t\t}))\r\n\r\n\r\n\t\tconst overSoldRange = this.series.createAxisRange(overSold);\r\n\t\tthis.overSoldRange = overSoldRange;\r\n\t\tconst overSoldFills = overSoldRange.fills;\r\n\t\tif (overSoldFills) {\r\n\t\t\toverSoldFills.template.set(\"themeTags\", [\"oversold\", \"fill\"]);\r\n\t\t}\r\n\r\n\t\tconst overSoldGrid = overSold.get(\"grid\")!;\r\n\t\toverSoldGrid.setAll({ themeTags: [\"oversold\"], visible: true });\r\n\t\toverSoldGrid._applyThemes();\r\n\r\n\t\tconst overSoldLabel = overSold.get(\"label\")!;\r\n\t\toverSoldLabel.setAll({ visible: true, forceHidden: false, location: 0 });\r\n\t}\r\n\r\n\tprotected _updateRange(button: Button, key: \"overBought\" | \"overSold\") {\r\n\t\tconst chart = this.yAxis.chart;\r\n\t\tif (chart) {\r\n\t\t\tconst position = this.yAxis.toAxisPosition(button.y() / chart.plotContainer.height());\r\n\t\t\tthis.set(key, Math.round(this.yAxis.positionToValue(position)));\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic _createSeries(): LineSeries {\r\n\t\treturn this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tthemeTags: [\"indicator\"],\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"valueS\",\r\n\t\t\tstroke: this.get(\"seriesColor\"),\r\n\t\t\tfill: undefined\r\n\t\t}))\r\n\t}\r\n\r\n\tpublic _prepareChildren() {\r\n\t\tsuper._prepareChildren();\r\n\r\n\t\tconst overBoughtLabel = this.overBought.get(\"label\")!;\r\n\t\tconst overSoldLabel = this.overSold.get(\"label\")!;\r\n\t\tconst middleLabel = this.middle.get(\"label\")!;\r\n\r\n\t\tif (this.isDirty(\"overBought\") || this.isDirty(\"overSold\")) {\r\n\t\t\tconst numberFormatter = this.getNumberFormatter();\r\n\r\n\t\t\tconst overSoldValue = this.get(\"overSold\", 0);\r\n\t\t\tconst overBoughtValue = this.get(\"overBought\", 0);\r\n\t\t\tconst middleValue = overSoldValue + (overBoughtValue - overSoldValue) / 2;\r\n\r\n\t\t\toverBoughtLabel.set(\"text\", numberFormatter.format(overBoughtValue));\r\n\t\t\toverSoldLabel.set(\"text\", numberFormatter.format(overSoldValue));\r\n\t\t\tmiddleLabel.set(\"text\", numberFormatter.format(middleValue));\r\n\r\n\t\t\tthis.overBought.set(\"value\", overBoughtValue);\r\n\t\t\tthis.overSold.set(\"value\", overSoldValue);\r\n\r\n\t\t\tthis.middle.set(\"value\", middleValue);\r\n\t\t\tthis.yAxis.set(\"baseValue\", middleValue);\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"overSoldColor\")) {\r\n\t\t\tconst color = this.get(\"overSoldColor\");\r\n\t\t\toverSoldLabel.set(\"fill\", color);\r\n\r\n\t\t\tthis.overSold.get(\"grid\")!.set(\"stroke\", color);\r\n\t\t\tthis.overSoldRange.fills!.template.set(\"fill\", color);\r\n\t\t\tthis.overSoldRange.strokes!.template.set(\"stroke\", color);\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"overBoughtColor\")) {\r\n\t\t\tconst color = this.get(\"overBoughtColor\");\r\n\t\t\toverBoughtLabel.set(\"fill\", color);\r\n\r\n\t\t\tthis.overBought.get(\"grid\")!.set(\"stroke\", color);\r\n\t\t\tthis.overBoughtRange.fills!.template.set(\"fill\", color);\r\n\t\t\tthis.overBoughtRange.strokes!.template.set(\"stroke\", color);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\r\n\t\tif (this.isDirty(\"period\")) {\r\n\t\t\tthis._dataDirty = true;\r\n\t\t}\r\n\r\n\t\tsuper._updateChildren();\r\n\t}\r\n}"]}
|
|
1
|
+
{"version":3,"file":"OverboughtOversold.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/OverboughtOversold.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAA0E,MAAM,kBAAkB,CAAC;AAC1H,OAAO,EAAE,UAAU,EAAwB,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,KAAK,MAAM,yBAAyB,CAAC;AA+BjD;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IAAtD;;QAQC;;;;;WAAiD;QACjD;;;;;WAA6C;QAC7C;;;;;WAA+C;QAE/C;;;;;WAA4C;QAC5C;;;;;WAA8C;QAO9C;;;;mBAAwD,CAAC;oBACxD,GAAG,EAAE,YAAY;oBACjB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC;oBACnD,IAAI,EAAE,QAAQ;iBACd,EAAE;oBACF,GAAG,EAAE,iBAAiB;oBACtB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC;oBACnD,IAAI,EAAE,OAAO;iBACb,EAAE;oBACF,GAAG,EAAE,UAAU;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC;oBACjD,IAAI,EAAE,QAAQ;iBACd,EAAE;oBACF,GAAG,EAAE,eAAe;oBACpB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC;oBACjD,IAAI,EAAE,OAAO;iBACb,CAAC;WAAC;IA0MJ,CAAC;IAxMU,SAAS;QAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAE3C,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,KAAK,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAEtD,cAAc;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QAC5C,UAAU,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACjD,UAAU,CAAC,YAAY,EAAE,CAAC;QAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QAC9C,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1E,IAAI,IAAI,GAAG,MAAM,CAAC;QAClB,IAAI,QAAQ,EAAE;YACb,IAAI,GAAG,OAAO,CAAA;SACd;QAED,mBAAmB;QACnB,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAChC,UAAU,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAEvC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YAC3C,SAAS,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC;YAC1C,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;gBAC9B,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;aAChC,CAAC;SACF,CAAC,CAAA;QAEF,yCAAyC;QACzC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE;YAC9B,OAAO,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEH,8CAA8C;QAC9C,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,UAAS,CAAC;YACxC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;gBACtB,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;aAC5D;YACD,OAAO,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEH,8BAA8B;QAC9B,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACtC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACnD,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,YAAY;SACpB,CAAC,CAAC,CAAA;QAEH,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,MAAM,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC;QAC9C,IAAI,eAAe,EAAE;YACpB,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;SAClE;QAED,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QAC/C,cAAc,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,cAAc,CAAC,YAAY,EAAE,CAAC;QAE9B,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QACjD,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAE3E,iBAAiB;QACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;QAC/B,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAGrC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACzC,SAAS,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC;YAC1C,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;gBAC9B,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;aAChC,CAAC;SACF,CAAC,CAAA;QAEF,yCAAyC;QACzC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5B,OAAO,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEH,8CAA8C;QAC9C,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,UAAS,CAAC;YACtC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;gBACtB,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;aAC5D;YACD,OAAO,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEH,8BAA8B;QAC9B,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACpC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACjD,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,UAAU;SAClB,CAAC,CAAC,CAAA;QAGH,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC;QAC1C,IAAI,aAAa,EAAE;YAClB,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;SAC9D;QAED,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QAC3C,YAAY,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,YAAY,CAAC,YAAY,EAAE,CAAC;QAE5B,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QAC7C,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAES,YAAY,CAAC,MAAc,EAAE,GAA8B;QACpE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/B,IAAI,KAAK,EAAE;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;YACtF,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SAChE;IAEF,CAAC;IAEM,aAAa;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;YACxD,SAAS,EAAE,CAAC,WAAW,CAAC;YACxB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,QAAQ;YACrB,WAAW,EAAE,QAAQ;YACrB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YAC/B,IAAI,EAAE,SAAS;SACf,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,gBAAgB;QACtB,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAEzB,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QACtD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QAE9C,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC3D,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAElD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;YAClD,MAAM,WAAW,GAAG,aAAa,GAAG,CAAC,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YAE1E,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;YACrE,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YACjE,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YAE7D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAE1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;SACzC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACxC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAEjC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,aAAa,CAAC,KAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,aAAa,CAAC,OAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC1D;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC1C,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAEnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,eAAe,CAAC,KAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACxD,IAAI,CAAC,eAAe,CAAC,OAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC5D;IACF,CAAC;IAEM,eAAe;QAErB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACvB;QAED,KAAK,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;;AA5OD;;;;WAAkC,oBAAoB;GAAC;AACvD;;;;WAA0C,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;GAAC","sourcesContent":["import type { IIndicatorEditableSetting } from \"./Indicator\";\r\nimport type { IValueAxisDataItem } from \"../../xy/axes/ValueAxis\";\r\nimport type { DataItem } from \"../../../core/render/Component\";\r\nimport type { Color } from \"../../../core/util/Color\";\r\n\r\nimport { ChartIndicator, IChartIndicatorSettings, IChartIndicatorPrivate, IChartIndicatorEvents } from \"./ChartIndicator\";\r\nimport { LineSeries, ILineSeriesAxisRange } from \"../../xy/series/LineSeries\";\r\nimport { Button } from \"../../../core/render/Button\";\r\nimport { Graphics } from \"../../../core/render/Graphics\";\r\nimport { AxisBullet } from \"../../xy/axes/AxisBullet\";\r\nimport type { AxisRendererY } from \"../../xy/axes/AxisRendererY\";\r\nimport * as $math from \"../../../core/util/Math\";\r\nimport * as $type from \"../../../core/util/Type\";\r\n\r\n\r\nexport interface IOverboughtOversoldSettings extends IChartIndicatorSettings {\r\n\r\n\t/**\r\n\t * A value for \"overbought\" threshold.\r\n\t */\r\n\toverBought?: number;\r\n\r\n\t/**\r\n\t * A value for \"oversold\" threshold.\r\n\t */\r\n\toverSold?: number;\r\n\r\n\t/**\r\n\t * A color for \"overbought\" section.\r\n\t */\r\n\toverBoughtColor?: Color;\r\n\r\n\t/**\r\n\t * A color for \"oversold\" section.\r\n\t */\r\n\toverSoldColor?: Color;\r\n}\r\n\r\nexport interface IOverboughtOversoldPrivate extends IChartIndicatorPrivate { }\r\n\r\nexport interface IOverboughtOversoldEvents extends IChartIndicatorEvents { }\r\n\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class OverboughtOversold extends ChartIndicator {\r\n\tpublic static className: string = \"OverboughtOversold\";\r\n\tpublic static classNames: Array<string> = ChartIndicator.classNames.concat([OverboughtOversold.className]);\r\n\r\n\tdeclare public _settings: IOverboughtOversoldSettings;\r\n\tdeclare public _privateSettings: IOverboughtOversoldPrivate;\r\n\tdeclare public _events: IOverboughtOversoldEvents;\r\n\r\n\tpublic overBought!: DataItem<IValueAxisDataItem>;\r\n\tpublic middle!: DataItem<IValueAxisDataItem>;\r\n\tpublic overSold!: DataItem<IValueAxisDataItem>;\r\n\r\n\tpublic overSoldRange!: ILineSeriesAxisRange;\r\n\tpublic overBoughtRange!: ILineSeriesAxisRange;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tdeclare public series: LineSeries;\r\n\r\n\tpublic _editableSettings: IIndicatorEditableSetting[] = [{\r\n\t\tkey: \"overBought\",\r\n\t\tname: this.root.language.translateAny(\"Overbought\"),\r\n\t\ttype: \"number\"\r\n\t}, {\r\n\t\tkey: \"overBoughtColor\",\r\n\t\tname: this.root.language.translateAny(\"Overbought\"),\r\n\t\ttype: \"color\"\r\n\t}, {\r\n\t\tkey: \"overSold\",\r\n\t\tname: this.root.language.translateAny(\"Oversold\"),\r\n\t\ttype: \"number\"\r\n\t}, {\r\n\t\tkey: \"overSoldColor\",\r\n\t\tname: this.root.language.translateAny(\"Oversold\"),\r\n\t\ttype: \"color\"\r\n\t}];\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis._themeTags.push(\"overboughtoversold\");\r\n\r\n\t\tsuper._afterNew();\r\n\r\n\t\tconst chart = this.panel;\r\n\t\tconst yAxis = this.yAxis;\r\n\t\tyAxis.setAll({ strictMinMax: true, autoZoom: false });\r\n\r\n\t\t// middle grid\r\n\t\tthis.middle = this.yAxis.createAxisRange(this.yAxis.makeDataItem({}));\r\n\t\tconst middleGrid = this.middle.get(\"grid\")!;\r\n\t\tmiddleGrid.setAll({ themeTags: [\"middlegrid\"] });\r\n\t\tmiddleGrid._applyThemes();\r\n\r\n\t\tconst middleLabel = this.middle.get(\"label\")!;\r\n\t\tmiddleLabel.setAll({ visible: true, forceHidden: false });\r\n\r\n\t\tconst opposite = (yAxis.get(\"renderer\") as AxisRendererY).get(\"opposite\");\r\n\t\tlet side = \"left\";\r\n\t\tif (opposite) {\r\n\t\t\tside = \"right\"\r\n\t\t}\r\n\r\n\t\t// overbought range\r\n\t\tconst overBought = yAxis.makeDataItem({});\r\n\t\tthis.overBought = overBought;\r\n\t\toverBought.set(\"endValue\", 500);\r\n\t\toverBought.set(\"affectsMinMax\", false);\r\n\r\n\t\tconst overBoughtRB = Button.new(this._root, {\r\n\t\t\tthemeTags: [\"rangegrip\", \"vertical\", side],\r\n\t\t\ticon: Graphics.new(this._root, {\r\n\t\t\t\tthemeTags: [\"rangegrip\", \"icon\"]\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t// restrict from being dragged vertically\r\n\t\toverBoughtRB.adapters.add(\"x\", function() {\r\n\t\t\treturn 0;\r\n\t\t});\r\n\r\n\t\t// restrict from being dragged outside of plot\r\n\t\toverBoughtRB.adapters.add(\"y\", function(y) {\r\n\t\t\tif ($type.isNumber(y)) {\r\n\t\t\t\treturn $math.fitToRange(y, 0, chart.plotContainer.height());\r\n\t\t\t}\r\n\t\t\treturn y;\r\n\t\t});\r\n\r\n\t\t// change range when y changes\r\n\t\toverBoughtRB.events.on(\"dragged\", () => {\r\n\t\t\tthis._updateRange(overBoughtRB, \"overBought\");\r\n\t\t});\r\n\r\n\t\toverBought.set(\"bullet\", AxisBullet.new(this._root, {\r\n\t\t\tlocation: 0,\r\n\t\t\tsprite: overBoughtRB\r\n\t\t}))\r\n\r\n\t\tconst overBoughtRange = this.series.createAxisRange(overBought);\r\n\t\tthis.overBoughtRange = overBoughtRange;\r\n\t\tconst overBoughtFills = overBoughtRange.fills;\r\n\t\tif (overBoughtFills) {\r\n\t\t\toverBoughtFills.template.set(\"themeTags\", [\"overbought\", \"fill\"]);\r\n\t\t}\r\n\r\n\t\tconst overBoughtGrid = overBought.get(\"grid\")!;\r\n\t\toverBoughtGrid.setAll({ themeTags: [\"overbought\"], visible: true });\r\n\t\toverBoughtGrid._applyThemes();\r\n\r\n\t\tconst overBoughtLabel = overBought.get(\"label\")!;\r\n\t\toverBoughtLabel.setAll({ visible: true, forceHidden: false, location: 0 });\r\n\r\n\t\t// oversold range\r\n\t\tconst overSold = yAxis.makeDataItem({});\r\n\t\tthis.overSold = overSold;\r\n\t\toverSold.set(\"endValue\", -500);\r\n\t\toverSold.set(\"affectsMinMax\", false);\r\n\r\n\r\n\t\tconst overSoldRB = Button.new(this._root, {\r\n\t\t\tthemeTags: [\"rangegrip\", \"vertical\", side],\r\n\t\t\ticon: Graphics.new(this._root, {\r\n\t\t\t\tthemeTags: [\"rangegrip\", \"icon\"]\r\n\t\t\t})\r\n\t\t})\r\n\r\n\t\t// restrict from being dragged vertically\r\n\t\toverSoldRB.adapters.add(\"x\", function() {\r\n\t\t\treturn 0;\r\n\t\t});\r\n\r\n\t\t// restrict from being dragged outside of plot\r\n\t\toverSoldRB.adapters.add(\"y\", function(y) {\r\n\t\t\tif ($type.isNumber(y)) {\r\n\t\t\t\treturn $math.fitToRange(y, 0, chart.plotContainer.height());\r\n\t\t\t}\r\n\t\t\treturn y;\r\n\t\t});\r\n\r\n\t\t// change range when y changes\r\n\t\toverSoldRB.events.on(\"dragged\", () => {\r\n\t\t\tthis._updateRange(overSoldRB, \"overSold\");\r\n\t\t});\r\n\r\n\t\toverSold.set(\"bullet\", AxisBullet.new(this._root, {\r\n\t\t\tlocation: 0,\r\n\t\t\tsprite: overSoldRB\r\n\t\t}))\r\n\r\n\r\n\t\tconst overSoldRange = this.series.createAxisRange(overSold);\r\n\t\tthis.overSoldRange = overSoldRange;\r\n\t\tconst overSoldFills = overSoldRange.fills;\r\n\t\tif (overSoldFills) {\r\n\t\t\toverSoldFills.template.set(\"themeTags\", [\"oversold\", \"fill\"]);\r\n\t\t}\r\n\r\n\t\tconst overSoldGrid = overSold.get(\"grid\")!;\r\n\t\toverSoldGrid.setAll({ themeTags: [\"oversold\"], visible: true });\r\n\t\toverSoldGrid._applyThemes();\r\n\r\n\t\tconst overSoldLabel = overSold.get(\"label\")!;\r\n\t\toverSoldLabel.setAll({ visible: true, forceHidden: false, location: 0 });\r\n\t}\r\n\r\n\tprotected _updateRange(button: Button, key: \"overBought\" | \"overSold\") {\r\n\t\tconst chart = this.yAxis.chart;\r\n\t\tif (chart) {\r\n\t\t\tconst position = this.yAxis.toAxisPosition(button.y() / chart.plotContainer.height());\r\n\t\t\tthis.set(key, Math.round(this.yAxis.positionToValue(position)));\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tpublic _createSeries(): LineSeries {\r\n\t\treturn this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tthemeTags: [\"indicator\"],\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"valueS\",\r\n\t\t\tstroke: this.get(\"seriesColor\"),\r\n\t\t\tfill: undefined\r\n\t\t}))\r\n\t}\r\n\r\n\tpublic _prepareChildren() {\r\n\t\tsuper._prepareChildren();\r\n\r\n\t\tconst overBoughtLabel = this.overBought.get(\"label\")!;\r\n\t\tconst overSoldLabel = this.overSold.get(\"label\")!;\r\n\t\tconst middleLabel = this.middle.get(\"label\")!;\r\n\r\n\t\tif (this.isDirty(\"overBought\") || this.isDirty(\"overSold\")) {\r\n\t\t\tconst numberFormatter = this.getNumberFormatter();\r\n\r\n\t\t\tconst overSoldValue = this.get(\"overSold\", 0);\r\n\t\t\tconst overBoughtValue = this.get(\"overBought\", 0);\r\n\t\t\tconst middleValue = overSoldValue + (overBoughtValue - overSoldValue) / 2;\r\n\r\n\t\t\toverBoughtLabel.set(\"text\", numberFormatter.format(overBoughtValue));\r\n\t\t\toverSoldLabel.set(\"text\", numberFormatter.format(overSoldValue));\r\n\t\t\tmiddleLabel.set(\"text\", numberFormatter.format(middleValue));\r\n\r\n\t\t\tthis.overBought.set(\"value\", overBoughtValue);\r\n\t\t\tthis.overSold.set(\"value\", overSoldValue);\r\n\r\n\t\t\tthis.middle.set(\"value\", middleValue);\r\n\t\t\tthis.yAxis.set(\"baseValue\", middleValue);\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"overSoldColor\")) {\r\n\t\t\tconst color = this.get(\"overSoldColor\");\r\n\t\t\toverSoldLabel.set(\"fill\", color);\r\n\r\n\t\t\tthis.overSold.get(\"grid\")!.set(\"stroke\", color);\r\n\t\t\tthis.overSoldRange.fills!.template.set(\"fill\", color);\r\n\t\t\tthis.overSoldRange.strokes!.template.set(\"stroke\", color);\r\n\t\t}\r\n\r\n\t\tif (this.isDirty(\"overBoughtColor\")) {\r\n\t\t\tconst color = this.get(\"overBoughtColor\");\r\n\t\t\toverBoughtLabel.set(\"fill\", color);\r\n\r\n\t\t\tthis.overBought.get(\"grid\")!.set(\"stroke\", color);\r\n\t\t\tthis.overBoughtRange.fills!.template.set(\"fill\", color);\r\n\t\t\tthis.overBoughtRange.strokes!.template.set(\"stroke\", color);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\r\n\t\tif (this.isDirty(\"period\")) {\r\n\t\t\tthis._dataDirty = true;\r\n\t\t}\r\n\r\n\t\tsuper._updateChildren();\r\n\t}\r\n}"]}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { OverboughtOversold, IOverboughtOversoldSettings, IOverboughtOversoldPrivate, IOverboughtOversoldEvents } from "./OverboughtOversold";
|
|
2
|
+
import { LineSeries } from "../../xy/series/LineSeries";
|
|
3
|
+
import type { Color } from "../../../core/util/Color";
|
|
2
4
|
export interface IRelativeStrengthIndexSettings extends IOverboughtOversoldSettings {
|
|
5
|
+
/**
|
|
6
|
+
* EMA period.
|
|
7
|
+
*/
|
|
8
|
+
smaPeriod?: number;
|
|
9
|
+
/**
|
|
10
|
+
* A color for "ema" line.
|
|
11
|
+
*/
|
|
12
|
+
smaColor?: Color;
|
|
3
13
|
}
|
|
4
14
|
export interface IRelativeStrengthIndexPrivate extends IOverboughtOversoldPrivate {
|
|
5
15
|
}
|
|
@@ -16,7 +26,12 @@ export declare class RelativeStrengthIndex extends OverboughtOversold {
|
|
|
16
26
|
_settings: IRelativeStrengthIndexSettings;
|
|
17
27
|
_privateSettings: IRelativeStrengthIndexPrivate;
|
|
18
28
|
_events: IRelativeStrengthIndexEvents;
|
|
29
|
+
/**
|
|
30
|
+
* Indicator series.
|
|
31
|
+
*/
|
|
32
|
+
smaSeries: LineSeries;
|
|
19
33
|
protected _afterNew(): void;
|
|
34
|
+
_updateChildren(): void;
|
|
20
35
|
/**
|
|
21
36
|
* @ignore
|
|
22
37
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelativeStrengthIndex.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/RelativeStrengthIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"RelativeStrengthIndex.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/RelativeStrengthIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAC9I,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAItD,MAAM,WAAW,8BAA+B,SAAQ,2BAA2B;IAClF;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC;CACjB;AAED,MAAM,WAAW,6BAA8B,SAAQ,0BAA0B;CAAI;AAErF,MAAM,WAAW,4BAA6B,SAAQ,yBAAyB;CAAI;AAEnF;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,kBAAkB;IAC5D,OAAc,SAAS,EAAE,MAAM,CAA2B;IAC1D,OAAc,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAA2E;IAEnG,SAAS,EAAE,8BAA8B,CAAC;IAC1C,gBAAgB,EAAE,6BAA6B,CAAC;IAChD,OAAO,EAAE,4BAA4B,CAAC;IAErD;;OAEG;IACI,SAAS,EAAG,UAAU,CAAC;IAE9B,SAAS,CAAC,SAAS;IAuCZ,eAAe;IAatB;;OAEG;IACI,WAAW;CAqElB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { OverboughtOversold } from "./OverboughtOversold";
|
|
2
|
+
import { LineSeries } from "../../xy/series/LineSeries";
|
|
2
3
|
import * as $array from "../../../core/util/Array";
|
|
3
4
|
/**
|
|
4
5
|
* An implementation of a [[StockChart]] indicator.
|
|
@@ -6,6 +7,18 @@ import * as $array from "../../../core/util/Array";
|
|
|
6
7
|
* @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info
|
|
7
8
|
*/
|
|
8
9
|
export class RelativeStrengthIndex extends OverboughtOversold {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
/**
|
|
13
|
+
* Indicator series.
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(this, "smaSeries", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: void 0
|
|
20
|
+
});
|
|
21
|
+
}
|
|
9
22
|
_afterNew() {
|
|
10
23
|
this._themeTags.push("rsi");
|
|
11
24
|
super._afterNew();
|
|
@@ -13,16 +26,43 @@ export class RelativeStrengthIndex extends OverboughtOversold {
|
|
|
13
26
|
key: "period",
|
|
14
27
|
name: this.root.language.translateAny("Period"),
|
|
15
28
|
type: "number"
|
|
29
|
+
}, {
|
|
30
|
+
key: "seriesColor",
|
|
31
|
+
name: this.root.language.translateAny("Period"),
|
|
32
|
+
type: "color"
|
|
16
33
|
}, {
|
|
17
34
|
key: "field",
|
|
18
35
|
name: this.root.language.translateAny("Field"),
|
|
19
36
|
type: "dropdown",
|
|
20
37
|
options: ["open", "close", "low", "high", "hl/2", "hlc/3", "hlcc/4", "ohlc/4"]
|
|
21
38
|
}, {
|
|
22
|
-
key: "
|
|
23
|
-
name: this.root.language.translateAny("
|
|
39
|
+
key: "smaPeriod",
|
|
40
|
+
name: this.root.language.translateAny("SMA period"),
|
|
41
|
+
type: "number"
|
|
42
|
+
}, {
|
|
43
|
+
key: "smaColor",
|
|
44
|
+
name: this.root.language.translateAny("SMA period"),
|
|
24
45
|
type: "color"
|
|
25
46
|
});
|
|
47
|
+
const smaSeries = this.panel.series.push(LineSeries.new(this._root, {
|
|
48
|
+
valueXField: "valueX",
|
|
49
|
+
valueYField: "sma",
|
|
50
|
+
xAxis: this.xAxis,
|
|
51
|
+
yAxis: this.yAxis,
|
|
52
|
+
groupDataDisabled: true,
|
|
53
|
+
themeTags: ["indicator", "sma"]
|
|
54
|
+
}));
|
|
55
|
+
this.smaSeries = smaSeries;
|
|
56
|
+
}
|
|
57
|
+
_updateChildren() {
|
|
58
|
+
super._updateChildren();
|
|
59
|
+
if (this.isDirty("smaColor")) {
|
|
60
|
+
this._updateSeriesColor(this.smaSeries, this.get("smaColor"), "smaColor");
|
|
61
|
+
}
|
|
62
|
+
if (this.isDirty("smaPeriod")) {
|
|
63
|
+
this._dataDirty = true;
|
|
64
|
+
this.setCustomData("smaPeriod", this.get("smaPeriod"));
|
|
65
|
+
}
|
|
26
66
|
}
|
|
27
67
|
/**
|
|
28
68
|
* @ignore
|
|
@@ -30,7 +70,7 @@ export class RelativeStrengthIndex extends OverboughtOversold {
|
|
|
30
70
|
prepareData() {
|
|
31
71
|
if (this.series) {
|
|
32
72
|
const dataItems = this.get("stockSeries").dataItems;
|
|
33
|
-
|
|
73
|
+
let period = this.get("period", 14);
|
|
34
74
|
const data = [];
|
|
35
75
|
let i = 0;
|
|
36
76
|
let averageGain = 0;
|
|
@@ -79,6 +119,10 @@ export class RelativeStrengthIndex extends OverboughtOversold {
|
|
|
79
119
|
prevAverageLoss = averageLoss;
|
|
80
120
|
});
|
|
81
121
|
this.series.data.setAll(data);
|
|
122
|
+
period = this.get("smaPeriod", 3);
|
|
123
|
+
this._sma(data, period, "valueS", "sma");
|
|
124
|
+
this.series.data.setAll(data);
|
|
125
|
+
this.smaSeries.data.setAll(data);
|
|
82
126
|
}
|
|
83
127
|
}
|
|
84
128
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelativeStrengthIndex.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/RelativeStrengthIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAsF,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"RelativeStrengthIndex.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/RelativeStrengthIndex.ts"],"names":[],"mappings":"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","sourcesContent":["import { OverboughtOversold, IOverboughtOversoldSettings, IOverboughtOversoldPrivate, IOverboughtOversoldEvents } from \"./OverboughtOversold\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\nimport type { Color } from \"../../../core/util/Color\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\n\r\nexport interface IRelativeStrengthIndexSettings extends IOverboughtOversoldSettings {\r\n\t/**\r\n\t * EMA period.\r\n\t */\r\n\tsmaPeriod?: number;\r\n\r\n\t/**\r\n\t * A color for \"ema\" line.\r\n\t */\r\n\tsmaColor?: Color;\r\n}\r\n\r\nexport interface IRelativeStrengthIndexPrivate extends IOverboughtOversoldPrivate { }\r\n\r\nexport interface IRelativeStrengthIndexEvents extends IOverboughtOversoldEvents { }\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class RelativeStrengthIndex extends OverboughtOversold {\r\n\tpublic static className: string = \"RelativeStrengthIndex\";\r\n\tpublic static classNames: Array<string> = OverboughtOversold.classNames.concat([RelativeStrengthIndex.className]);\r\n\r\n\tdeclare public _settings: IRelativeStrengthIndexSettings;\r\n\tdeclare public _privateSettings: IRelativeStrengthIndexPrivate;\r\n\tdeclare public _events: IRelativeStrengthIndexEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tpublic smaSeries!: LineSeries;\r\n\r\n\tprotected _afterNew() {\r\n\r\n\t\tthis._themeTags.push(\"rsi\");\r\n\t\tsuper._afterNew();\r\n\t\tthis._editableSettings.unshift({\r\n\t\t\tkey: \"period\",\r\n\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"seriesColor\",\r\n\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}, {\r\n\t\t\tkey: \"field\",\r\n\t\t\tname: this.root.language.translateAny(\"Field\"),\r\n\t\t\ttype: \"dropdown\",\r\n\t\t\toptions: [\"open\", \"close\", \"low\", \"high\", \"hl/2\", \"hlc/3\", \"hlcc/4\", \"ohlc/4\"]\r\n\t\t}, {\r\n\t\t\tkey: \"smaPeriod\",\r\n\t\t\tname: this.root.language.translateAny(\"SMA period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"smaColor\",\r\n\t\t\tname: this.root.language.translateAny(\"SMA period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t})\r\n\r\n\t\tconst smaSeries = this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"sma\",\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tgroupDataDisabled: true,\r\n\t\t\tthemeTags: [\"indicator\", \"sma\"]\r\n\t\t}))\r\n\r\n\t\tthis.smaSeries = smaSeries;\r\n\t}\r\n\r\n\tpublic _updateChildren(){\r\n\t\tsuper._updateChildren();\r\n\t\tif (this.isDirty(\"smaColor\")) {\r\n\t\t\tthis._updateSeriesColor(this.smaSeries, this.get(\"smaColor\"), \"smaColor\")\r\n\t\t}\r\n\t\tif (this.isDirty(\"smaPeriod\")) {\r\n\t\t\tthis._dataDirty = true;\r\n\t\t\tthis.setCustomData(\"smaPeriod\", this.get(\"smaPeriod\"));\r\n\t\t}\t\t\r\n\t}\r\n\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tlet period = this.get(\"period\", 14);\r\n\t\t\tconst data: Array<any> = [];\r\n\t\t\tlet i = 0;\r\n\t\t\tlet averageGain = 0;\r\n\t\t\tlet averageLoss = 0;\r\n\t\t\tlet prevAverageGain = 0;\r\n\t\t\tlet prevAverageLoss = 0;\r\n\t\t\t$array.each(dataItems, (dataItem) => {\r\n\t\t\t\tlet rsi = null;\r\n\t\t\t\ti++;\r\n\r\n\t\t\t\tif (i == period + 1) {\r\n\t\t\t\t\tfor (let j = 1; j <= period; j++) {\r\n\t\t\t\t\t\tlet value = this._getValue(dataItems[j]);\r\n\t\t\t\t\t\tlet prevValue = this._getValue(dataItems[j - 1]);\r\n\t\t\t\t\t\tif (value != undefined && prevValue != undefined) {\r\n\t\t\t\t\t\t\tlet change = value - prevValue;\r\n\r\n\t\t\t\t\t\t\tif (change > 0) {\r\n\t\t\t\t\t\t\t\taverageGain += change / period;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\taverageLoss += Math.abs(change) / period;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\trsi = 100 - (100 / (1 + averageGain / averageLoss));\r\n\t\t\t\t}\r\n\t\t\t\telse if (i > period) {\r\n\t\t\t\t\tlet value = this._getValue(dataItem);\r\n\t\t\t\t\tlet prevValue = this._getValue(dataItems[i - 2]);\r\n\t\t\t\t\tif (value != null && prevValue != null) {\r\n\t\t\t\t\t\tlet change = value - prevValue;\r\n\r\n\t\t\t\t\t\tlet gain = 0;\r\n\t\t\t\t\t\tlet loss = 0;\r\n\r\n\t\t\t\t\t\tif (change > 0) {\r\n\t\t\t\t\t\t\tgain = change;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tloss = -change;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\taverageGain = (prevAverageGain * (period - 1) + gain) / period;\r\n\t\t\t\t\t\taverageLoss = (prevAverageLoss * (period - 1) + loss) / period;\r\n\r\n\t\t\t\t\t\trsi = 100 - (100 / (1 + averageGain / averageLoss));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdata.push({ valueX: dataItem.get(\"valueX\"), valueS: rsi });\r\n\r\n\t\t\t\tprevAverageGain = averageGain;\r\n\t\t\t\tprevAverageLoss = averageLoss;\r\n\t\t\t})\r\n\t\t\tthis.series.data.setAll(data);\r\n\r\n\t\t\tperiod = this.get(\"smaPeriod\", 3);\r\n\t\t\tthis._sma(data, period, \"valueS\", \"sma\");\r\n\r\n\t\t\tthis.series.data.setAll(data);\r\n\t\t\tthis.smaSeries.data.setAll(data);\r\n\t\t}\r\n\t}\r\n}"]}
|
|
@@ -27,6 +27,10 @@ export class StochasticMomentumIndex extends OverboughtOversold {
|
|
|
27
27
|
key: "period",
|
|
28
28
|
name: this.root.language.translateAny("K period"),
|
|
29
29
|
type: "number"
|
|
30
|
+
}, {
|
|
31
|
+
key: "seriesColor",
|
|
32
|
+
name: this.root.language.translateAny("K period"),
|
|
33
|
+
type: "color"
|
|
30
34
|
}, {
|
|
31
35
|
key: "dPeriod",
|
|
32
36
|
name: this.root.language.translateAny("D period"),
|
|
@@ -35,13 +39,9 @@ export class StochasticMomentumIndex extends OverboughtOversold {
|
|
|
35
39
|
key: "emaPeriod",
|
|
36
40
|
name: this.root.language.translateAny("EMA period"),
|
|
37
41
|
type: "number"
|
|
38
|
-
}, {
|
|
39
|
-
key: "seriesColor",
|
|
40
|
-
name: this.root.language.translateAny("Color"),
|
|
41
|
-
type: "color"
|
|
42
42
|
}, {
|
|
43
43
|
key: "emaColor",
|
|
44
|
-
name: this.root.language.translateAny("EMA
|
|
44
|
+
name: this.root.language.translateAny("EMA period"),
|
|
45
45
|
type: "color"
|
|
46
46
|
});
|
|
47
47
|
const emaSeries = this.panel.series.push(LineSeries.new(this._root, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StochasticMomentumIndex.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/StochasticMomentumIndex.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAsF,MAAM,sBAAsB,CAAC;AAC9I,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AA+BnD;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,kBAAkB;IAA/D;;QAQC;;WAEG;QACH;;;;;WAA8B;IAkI/B,CAAC;IAhIU,SAAS;QAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAE3C,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAC7B;YACC,GAAG,EAAE,QAAQ;YACb,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC;YACjD,IAAI,EAAE,QAAQ;SACd,
|
|
1
|
+
{"version":3,"file":"StochasticMomentumIndex.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/StochasticMomentumIndex.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Color } from \"../../../core/util/Color\";\r\n\r\nimport { OverboughtOversold, IOverboughtOversoldSettings, IOverboughtOversoldPrivate, IOverboughtOversoldEvents } from \"./OverboughtOversold\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\n\r\nexport interface IStochasticMomentumIndexSettings extends IOverboughtOversoldSettings {\r\n\t/**\r\n\t * A color for \"ema\" line.\r\n\t */\r\n\temaColor?: Color;\r\n\r\n\t/**\r\n\t * K period.\r\n\t */\r\n\tkPeriod?: number;\r\n\r\n\t/**\r\n\t * D period.\r\n\t */\r\n\tdPeriod?: number;\r\n\r\n\t/**\r\n\t * EMA period.\r\n\t */\r\n\temaPeriod?: number;\r\n}\r\n\r\nexport interface IStochasticMomentumIndexPrivate extends IOverboughtOversoldPrivate {\r\n}\r\n\r\nexport interface IStochasticMomentumIndexEvents extends IOverboughtOversoldEvents {\r\n}\r\n\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @since 5.5.3\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class StochasticMomentumIndex extends OverboughtOversold {\r\n\tpublic static className: string = \"StochasticMomentumIndex\";\r\n\tpublic static classNames: Array<string> = OverboughtOversold.classNames.concat([StochasticMomentumIndex.className]);\r\n\r\n\tdeclare public _settings: IStochasticMomentumIndexSettings;\r\n\tdeclare public _privateSettings: IStochasticMomentumIndexPrivate;\r\n\tdeclare public _events: IStochasticMomentumIndexEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tpublic emaSeries!: LineSeries;\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis._themeTags.push(\"stochasticmomentum\");\r\n\r\n\t\tsuper._afterNew();\r\n\t\tthis._editableSettings.unshift(\r\n\t\t\t{\r\n\t\t\t\tkey: \"period\",\r\n\t\t\t\tname: this.root.language.translateAny(\"K period\"),\r\n\t\t\t\ttype: \"number\"\r\n\t\t\t},{\r\n\t\t\tkey: \"seriesColor\",\r\n\t\t\tname: this.root.language.translateAny(\"K period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}, {\r\n\t\t\tkey: \"dPeriod\",\r\n\t\t\tname: this.root.language.translateAny(\"D period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"emaPeriod\",\r\n\t\t\tname: this.root.language.translateAny(\"EMA period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"emaColor\",\r\n\t\t\tname: this.root.language.translateAny(\"EMA period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}\r\n\t\t);\r\n\r\n\t\tconst emaSeries = this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"ema\",\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tgroupDataDisabled: true,\r\n\t\t\tthemeTags: [\"indicator\", \"ema\"]\r\n\t\t}))\r\n\r\n\t\tthis.emaSeries = emaSeries;\r\n\t}\r\n\r\n\tpublic _updateChildren() {\r\n\t\tif (this.isDirty(\"dPeriod\") || this.isDirty(\"emaPeriod\")) {\r\n\t\t\tthis._dataDirty = true;\r\n\t\t\tthis.setCustomData(\"dPeriod\", this.get(\"dPeriod\"));\r\n\t\t\tthis.setCustomData(\"emaPeriod\", this.get(\"emaPeriod\"));\r\n\t\t}\r\n\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tif (this.isDirty(\"emaColor\")) {\r\n\t\t\tthis._updateSeriesColor(this.emaSeries, this.get(\"emaColor\"), \"emaColor\")\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t * https://www.barchart.com/education/technical-indicators/stochastic_momentum_index\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tlet kPeriod = this.get(\"period\", 10);\r\n\t\t\tlet data: Array<any> = [];\r\n\t\t\tlet index = 0;\r\n\r\n\t\t\t$array.each(dataItems, (dataItem) => {\r\n\t\t\t\tconst valueX = dataItem.get(\"valueX\");\r\n\t\t\t\tlet lp = Infinity;\r\n\t\t\t\tlet hp = -lp;\r\n\t\t\t\tlet hhh;\r\n\t\t\t\tlet dhl;\r\n\r\n\t\t\t\tif (index >= kPeriod - 1) {\r\n\t\t\t\t\tlet value = this._getValue(dataItem);\r\n\r\n\t\t\t\t\tif (value != null) {\r\n\t\t\t\t\t\tfor (let j = index; j > index - kPeriod; j--) {\r\n\t\t\t\t\t\t\tlet h = dataItems[j].get(\"highValueY\");\r\n\t\t\t\t\t\t\tlet l = dataItems[j].get(\"lowValueY\");\r\n\r\n\t\t\t\t\t\t\tif (h != null && l != null) {\r\n\t\t\t\t\t\t\t\tif (l < lp) {\r\n\t\t\t\t\t\t\t\t\tlp = l;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (h > hp) {\r\n\t\t\t\t\t\t\t\t\thp = h;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tlet c = (hp + lp) / 2;\r\n\t\t\t\t\t\thhh = value - c;\r\n\t\t\t\t\t\tdhl = hp - lp;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (hhh == null) {\r\n\t\t\t\t\tdata.push({ valueX: valueX });\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tdata.push({ valueX: valueX, hhh: hhh, dhl: dhl });\r\n\t\t\t\t}\r\n\t\t\t\tindex++;\r\n\t\t\t})\r\n\r\n\t\t\tlet dPeriod = this.get(\"dPeriod\", 3);\r\n\t\t\tthis._ema(data, dPeriod, \"hhh\", \"hhh_ema\");\r\n\t\t\tthis._ema(data, dPeriod, \"hhh_ema\", \"hhh_ema2\");\r\n\r\n\t\t\tthis._ema(data, dPeriod, \"dhl\", \"dhl_ema\");\r\n\t\t\tthis._ema(data, dPeriod, \"dhl_ema\", \"dhl_ema2\");\r\n\r\n\t\t\t$array.each(data, (d) => {\r\n\t\t\t\tlet hhh = d.hhh_ema2;\r\n\t\t\t\tlet dhl = d.dhl_ema2;\r\n\r\n\t\t\t\tif (hhh != null && dhl != null) {\r\n\t\t\t\t\td.valueS = d.hhh_ema2 / d.dhl_ema2 * 200;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\tlet emaPeriod = this.get(\"emaPeriod\", 3);\r\n\t\t\tthis._sma(data, emaPeriod, \"valueS\", \"ema\");\r\n\r\n\t\t\tthis.series.data.setAll(data);\r\n\t\t\tthis.emaSeries.data.setAll(data);\r\n\t\t}\r\n\t}\r\n}"]}
|
|
@@ -26,6 +26,10 @@ export class StochasticOscillator extends OverboughtOversold {
|
|
|
26
26
|
key: "period",
|
|
27
27
|
name: this.root.language.translateAny("Period"),
|
|
28
28
|
type: "number"
|
|
29
|
+
}, {
|
|
30
|
+
key: "seriesColor",
|
|
31
|
+
name: this.root.language.translateAny("Period"),
|
|
32
|
+
type: "color"
|
|
29
33
|
}, {
|
|
30
34
|
key: "kSmoothing",
|
|
31
35
|
name: this.root.language.translateAny("K period"),
|
|
@@ -34,13 +38,9 @@ export class StochasticOscillator extends OverboughtOversold {
|
|
|
34
38
|
key: "dSmoothing",
|
|
35
39
|
name: this.root.language.translateAny("SMA period"),
|
|
36
40
|
type: "number"
|
|
37
|
-
}, {
|
|
38
|
-
key: "seriesColor",
|
|
39
|
-
name: this.root.language.translateAny("Color"),
|
|
40
|
-
type: "color"
|
|
41
41
|
}, {
|
|
42
42
|
key: "slowColor",
|
|
43
|
-
name: this.root.language.translateAny("SMA
|
|
43
|
+
name: this.root.language.translateAny("SMA period"),
|
|
44
44
|
type: "color"
|
|
45
45
|
});
|
|
46
46
|
this.yAxis.setAll({ min: 0, max: 100, strictMinMax: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StochasticOscillator.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/StochasticOscillator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAsF,MAAM,sBAAsB,CAAC;AAC9I,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AA0BnD;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,kBAAkB;IAA5D;;QAQC;;WAEG;QACH;;;;;WAA+B;IAmHhC,CAAC;IAjHU,SAAS;QAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEnC,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAC7B;YACC,GAAG,EAAE,QAAQ;YACb,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC/C,IAAI,EAAE,QAAQ;SACd,EAAE;YACH,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"StochasticOscillator.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/StochasticOscillator.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Color } from \"../../../core/util/Color\";\r\n\r\nimport { OverboughtOversold, IOverboughtOversoldSettings, IOverboughtOversoldPrivate, IOverboughtOversoldEvents } from \"./OverboughtOversold\";\r\nimport { LineSeries } from \"../../xy/series/LineSeries\";\r\n\r\nimport * as $array from \"../../../core/util/Array\";\r\n\r\nexport interface IStochasticOscillatorSettings extends IOverboughtOversoldSettings {\r\n\t/**\r\n\t * A color for \"slow\" section.\r\n\t */\r\n\tslowColor?: Color;\r\n\r\n\t/**\r\n\t * Smoothing \"k\" parameter.\r\n\t */\r\n\tkSmoothing?: number;\r\n\r\n\t/**\r\n\t * Smoothing \"d\" parameter.\r\n\t */\r\n\tdSmoothing?: number;\r\n}\r\n\r\nexport interface IStochasticOscillatorPrivate extends IOverboughtOversoldPrivate {\r\n}\r\n\r\nexport interface IStochasticOscillatorEvents extends IOverboughtOversoldEvents {\r\n}\r\n\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class StochasticOscillator extends OverboughtOversold {\r\n\tpublic static className: string = \"StochasticOscillator\";\r\n\tpublic static classNames: Array<string> = OverboughtOversold.classNames.concat([StochasticOscillator.className]);\r\n\r\n\tdeclare public _settings: IStochasticOscillatorSettings;\r\n\tdeclare public _privateSettings: IStochasticOscillatorPrivate;\r\n\tdeclare public _events: IStochasticOscillatorEvents;\r\n\r\n\t/**\r\n\t * Indicator series.\r\n\t */\r\n\tpublic slowSeries!: LineSeries;\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis._themeTags.push(\"stochastic\");\r\n\r\n\t\tsuper._afterNew();\r\n\r\n\t\tthis._editableSettings.unshift(\r\n\t\t\t{\r\n\t\t\t\tkey: \"period\",\r\n\t\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\t\ttype: \"number\"\r\n\t\t\t}, {\r\n\t\t\tkey: \"seriesColor\",\r\n\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}, {\r\n\t\t\tkey: \"kSmoothing\",\r\n\t\t\tname: this.root.language.translateAny(\"K period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t},{\r\n\t\t\tkey: \"dSmoothing\",\r\n\t\t\tname: this.root.language.translateAny(\"SMA period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"slowColor\",\r\n\t\t\tname: this.root.language.translateAny(\"SMA period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t}\r\n\t\t)\r\n\r\n\t\tthis.yAxis.setAll({ min: 0, max: 100, strictMinMax: true });\r\n\r\n\t\tconst slowSeries = this.panel.series.push(LineSeries.new(this._root, {\r\n\t\t\tvalueXField: \"valueX\",\r\n\t\t\tvalueYField: \"slow\",\r\n\t\t\txAxis: this.xAxis,\r\n\t\t\tyAxis: this.yAxis,\r\n\t\t\tgroupDataDisabled: true,\r\n\t\t\tthemeTags: [\"indicator\", \"slow\"]\r\n\t\t}))\r\n\r\n\t\tthis.slowSeries = slowSeries;\r\n\t}\r\n\r\n\r\n\tpublic _updateChildren() {\r\n\t\tif (this.isDirty(\"kSmoothing\") || this.isDirty(\"dSmoothing\")) {\r\n\t\t\tthis._dataDirty = true;\r\n\t\t\tthis.setCustomData(\"dSmoothing\", this.get(\"dSmoothing\"));\r\n\t\t\tthis.setCustomData(\"kSmoothing\", this.get(\"kSmoothing\"));\r\n\t\t}\r\n\r\n\t\tsuper._updateChildren();\r\n\r\n\t\tif (this.isDirty(\"slowColor\")) {\r\n\t\t\tthis._updateSeriesColor(this.slowSeries, this.get(\"slowColor\"), \"slowColor\")\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tlet period = this.get(\"period\", 14);\r\n\t\t\tlet data: Array<any> = [];\r\n\t\t\tlet index = 0;\r\n\r\n\t\t\t$array.each(dataItems, (dataItem) => {\r\n\t\t\t\tconst valueX = dataItem.get(\"valueX\");\r\n\t\t\t\tlet k;\r\n\t\t\t\tif (index >= period - 1) {\r\n\t\t\t\t\tlet value = this._getValue(dataItem);\r\n\r\n\t\t\t\t\tif (value != null) {\r\n\t\t\t\t\t\tlet lp = Infinity;\r\n\t\t\t\t\t\tlet hp = -lp;\r\n\t\t\t\t\t\tfor (let j = index; j > index - period; j--) {\r\n\t\t\t\t\t\t\tlet h = dataItems[j].get(\"highValueY\");\r\n\t\t\t\t\t\t\tlet l = dataItems[j].get(\"lowValueY\");\r\n\r\n\t\t\t\t\t\t\tif (h != null && l != null) {\r\n\t\t\t\t\t\t\t\tif (l < lp) {\r\n\t\t\t\t\t\t\t\t\tlp = l;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (h > hp) {\r\n\t\t\t\t\t\t\t\t\thp = h;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tk = (value - lp) / (hp - lp) * 100;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (k == null) {\r\n\t\t\t\t\tdata.push({ valueX: valueX });\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tdata.push({ valueX: valueX, value_y: k });\r\n\t\t\t\t}\r\n\t\t\t\tindex++;\r\n\t\t\t})\r\n\r\n\t\t\tperiod = this.get(\"kSmoothing\", 1);\r\n\t\t\tthis._sma(data, period, \"value_y\", \"valueS\");\r\n\r\n\t\t\tperiod = this.get(\"dSmoothing\", 3);\r\n\t\t\tthis._sma(data, period, \"valueS\", \"slow\");\r\n\r\n\t\t\tthis.series.data.setAll(data);\r\n\t\t\tthis.slowSeries.data.setAll(data);\r\n\t\t}\r\n\t}\r\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WilliamsR.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/WilliamsR.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAsF,MAAM,sBAAsB,CAAC;AAQ9I;;;;GAIG;AACH,MAAM,OAAO,SAAU,SAAQ,kBAAkB;IAStC,SAAS;QAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClC,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAC9B,GAAG,EAAE,QAAQ;YACb,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC/C,IAAI,EAAE,QAAQ;SACd,EAAE;YACF,GAAG,EAAE,aAAa;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"WilliamsR.js","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/indicators/WilliamsR.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAsF,MAAM,sBAAsB,CAAC;AAQ9I;;;;GAIG;AACH,MAAM,OAAO,SAAU,SAAQ,kBAAkB;IAStC,SAAS;QAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClC,KAAK,CAAC,SAAS,EAAE,CAAC;QAElB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAC9B,GAAG,EAAE,QAAQ;YACb,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC/C,IAAI,EAAE,QAAQ;SACd,EAAE;YACF,GAAG,EAAE,aAAa;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC/C,IAAI,EAAE,OAAO;SACb,CAAC,CAAC;IACJ,CAAC;IAGD;;OAEG;IACI,WAAW;QACjB,IAAI,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC;YACpD,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAEzB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,IAAI,CAAC,GAAG,QAAQ,CAAC;gBACjB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;gBAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;oBAE5B,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;oBAC3C,IAAI,EAAE,IAAI,CAAC,EAAE;wBACZ,CAAC,GAAG,EAAE,CAAC;qBACP;oBAED,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;oBAC1C,IAAI,EAAE,IAAI,CAAC,EAAE;wBACZ,CAAC,GAAG,EAAE,CAAC;qBACP;iBACD;gBAED,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aAC1D;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC9B;IACF,CAAC;;AA3DD;;;;WAAkC,WAAW;GAAC;AAC9C;;;;WAA0C,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;GAAC","sourcesContent":["import { OverboughtOversold, IOverboughtOversoldSettings, IOverboughtOversoldPrivate, IOverboughtOversoldEvents } from \"./OverboughtOversold\";\r\n\r\nexport interface IWilliamsRSettings extends IOverboughtOversoldSettings { }\r\n\r\nexport interface IWilliamsRPrivate extends IOverboughtOversoldPrivate { }\r\n\r\nexport interface IWilliamsREvents extends IOverboughtOversoldEvents { }\r\n\r\n/**\r\n * An implementation of a [[StockChart]] indicator.\r\n *\r\n * @see {@link https://www.amcharts.com/docs/v5/charts/stock/indicators/} for more info\r\n */\r\nexport class WilliamsR extends OverboughtOversold {\r\n\tpublic static className: string = \"WilliamsR\";\r\n\tpublic static classNames: Array<string> = OverboughtOversold.classNames.concat([WilliamsR.className]);\r\n\r\n\tdeclare public _settings: IWilliamsRSettings;\r\n\tdeclare public _privateSettings: IWilliamsRPrivate;\r\n\tdeclare public _events: IWilliamsREvents;\r\n\r\n\r\n\tprotected _afterNew() {\r\n\t\tthis._themeTags.push(\"williamsr\");\r\n\t\tsuper._afterNew();\r\n\r\n\t\tthis._editableSettings.unshift({\r\n\t\t\tkey: \"period\",\r\n\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\ttype: \"number\"\r\n\t\t}, {\r\n\t\t\tkey: \"seriesColor\",\r\n\t\t\tname: this.root.language.translateAny(\"Period\"),\r\n\t\t\ttype: \"color\"\r\n\t\t});\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tpublic prepareData() {\r\n\t\tif (this.series) {\r\n\t\t\tthis.set(\"field\", \"close\");\r\n\r\n\t\t\tconst dataItems = this.get(\"stockSeries\").dataItems;\r\n\t\t\tlet data = this._getDataArray(dataItems);\r\n\t\t\tlet period = this.get(\"period\", 14);\r\n\r\n\t\t\tfor (let i = 0, len = data.length; i < len; i++) {\r\n\t\t\t\tconst dataItem = data[i];\r\n\r\n\t\t\t\tlet h = -Infinity;\r\n\t\t\t\tlet l = Infinity;\r\n\t\t\t\tlet b = Math.max(0, i - period);\r\n\t\t\t\tfor (let j = b; j <= i; j++) {\r\n\r\n\t\t\t\t\tlet vh = dataItems[j].get(\"highValueY\", 0);\r\n\t\t\t\t\tif (vh >= h) {\r\n\t\t\t\t\t\th = vh;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet vl = dataItems[j].get(\"lowValueY\", 0);\r\n\t\t\t\t\tif (vl <= l) {\r\n\t\t\t\t\t\tl = vl;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdataItem.valueS = -100 * (h - dataItem.value_y) / (h - l);\r\n\t\t\t}\r\n\r\n\t\t\tthis.series.data.setAll(data);\r\n\t\t}\r\n\t}\r\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawingControl.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/toolbar/DrawingControl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAI5D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAChH,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"DrawingControl.d.ts","sourceRoot":"","sources":["../../../../../../src/.internal/charts/stock/toolbar/DrawingControl.ts"],"names":[],"mappings":"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"}
|