@ch20026103/anysis 0.0.2 → 0.0.5-alpha

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.
Files changed (72) hide show
  1. package/dist/cjs/analyze/Month/index.d.ts +1 -1
  2. package/dist/cjs/analyze/Month/index.test.d.ts +1 -0
  3. package/dist/cjs/analyze/Month/index.test.js +22 -0
  4. package/dist/cjs/analyze/Regression/simpleRegressoinModel.d.ts +1 -1
  5. package/dist/cjs/analyze/Slope/index.d.ts +1 -0
  6. package/dist/cjs/analyze/Slope/index.js +13 -0
  7. package/dist/cjs/analyze/Slope/slope.test.d.ts +1 -0
  8. package/dist/cjs/analyze/Slope/slope.test.js +35 -0
  9. package/dist/cjs/analyze/TimeSeries/R/index.d.ts +1 -1
  10. package/dist/cjs/index.d.ts +9 -5
  11. package/dist/cjs/index.js +23 -15
  12. package/dist/cjs/stockSkills/ema.d.ts +9 -0
  13. package/dist/cjs/stockSkills/ema.js +41 -0
  14. package/dist/cjs/stockSkills/ema.test.d.ts +1 -0
  15. package/dist/cjs/stockSkills/ema.test.js +11 -0
  16. package/dist/cjs/stockSkills/gold.d.ts +4 -4
  17. package/dist/cjs/stockSkills/kd.d.ts +78 -0
  18. package/dist/cjs/stockSkills/kd.js +125 -0
  19. package/dist/cjs/stockSkills/kd.test.d.ts +1 -0
  20. package/dist/cjs/stockSkills/kd.test.js +65 -0
  21. package/dist/cjs/stockSkills/ma.d.ts +49 -7
  22. package/dist/cjs/stockSkills/ma.js +69 -1
  23. package/dist/cjs/stockSkills/ma.test.js +41 -4
  24. package/dist/cjs/stockSkills/macd.d.ts +52 -6
  25. package/dist/cjs/stockSkills/macd.js +87 -0
  26. package/dist/cjs/stockSkills/macd.test.js +24 -0
  27. package/dist/cjs/stockSkills/obv.d.ts +44 -0
  28. package/dist/cjs/stockSkills/obv.js +89 -0
  29. package/dist/cjs/stockSkills/obv.test.d.ts +1 -0
  30. package/dist/cjs/stockSkills/obv.test.js +20 -0
  31. package/dist/cjs/stockSkills/rsi.d.ts +4 -4
  32. package/dist/cjs/stockSkills/test_data.test.d.ts +8 -0
  33. package/dist/cjs/stockSkills/test_data.test.js +626 -0
  34. package/dist/cjs/stockSkills/utils/getWeekLine.d.ts +2 -2
  35. package/dist/cjs/stockSkills/williams.d.ts +4 -4
  36. package/dist/esm/analyze/Month/index.d.ts +1 -1
  37. package/dist/esm/analyze/Month/index.test.d.ts +1 -0
  38. package/dist/esm/analyze/Month/index.test.js +20 -0
  39. package/dist/esm/analyze/Regression/simpleRegressoinModel.d.ts +1 -1
  40. package/dist/esm/analyze/Slope/index.d.ts +1 -0
  41. package/dist/esm/analyze/Slope/index.js +10 -0
  42. package/dist/esm/analyze/Slope/slope.test.d.ts +1 -0
  43. package/dist/esm/analyze/Slope/slope.test.js +33 -0
  44. package/dist/esm/analyze/TimeSeries/R/index.d.ts +1 -1
  45. package/dist/esm/index.d.ts +9 -5
  46. package/dist/esm/index.js +9 -5
  47. package/dist/esm/stockSkills/ema.d.ts +9 -0
  48. package/dist/esm/stockSkills/ema.js +39 -0
  49. package/dist/esm/stockSkills/ema.test.d.ts +1 -0
  50. package/dist/esm/stockSkills/ema.test.js +9 -0
  51. package/dist/esm/stockSkills/gold.d.ts +4 -4
  52. package/dist/esm/stockSkills/kd.d.ts +78 -0
  53. package/dist/esm/stockSkills/kd.js +123 -0
  54. package/dist/esm/stockSkills/kd.test.d.ts +1 -0
  55. package/dist/esm/stockSkills/kd.test.js +63 -0
  56. package/dist/esm/stockSkills/ma.d.ts +49 -7
  57. package/dist/esm/stockSkills/ma.js +69 -1
  58. package/dist/esm/stockSkills/ma.test.js +41 -4
  59. package/dist/esm/stockSkills/macd.d.ts +52 -6
  60. package/dist/esm/stockSkills/macd.js +87 -0
  61. package/dist/esm/stockSkills/macd.test.js +24 -0
  62. package/dist/esm/stockSkills/obv.d.ts +44 -0
  63. package/dist/esm/stockSkills/obv.js +87 -0
  64. package/dist/esm/stockSkills/obv.test.d.ts +1 -0
  65. package/dist/esm/stockSkills/obv.test.js +18 -0
  66. package/dist/esm/stockSkills/rsi.d.ts +4 -4
  67. package/dist/esm/stockSkills/test_data.test.d.ts +8 -0
  68. package/dist/esm/stockSkills/test_data.test.js +625 -0
  69. package/dist/esm/stockSkills/utils/getWeekLine.d.ts +2 -2
  70. package/dist/esm/stockSkills/williams.d.ts +4 -4
  71. package/dist/umd/index.js +901 -482
  72. package/package.json +15 -17
@@ -12,6 +12,33 @@ var __assign = (this && this.__assign) || function () {
12
12
  var Ma = /** @class */ (function () {
13
13
  function Ma() {
14
14
  }
15
+ Object.defineProperty(Ma.prototype, "init", {
16
+ enumerable: false,
17
+ configurable: true,
18
+ writable: true,
19
+ value: function (data, type) {
20
+ return { dataset: [data], ma: 0, type: type };
21
+ }
22
+ });
23
+ Object.defineProperty(Ma.prototype, "next", {
24
+ enumerable: false,
25
+ configurable: true,
26
+ writable: true,
27
+ value: function (data, preList, type) {
28
+ preList.dataset.push(data);
29
+ if (preList.dataset.length < type) {
30
+ return { dataset: preList.dataset, ma: 0, type: type };
31
+ }
32
+ else {
33
+ if (preList.dataset.length > type) {
34
+ preList.dataset.shift();
35
+ }
36
+ var sum = preList.dataset.reduce(function (pre, current) { return pre + current.c; }, 0);
37
+ var ma = Math.round((sum / type) * 100) / 100;
38
+ return { dataset: preList.dataset, ma: ma, type: type };
39
+ }
40
+ }
41
+ });
15
42
  Object.defineProperty(Ma.prototype, "getAllMa", {
16
43
  enumerable: false,
17
44
  configurable: true,
@@ -21,9 +48,10 @@ var Ma = /** @class */ (function () {
21
48
  var responseMa5 = this.getMa5(list);
22
49
  var responseMa10 = this.getMa10(list);
23
50
  var responseMa20 = this.getMa20(list);
51
+ var responseMa60 = this.getMa60(list);
24
52
  var responseBoll = this.getBoll(list);
25
53
  for (var i = 0; i < list.length; i++) {
26
- res[i] = Object.assign(list[i], responseMa5[i], responseMa10[i], responseMa20[i], responseBoll[i]);
54
+ res[i] = Object.assign(list[i], responseMa5[i], responseMa10[i], responseMa20[i], responseMa60[i], responseBoll[i]);
27
55
  }
28
56
  return res;
29
57
  }
@@ -88,6 +116,46 @@ var Ma = /** @class */ (function () {
88
116
  return res;
89
117
  }
90
118
  });
119
+ Object.defineProperty(Ma.prototype, "getMa60", {
120
+ enumerable: false,
121
+ configurable: true,
122
+ writable: true,
123
+ value: function (list) {
124
+ var res = [];
125
+ for (var i = 0; i < list.length; i++) {
126
+ if (i < 59)
127
+ res[i] = __assign(__assign({}, list[i]), { ma60: undefined });
128
+ else {
129
+ var sum = list
130
+ .slice(i - 59, i + 1)
131
+ .reduce(function (pre, current) { return pre + current.c; }, 0);
132
+ var ma60 = Math.round((sum / 60) * 100) / 100;
133
+ res[i] = __assign(__assign({}, list[i]), { ma60: ma60 });
134
+ }
135
+ }
136
+ return res;
137
+ }
138
+ });
139
+ Object.defineProperty(Ma.prototype, "getMaSelf", {
140
+ enumerable: false,
141
+ configurable: true,
142
+ writable: true,
143
+ value: function (list, self) {
144
+ var res = [];
145
+ for (var i = 0; i < list.length; i++) {
146
+ if (i < self - 1)
147
+ res[i] = __assign(__assign({}, list[i]), { maSelf: undefined });
148
+ else {
149
+ var sum = list
150
+ .slice(i - (self - 1), i + 1)
151
+ .reduce(function (pre, current) { return pre + current.c; }, 0);
152
+ var maSelf = Math.round((sum / self) * 100) / 100;
153
+ res[i] = __assign(__assign({}, list[i]), { maSelf: maSelf });
154
+ }
155
+ }
156
+ return res;
157
+ }
158
+ });
91
159
  Object.defineProperty(Ma.prototype, "getBoll", {
92
160
  enumerable: false,
93
161
  configurable: true,
@@ -1,6 +1,18 @@
1
1
  import Ma from "./ma";
2
2
  import data from "./test_data.test";
3
3
  describe("test ma methods", function () {
4
+ it("test init & next", function () {
5
+ var index = data.length - 1;
6
+ var ma = new Ma();
7
+ var realData = ma.getMa5(data)[index];
8
+ var init = ma.init(data[0], 5);
9
+ var res = init;
10
+ for (var i = 1; i <= index; i++) {
11
+ var item = data[i];
12
+ res = ma.next(item, res, 5);
13
+ }
14
+ expect(realData.ma5).toEqual(res.ma);
15
+ });
4
16
  it("test getMa5()", function () {
5
17
  var ma = new Ma();
6
18
  expect(ma.getMa5(data)[data.length - 1]).toEqual({
@@ -37,6 +49,30 @@ describe("test ma methods", function () {
37
49
  ma20: 144.88,
38
50
  });
39
51
  });
52
+ it("test getMa60()", function () {
53
+ var ma = new Ma();
54
+ expect(ma.getMa60(data)[data.length - 1]).toEqual({
55
+ c: 142,
56
+ o: 138,
57
+ t: 20211214,
58
+ v: 16841,
59
+ h: 143,
60
+ l: 138,
61
+ ma60: 134.86,
62
+ });
63
+ });
64
+ it("test getMaSelf()", function () {
65
+ var ma = new Ma();
66
+ expect(ma.getMaSelf(data, 20)[data.length - 1]).toEqual({
67
+ c: 142,
68
+ o: 138,
69
+ t: 20211214,
70
+ v: 16841,
71
+ h: 143,
72
+ l: 138,
73
+ maSelf: 144.88,
74
+ });
75
+ });
40
76
  it("test getBoll()", function () {
41
77
  var ma = new Ma();
42
78
  expect(ma.getBoll(data)[data.length - 1]).toEqual({
@@ -54,18 +90,19 @@ describe("test ma methods", function () {
54
90
  it("test getAllMa()", function () {
55
91
  var ma = new Ma();
56
92
  expect(ma.getAllMa(data)[data.length - 1]).toEqual({
57
- c: 142,
58
- o: 138,
59
93
  t: 20211214,
60
- v: 16841,
94
+ o: 138,
61
95
  h: 143,
62
96
  l: 138,
97
+ c: 142,
98
+ v: 16841,
63
99
  ma5: 141.1,
64
100
  ma10: 146.7,
65
101
  ma20: 144.88,
102
+ ma60: 134.86,
66
103
  ma25: 142.66,
67
- bollLb: 126.69999999999999,
68
104
  bollUb: 158.62,
105
+ bollLb: 126.69999999999999,
69
106
  });
70
107
  });
71
108
  });
@@ -1,34 +1,34 @@
1
- declare type ItemType = {
1
+ type ItemType = {
2
2
  h: number;
3
3
  l: number;
4
4
  c: number;
5
5
  };
6
- declare type ResEMA12Type = {
6
+ type ResEMA12Type = {
7
7
  h: number;
8
8
  l: number;
9
9
  c: number;
10
10
  EMA12?: number;
11
11
  }[];
12
- declare type ResEMA26Type = {
12
+ type ResEMA26Type = {
13
13
  h: number;
14
14
  l: number;
15
15
  c: number;
16
16
  EMA26?: number;
17
17
  }[];
18
- declare type ResDifType = {
18
+ type ResDifType = {
19
19
  h: number;
20
20
  l: number;
21
21
  c: number;
22
22
  DIF?: number;
23
23
  }[];
24
- declare type ResMacd9Type = {
24
+ type ResMacd9Type = {
25
25
  h: number;
26
26
  l: number;
27
27
  c: number;
28
28
  MACD9?: number;
29
29
  OSC?: number;
30
30
  }[];
31
- declare type ResAllMacdType = {
31
+ type ResAllMacdType = {
32
32
  h: number;
33
33
  l: number;
34
34
  c: number;
@@ -39,6 +39,29 @@ declare type ResAllMacdType = {
39
39
  OSC?: number;
40
40
  }[];
41
41
  interface MacdType {
42
+ init: (data: ItemType) => {
43
+ dataset: ItemType[];
44
+ ema12?: number;
45
+ ema26?: number;
46
+ dif: number[];
47
+ macd?: number;
48
+ osc?: number;
49
+ };
50
+ next: (data: ItemType, preList: {
51
+ dataset: ItemType[];
52
+ ema12?: number;
53
+ ema26?: number;
54
+ dif: number[];
55
+ macd?: number;
56
+ osc?: number;
57
+ }) => {
58
+ dataset: ItemType[];
59
+ ema12?: number;
60
+ ema26?: number;
61
+ dif: number[];
62
+ macd?: number;
63
+ osc?: number;
64
+ };
42
65
  getMACD: (list: ItemType[]) => ResAllMacdType;
43
66
  getDI: (item: ItemType) => number;
44
67
  getStartEMA: (list: ItemType[]) => number;
@@ -48,6 +71,29 @@ interface MacdType {
48
71
  getMACD9: (list: ItemType[], DIF: ResDifType) => ResMacd9Type;
49
72
  }
50
73
  export default class MACD implements MacdType {
74
+ init(data: ItemType): {
75
+ dataset: ItemType[];
76
+ ema12?: number;
77
+ ema26?: number;
78
+ dif: number[];
79
+ macd?: number;
80
+ osc?: number;
81
+ };
82
+ next(data: ItemType, preList: {
83
+ dataset: ItemType[];
84
+ ema12?: number;
85
+ ema26?: number;
86
+ dif: number[];
87
+ macd?: number;
88
+ osc?: number;
89
+ }): {
90
+ dataset: ItemType[];
91
+ ema12: number | undefined;
92
+ ema26: number | undefined;
93
+ dif: number[];
94
+ macd: number | undefined;
95
+ osc: number | undefined;
96
+ };
51
97
  getMACD(list: ItemType[]): ResAllMacdType;
52
98
  getDI(item: ItemType): number;
53
99
  getStartEMA(arr: ItemType[]): number;
@@ -12,6 +12,93 @@ var __assign = (this && this.__assign) || function () {
12
12
  var MACD = /** @class */ (function () {
13
13
  function MACD() {
14
14
  }
15
+ Object.defineProperty(MACD.prototype, "init", {
16
+ enumerable: false,
17
+ configurable: true,
18
+ writable: true,
19
+ value: function (data) {
20
+ return {
21
+ dataset: [data],
22
+ ema12: undefined,
23
+ ema26: undefined,
24
+ dif: [],
25
+ macd: undefined,
26
+ osc: undefined,
27
+ };
28
+ }
29
+ });
30
+ Object.defineProperty(MACD.prototype, "next", {
31
+ enumerable: false,
32
+ configurable: true,
33
+ writable: true,
34
+ value: function (data, preList) {
35
+ var _a, _b;
36
+ preList.dataset.push(data);
37
+ if (preList.dataset.length > 34)
38
+ preList.dataset.shift();
39
+ // EMA12
40
+ var ema12 = undefined;
41
+ if (preList.dataset.length === 12) {
42
+ ema12 = this.getStartEMA(preList.dataset);
43
+ ema12 = (ema12 * 11) / 13 + (this.getDI(data) * 2) / 13;
44
+ ema12 = Math.round(ema12 * 100) / 100;
45
+ }
46
+ else if (preList.dataset.length > 12 && preList.ema12) {
47
+ ema12 = (preList.ema12 * 11) / 13 + (this.getDI(data) * 2) / 13;
48
+ ema12 = Math.round(ema12 * 100) / 100;
49
+ }
50
+ // EMA26
51
+ var ema26 = undefined;
52
+ if (preList.dataset.length === 26) {
53
+ ema26 = this.getStartEMA(preList.dataset);
54
+ ema26 = (ema26 * 25) / 27 + (this.getDI(data) * 2) / 27;
55
+ ema26 = Math.round(ema26 * 100) / 100;
56
+ }
57
+ else if (preList.dataset.length > 26 && preList.ema26) {
58
+ ema26 = (preList.ema26 * 25) / 27 + (this.getDI(data) * 2) / 27;
59
+ ema26 = Math.round(ema26 * 100) / 100;
60
+ }
61
+ // DIF
62
+ var dif = undefined;
63
+ if (ema12 && ema26) {
64
+ dif = ema12 - ema26;
65
+ dif = Math.round(dif * 100) / 100;
66
+ (_a = preList.dif) === null || _a === void 0 ? void 0 : _a.push(dif);
67
+ if (preList.dif.length > 9)
68
+ (_b = preList.dif) === null || _b === void 0 ? void 0 : _b.shift();
69
+ }
70
+ // MACD & OSC
71
+ var macd = undefined;
72
+ var osc = undefined;
73
+ if (preList.dif.length === 9) {
74
+ if (preList.macd === undefined) {
75
+ macd = preList.dif.reduce(function (accumulator, currentValue) { return accumulator + currentValue; });
76
+ for (var i = 0; i < 9; i++) {
77
+ var item = preList.dif[i];
78
+ macd = macd + ((item - macd) * 2) / 10;
79
+ macd = Math.round(macd * 100) / 100;
80
+ osc = item - macd;
81
+ osc = Math.round(osc * 100) / 100;
82
+ }
83
+ }
84
+ else {
85
+ macd = preList.macd + ((dif - preList.macd) * 2) / 10;
86
+ macd = Math.round(macd * 100) / 100;
87
+ var item = preList.dif[preList.dif.length - 1];
88
+ osc = item - macd;
89
+ osc = Math.round(osc * 100) / 100;
90
+ }
91
+ }
92
+ return {
93
+ dataset: preList.dataset,
94
+ ema12: ema12,
95
+ ema26: ema26,
96
+ dif: preList.dif,
97
+ macd: macd,
98
+ osc: osc,
99
+ };
100
+ }
101
+ });
15
102
  Object.defineProperty(MACD.prototype, "getMACD", {
16
103
  enumerable: false,
17
104
  configurable: true,
@@ -1,6 +1,30 @@
1
1
  import Macd from "./macd";
2
2
  import data from "./test_data.test";
3
3
  describe("test macd methods", function () {
4
+ it("test init & next", function () {
5
+ var _a, _b;
6
+ var index = data.length - 1;
7
+ var macd = new Macd();
8
+ var init = macd.init(data[0]);
9
+ var res = init;
10
+ for (var i = 1; i <= index; i++) {
11
+ var item = data[i];
12
+ res = macd.next(item, res);
13
+ }
14
+ expect({
15
+ ema12: 144.02,
16
+ ema26: 142.23,
17
+ dif: 1.79,
18
+ macd: 3.46,
19
+ osc: -1.67,
20
+ }).toEqual({
21
+ ema12: res.ema12,
22
+ ema26: res.ema26,
23
+ dif: (_a = res.dif) === null || _a === void 0 ? void 0 : _a[((_b = res.dif) === null || _b === void 0 ? void 0 : _b.length) - 1],
24
+ macd: res.macd,
25
+ osc: res.osc,
26
+ });
27
+ });
4
28
  it("test getEMA12()", function () {
5
29
  var macd = new Macd();
6
30
  expect(macd.getEMA12(data)[data.length - 1]).toEqual({
@@ -0,0 +1,44 @@
1
+ type ItemType = {
2
+ h: number;
3
+ l: number;
4
+ c: number;
5
+ v: number;
6
+ };
7
+ type ResObv = {
8
+ obv: number;
9
+ } & ItemType;
10
+ interface ObvType {
11
+ init: (data: ItemType) => {
12
+ dataset: ItemType[];
13
+ obv: number;
14
+ preClose: number;
15
+ };
16
+ next: (data: ItemType, preList: {
17
+ dataset: ItemType[];
18
+ obv: number;
19
+ preClose: number;
20
+ }) => {
21
+ dataset: ItemType[];
22
+ obv: number;
23
+ preClose: number;
24
+ };
25
+ getObv: (list: ItemType[], period: number) => ResObv[];
26
+ }
27
+ export default class Obv implements ObvType {
28
+ init(data: ItemType): {
29
+ dataset: ItemType[];
30
+ obv: number;
31
+ preClose: number;
32
+ };
33
+ next(data: ItemType, preList: {
34
+ dataset: ItemType[];
35
+ obv: number;
36
+ preClose: number;
37
+ }): {
38
+ dataset: ItemType[];
39
+ obv: number;
40
+ preClose: number;
41
+ };
42
+ getObv(list: ItemType[]): ResObv[];
43
+ }
44
+ export {};
@@ -0,0 +1,87 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
13
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
14
+ if (ar || !(i in from)) {
15
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
16
+ ar[i] = from[i];
17
+ }
18
+ }
19
+ return to.concat(ar || Array.prototype.slice.call(from));
20
+ };
21
+ var Obv = /** @class */ (function () {
22
+ function Obv() {
23
+ }
24
+ Object.defineProperty(Obv.prototype, "init", {
25
+ enumerable: false,
26
+ configurable: true,
27
+ writable: true,
28
+ value: function (data) {
29
+ return {
30
+ dataset: [data],
31
+ obv: data.v,
32
+ preClose: data.c,
33
+ };
34
+ }
35
+ });
36
+ Object.defineProperty(Obv.prototype, "next", {
37
+ enumerable: false,
38
+ configurable: true,
39
+ writable: true,
40
+ value: function (data, preList) {
41
+ var currentVolume = data.v;
42
+ var currentClose = data.c;
43
+ // obv
44
+ var obv = preList.obv;
45
+ if (currentClose > preList.preClose) {
46
+ obv += currentVolume;
47
+ }
48
+ else if (currentClose < preList.preClose) {
49
+ obv -= currentVolume;
50
+ }
51
+ return {
52
+ dataset: __spreadArray(__spreadArray([], preList.dataset, true), [data], false),
53
+ obv: obv,
54
+ preClose: currentClose,
55
+ };
56
+ }
57
+ });
58
+ Object.defineProperty(Obv.prototype, "getObv", {
59
+ enumerable: false,
60
+ configurable: true,
61
+ writable: true,
62
+ value: function (list) {
63
+ var res = [];
64
+ var obv = 0;
65
+ for (var i = 0; i < list.length; i++) {
66
+ var currentVolume = list[i].v;
67
+ var currentClose = list[i].c;
68
+ if (i > 0) {
69
+ // obv
70
+ if (currentClose > list[i - 1].c) {
71
+ obv += currentVolume;
72
+ }
73
+ else if (currentClose < list[i - 1].c) {
74
+ obv -= currentVolume;
75
+ }
76
+ }
77
+ else {
78
+ obv = currentVolume;
79
+ }
80
+ res[i] = __assign(__assign({}, list[i]), { obv: obv });
81
+ }
82
+ return res;
83
+ }
84
+ });
85
+ return Obv;
86
+ }());
87
+ export default Obv;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ import Obv from "./obv";
2
+ import { data_9904 as data } from "./test_data.test";
3
+ describe("test obv methods", function () {
4
+ it("test init", function () {
5
+ var obv = new Obv();
6
+ var init = obv.init(data[0]);
7
+ var res = init;
8
+ for (var i = 1; i < data.length; i++) {
9
+ var item = data[i];
10
+ res = obv.next(item, res);
11
+ }
12
+ expect(res.obv).toEqual(504538);
13
+ });
14
+ it("test getObv()", function () {
15
+ var kd = new Obv();
16
+ expect(kd.getObv(data)[data.length - 1].obv).toEqual(504538);
17
+ });
18
+ });
@@ -1,15 +1,15 @@
1
- declare type ListType = {
1
+ type ListType = {
2
2
  c: number;
3
3
  }[];
4
- declare type ResRsi6Type = {
4
+ type ResRsi6Type = {
5
5
  c: number;
6
6
  rsi6?: number;
7
7
  }[];
8
- declare type ResRsi12Type = {
8
+ type ResRsi12Type = {
9
9
  c: number;
10
10
  rsi12?: number;
11
11
  }[];
12
- declare type ResAllRsiType = {
12
+ type ResAllRsiType = {
13
13
  c: number;
14
14
  rsi6?: number;
15
15
  rsi12?: number;
@@ -7,3 +7,11 @@ declare const data: {
7
7
  v: number;
8
8
  }[];
9
9
  export default data;
10
+ export declare const data_9904: {
11
+ o: number;
12
+ l: number;
13
+ h: number;
14
+ c: number;
15
+ v: number;
16
+ t: number;
17
+ }[];