@ch20026103/anysis 0.0.3-alpha → 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 (60) 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/slope.test.js +6 -0
  6. package/dist/cjs/analyze/TimeSeries/R/index.d.ts +1 -1
  7. package/dist/cjs/index.d.ts +2 -0
  8. package/dist/cjs/index.js +5 -1
  9. package/dist/cjs/stockSkills/ema.d.ts +9 -0
  10. package/dist/cjs/stockSkills/ema.js +41 -0
  11. package/dist/cjs/stockSkills/ema.test.d.ts +1 -0
  12. package/dist/cjs/stockSkills/ema.test.js +11 -0
  13. package/dist/cjs/stockSkills/gold.d.ts +4 -4
  14. package/dist/cjs/stockSkills/kd.d.ts +31 -4
  15. package/dist/cjs/stockSkills/kd.js +58 -4
  16. package/dist/cjs/stockSkills/kd.test.js +34 -2
  17. package/dist/cjs/stockSkills/ma.d.ts +38 -9
  18. package/dist/cjs/stockSkills/ma.js +28 -1
  19. package/dist/cjs/stockSkills/ma.test.js +12 -0
  20. package/dist/cjs/stockSkills/macd.d.ts +52 -6
  21. package/dist/cjs/stockSkills/macd.js +87 -0
  22. package/dist/cjs/stockSkills/macd.test.js +24 -0
  23. package/dist/cjs/stockSkills/obv.d.ts +44 -0
  24. package/dist/cjs/stockSkills/obv.js +89 -0
  25. package/dist/cjs/stockSkills/obv.test.d.ts +1 -0
  26. package/dist/cjs/stockSkills/obv.test.js +20 -0
  27. package/dist/cjs/stockSkills/rsi.d.ts +4 -4
  28. package/dist/cjs/stockSkills/utils/getWeekLine.d.ts +2 -2
  29. package/dist/cjs/stockSkills/williams.d.ts +4 -4
  30. package/dist/esm/analyze/Month/index.d.ts +1 -1
  31. package/dist/esm/analyze/Month/index.test.d.ts +1 -0
  32. package/dist/esm/analyze/Month/index.test.js +20 -0
  33. package/dist/esm/analyze/Regression/simpleRegressoinModel.d.ts +1 -1
  34. package/dist/esm/analyze/Slope/slope.test.js +6 -0
  35. package/dist/esm/analyze/TimeSeries/R/index.d.ts +1 -1
  36. package/dist/esm/index.d.ts +2 -0
  37. package/dist/esm/index.js +2 -0
  38. package/dist/esm/stockSkills/ema.d.ts +9 -0
  39. package/dist/esm/stockSkills/ema.js +39 -0
  40. package/dist/esm/stockSkills/ema.test.d.ts +1 -0
  41. package/dist/esm/stockSkills/ema.test.js +9 -0
  42. package/dist/esm/stockSkills/gold.d.ts +4 -4
  43. package/dist/esm/stockSkills/kd.d.ts +31 -4
  44. package/dist/esm/stockSkills/kd.js +58 -4
  45. package/dist/esm/stockSkills/kd.test.js +34 -2
  46. package/dist/esm/stockSkills/ma.d.ts +38 -9
  47. package/dist/esm/stockSkills/ma.js +28 -1
  48. package/dist/esm/stockSkills/ma.test.js +12 -0
  49. package/dist/esm/stockSkills/macd.d.ts +52 -6
  50. package/dist/esm/stockSkills/macd.js +87 -0
  51. package/dist/esm/stockSkills/macd.test.js +24 -0
  52. package/dist/esm/stockSkills/obv.d.ts +44 -0
  53. package/dist/esm/stockSkills/obv.js +87 -0
  54. package/dist/esm/stockSkills/obv.test.d.ts +1 -0
  55. package/dist/esm/stockSkills/obv.test.js +18 -0
  56. package/dist/esm/stockSkills/rsi.d.ts +4 -4
  57. package/dist/esm/stockSkills/utils/getWeekLine.d.ts +2 -2
  58. package/dist/esm/stockSkills/williams.d.ts +4 -4
  59. package/dist/umd/index.js +349 -53
  60. package/package.json +15 -17
@@ -1,6 +1,38 @@
1
1
  import Kd from "./kd";
2
2
  import { data_9904 as data } from "./test_data.test";
3
3
  describe("test kd methods", function () {
4
+ it("test init", function () {
5
+ var index = data.length - 1;
6
+ var kd = new Kd();
7
+ var realData = kd.getKD(data)[index];
8
+ var init = kd.init(data[0]);
9
+ var res = init;
10
+ for (var i = 1; i <= index; i++) {
11
+ var item = data[i];
12
+ res = kd.next(item, res, 9);
13
+ }
14
+ expect({
15
+ dataset: {
16
+ c: realData.c,
17
+ h: realData.h,
18
+ l: realData.l,
19
+ },
20
+ rsv: realData.rsv,
21
+ "k-d": realData["k-d"],
22
+ k: realData.k,
23
+ d: realData.d,
24
+ }).toEqual({
25
+ dataset: {
26
+ c: res.dataset[res.dataset.length - 1].c,
27
+ h: res.dataset[res.dataset.length - 1].h,
28
+ l: res.dataset[res.dataset.length - 1].l,
29
+ },
30
+ rsv: res.rsv,
31
+ "k-d": res["k-d"],
32
+ k: res.k,
33
+ d: res.d,
34
+ });
35
+ });
4
36
  it("test getRSV()", function () {
5
37
  var kd = new Kd();
6
38
  expect(kd.getRSV(data)[data.length - 1]).toEqual({
@@ -13,7 +45,7 @@ describe("test kd methods", function () {
13
45
  rsv: 90.63,
14
46
  });
15
47
  });
16
- it("test getRSV()", function () {
48
+ it("test getKD()", function () {
17
49
  var kd = new Kd();
18
50
  expect(kd.getKD(data)[data.length - 1]).toEqual({
19
51
  o: 26.4,
@@ -25,7 +57,7 @@ describe("test kd methods", function () {
25
57
  rsv: 90.63,
26
58
  k: 64.41,
27
59
  d: 45.25,
28
- 'k-d': 19.16
60
+ "k-d": 19.16,
29
61
  });
30
62
  });
31
63
  });
@@ -1,33 +1,34 @@
1
- declare type ListType = {
1
+ type DataType = {
2
2
  c: number;
3
- }[];
4
- declare type ResMa5 = {
3
+ };
4
+ type ListType = DataType[];
5
+ type ResMa5 = {
5
6
  c: number;
6
7
  ma5?: number;
7
8
  }[];
8
- declare type ResMa10 = {
9
+ type ResMa10 = {
9
10
  c: number;
10
11
  ma10?: number;
11
12
  }[];
12
- declare type ResMa20 = {
13
+ type ResMa20 = {
13
14
  c: number;
14
15
  ma20?: number;
15
16
  }[];
16
- declare type ResMa60 = {
17
+ type ResMa60 = {
17
18
  c: number;
18
19
  ma60?: number;
19
20
  }[];
20
- declare type ResMaSelf = {
21
+ type ResMaSelf = {
21
22
  c: number;
22
23
  maSelf?: number;
23
24
  }[];
24
- declare type ResBoll = {
25
+ type ResBoll = {
25
26
  c: number;
26
27
  ma25?: number;
27
28
  bollUb?: number;
28
29
  bollLb?: number;
29
30
  }[];
30
- declare type ResAllMa = {
31
+ type ResAllMa = {
31
32
  c: number;
32
33
  ma5?: number;
33
34
  ma10?: number;
@@ -38,6 +39,20 @@ declare type ResAllMa = {
38
39
  bollLb?: number;
39
40
  }[];
40
41
  interface MaType {
42
+ init: (data: DataType, type: number) => {
43
+ dataset: ListType;
44
+ ma: number;
45
+ type: number;
46
+ };
47
+ next: (data: DataType, preList: {
48
+ dataset: ListType;
49
+ ma: number;
50
+ type: number;
51
+ }, type: number) => {
52
+ dataset: ListType;
53
+ ma: number;
54
+ type: number;
55
+ };
41
56
  getAllMa: (list: ListType) => ResAllMa;
42
57
  getMa5: (list: ListType) => ResMa5;
43
58
  getMa10: (list: ListType) => ResMa10;
@@ -47,6 +62,20 @@ interface MaType {
47
62
  getBoll: (list: ListType) => ResBoll;
48
63
  }
49
64
  export default class Ma implements MaType {
65
+ init(data: DataType, type: number): {
66
+ dataset: DataType[];
67
+ ma: number;
68
+ type: number;
69
+ };
70
+ next(data: DataType, preList: {
71
+ dataset: ListType;
72
+ ma: number;
73
+ type: number;
74
+ }, type: number): {
75
+ dataset: ListType;
76
+ ma: number;
77
+ type: number;
78
+ };
50
79
  getAllMa(list: ListType): ResAllMa;
51
80
  getMa5(list: ListType): ResMa5;
52
81
  getMa10(list: ListType): ResMa10;
@@ -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,
@@ -116,7 +143,7 @@ var Ma = /** @class */ (function () {
116
143
  value: function (list, self) {
117
144
  var res = [];
118
145
  for (var i = 0; i < list.length; i++) {
119
- if (i < (self - 1))
146
+ if (i < self - 1)
120
147
  res[i] = __assign(__assign({}, list[i]), { maSelf: undefined });
121
148
  else {
122
149
  var sum = list
@@ -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({
@@ -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;
@@ -1,11 +1,11 @@
1
- declare type ListType = {
1
+ type ListType = {
2
2
  h: number;
3
3
  t: number;
4
4
  o: number;
5
5
  c: number;
6
6
  l: number;
7
7
  }[];
8
- export declare type ResType = {
8
+ export type ResType = {
9
9
  h: number;
10
10
  t: number;
11
11
  o: number;
@@ -1,17 +1,17 @@
1
- declare type ListType = {
1
+ type ListType = {
2
2
  h: number;
3
3
  l: number;
4
4
  c: number;
5
5
  }[];
6
- declare type ResWilliams9Type = {
6
+ type ResWilliams9Type = {
7
7
  c: number;
8
8
  williams9?: number;
9
9
  }[];
10
- declare type ResWilliams18Type = {
10
+ type ResWilliams18Type = {
11
11
  c: number;
12
12
  williams18?: number;
13
13
  }[];
14
- declare type ResAllWilliamsType = {
14
+ type ResAllWilliamsType = {
15
15
  c: number;
16
16
  williams18?: number;
17
17
  williams9?: number;