@ch20026103/anysis 0.0.15-alpha → 0.0.16-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 (45) hide show
  1. package/demo/main.js +17 -10
  2. package/dist/cjs/stockSkills/boll.d.ts +25 -50
  3. package/dist/cjs/stockSkills/boll.js +9 -11
  4. package/dist/cjs/stockSkills/ema.d.ts +11 -33
  5. package/dist/cjs/stockSkills/gold.d.ts +12 -32
  6. package/dist/cjs/stockSkills/kd.d.ts +29 -72
  7. package/dist/cjs/stockSkills/kd.js +14 -11
  8. package/dist/cjs/stockSkills/kd.test.js +1 -1
  9. package/dist/cjs/stockSkills/ma.d.ts +39 -60
  10. package/dist/cjs/stockSkills/ma.js +16 -7
  11. package/dist/cjs/stockSkills/macd.d.ts +32 -63
  12. package/dist/cjs/stockSkills/macd.js +21 -24
  13. package/dist/cjs/stockSkills/obv.d.ts +16 -49
  14. package/dist/cjs/stockSkills/obv.js +3 -1
  15. package/dist/cjs/stockSkills/rsi.d.ts +10 -26
  16. package/dist/cjs/stockSkills/types.d.ts +10 -0
  17. package/dist/cjs/stockSkills/types.js +2 -0
  18. package/dist/cjs/stockSkills/utils/getWeekLine.d.ts +4 -16
  19. package/dist/cjs/stockSkills/utils/getWeekLine.js +3 -0
  20. package/dist/cjs/stockSkills/utils/getWeekLine.test.js +1 -0
  21. package/dist/cjs/stockSkills/vma.d.ts +11 -26
  22. package/dist/cjs/stockSkills/williams.d.ts +20 -32
  23. package/dist/esm/stockSkills/boll.d.ts +25 -50
  24. package/dist/esm/stockSkills/boll.js +9 -11
  25. package/dist/esm/stockSkills/ema.d.ts +11 -33
  26. package/dist/esm/stockSkills/gold.d.ts +12 -32
  27. package/dist/esm/stockSkills/kd.d.ts +29 -72
  28. package/dist/esm/stockSkills/kd.js +14 -11
  29. package/dist/esm/stockSkills/kd.test.js +1 -1
  30. package/dist/esm/stockSkills/ma.d.ts +39 -60
  31. package/dist/esm/stockSkills/ma.js +16 -7
  32. package/dist/esm/stockSkills/macd.d.ts +32 -63
  33. package/dist/esm/stockSkills/macd.js +21 -24
  34. package/dist/esm/stockSkills/obv.d.ts +16 -49
  35. package/dist/esm/stockSkills/obv.js +3 -1
  36. package/dist/esm/stockSkills/rsi.d.ts +10 -26
  37. package/dist/esm/stockSkills/types.d.ts +10 -0
  38. package/dist/esm/stockSkills/types.js +1 -0
  39. package/dist/esm/stockSkills/utils/getWeekLine.d.ts +4 -16
  40. package/dist/esm/stockSkills/utils/getWeekLine.js +3 -0
  41. package/dist/esm/stockSkills/utils/getWeekLine.test.js +1 -0
  42. package/dist/esm/stockSkills/vma.d.ts +11 -26
  43. package/dist/esm/stockSkills/williams.d.ts +20 -32
  44. package/dist/umd/index.js +66 -54
  45. package/package.json +17 -15
@@ -19,9 +19,9 @@ var Boll = /** @class */ (function () {
19
19
  value: function (data) {
20
20
  return {
21
21
  dataset: [data],
22
- bollMa: null,
23
- bollUb: null,
24
- bollLb: null,
22
+ bollMa: 0,
23
+ bollUb: 0,
24
+ bollLb: 0,
25
25
  };
26
26
  }
27
27
  });
@@ -35,9 +35,9 @@ var Boll = /** @class */ (function () {
35
35
  return {
36
36
  dataset: preList.dataset,
37
37
  type: type,
38
- bollMa: null,
39
- bollUb: null,
40
- bollLb: null,
38
+ bollMa: 0,
39
+ bollUb: 0,
40
+ bollLb: 0,
41
41
  };
42
42
  }
43
43
  else {
@@ -47,7 +47,7 @@ var Boll = /** @class */ (function () {
47
47
  var sum = preList.dataset.reduce(function (pre, current) { return pre + current.c; }, 0);
48
48
  var bollMa_1 = Math.round((sum / type) * 100) / 100;
49
49
  var difference = preList.dataset.reduce(function (pre, current) {
50
- return bollMa_1 !== null ? pre + Math.pow(current.c - bollMa_1, 2) : pre;
50
+ return bollMa_1 !== 0 ? pre + Math.pow(current.c - bollMa_1, 2) : pre;
51
51
  }, 0);
52
52
  var std = Math.round(Math.sqrt(difference / type) * 100) / 100;
53
53
  return {
@@ -68,7 +68,7 @@ var Boll = /** @class */ (function () {
68
68
  var res = [];
69
69
  var _loop_1 = function (i) {
70
70
  if (i < type)
71
- res[i] = __assign(__assign({}, list[i]), { bollMa: null, bollUb: null, bollLb: null });
71
+ res[i] = __assign(__assign({}, list[i]), { bollMa: 0, bollUb: 0, bollLb: 0 });
72
72
  else {
73
73
  // bollMa
74
74
  var sumMa = list
@@ -79,9 +79,7 @@ var Boll = /** @class */ (function () {
79
79
  var difference = res
80
80
  .slice(i - (type - 1), i + 1)
81
81
  .reduce(function (pre, current) {
82
- return bollMa_2 !== null
83
- ? pre + Math.pow(current.c - bollMa_2, 2)
84
- : pre;
82
+ return bollMa_2 !== 0 ? pre + Math.pow(current.c - bollMa_2, 2) : pre;
85
83
  }, 0);
86
84
  var std = Math.round(Math.sqrt(difference / type) * 100) / 100;
87
85
  res[i] = __assign(__assign({}, list[i]), { bollMa: bollMa_2, bollUb: bollMa_2 + 2 * std, bollLb: bollMa_2 - 2 * std });
@@ -1,40 +1,18 @@
1
- type ItemType = {
2
- c: number;
3
- [key: string]: unknown;
1
+ import { StockListType, StockType } from "./types";
2
+ export type EmaResType = {
3
+ dataset: StockListType;
4
+ ema: number;
5
+ type: number;
4
6
  };
5
- type ListType = ItemType[];
6
- interface EmaType {
7
- init: (data: ItemType, type: number) => {
8
- dataset: ListType;
9
- ema: number;
10
- type: number;
11
- };
12
- next: (data: ItemType, preList: {
13
- dataset: ListType;
14
- ema: number;
15
- type: number;
16
- }, type: number) => {
17
- dataset: ListType;
18
- ema: number;
19
- type: number;
20
- };
7
+ interface EmaClassType {
8
+ init: (data: StockType, type: number) => EmaResType;
9
+ next: (data: StockType, preList: EmaResType, type: number) => EmaResType;
21
10
  getStartEma: (list: number[], period: number) => number;
22
11
  getEma: (list: number[], period: number) => (number | null)[];
23
12
  }
24
- export default class Ema implements EmaType {
25
- init(data: ItemType, type: number): {
26
- dataset: ListType;
27
- ema: number;
28
- type: number;
29
- };
30
- next(data: ItemType, preList: {
31
- dataset: ListType;
32
- ema: number;
33
- }, type: number): {
34
- dataset: ListType;
35
- ema: number;
36
- type: number;
37
- };
13
+ export default class Ema implements EmaClassType {
14
+ init(data: StockType, type: number): EmaResType;
15
+ next(data: StockType, preList: EmaResType, type: number): EmaResType;
38
16
  getStartEma(list: number[], period: number): number;
39
17
  getEma(list: number[], period: number): (number | null)[];
40
18
  }
@@ -1,3 +1,5 @@
1
+ import { StockListType } from "./types";
2
+ import { StockType } from "./types";
1
3
  export type GetGoldResType = {
2
4
  lowestPoint: number;
3
5
  highestPoint: number;
@@ -7,42 +9,20 @@ export type GetGoldResType = {
7
9
  weak: number;
8
10
  superWeak: number;
9
11
  };
10
- type ListType = {
11
- h: number;
12
- t: number;
13
- o: number;
14
- c: number;
15
- l: number;
16
- [key: string]: unknown;
17
- }[];
18
- type FindHightestResType = {
19
- [key: string]: {
20
- h: number;
21
- t: number;
22
- o: number;
23
- c: number;
24
- l: number;
25
- [key: string]: unknown;
26
- };
12
+ export type FindHightestResType = {
13
+ [key: string]: StockType;
27
14
  };
28
- type FindLowestResType = {
29
- [key: string]: {
30
- h: number;
31
- t: number;
32
- o: number;
33
- c: number;
34
- l: number;
35
- [key: string]: unknown;
36
- };
15
+ export type FindLowestResType = {
16
+ [key: string]: StockType;
37
17
  };
38
- interface GoldType {
39
- findHighPoint: (list: ListType) => FindHightestResType;
40
- findLowPoint: (list: ListType) => FindLowestResType;
18
+ interface GoldClassType {
19
+ findHighPoint: (list: StockListType) => FindHightestResType;
20
+ findLowPoint: (list: StockListType) => FindLowestResType;
41
21
  getGold: (highestPoint: number, lowestPoint: number) => GetGoldResType;
42
22
  }
43
- export default class Gold implements GoldType {
44
- findHighPoint(list: ListType): FindHightestResType;
45
- findLowPoint(list: ListType): FindLowestResType;
23
+ export default class Gold implements GoldClassType {
24
+ findHighPoint(list: StockListType): FindHightestResType;
25
+ findLowPoint(list: StockListType): FindLowestResType;
46
26
  getGold(highestPoint: number, lowestPoint: number): GetGoldResType;
47
27
  }
48
28
  export {};
@@ -1,78 +1,35 @@
1
- interface KdType {
2
- getRSV: (list: ListType) => ResRSV;
3
- getKD: (list: ListType) => ResKD;
4
- }
5
- type DataType = {
6
- c: number;
7
- h: number;
8
- l: number;
9
- };
10
- type ListType = DataType[];
1
+ import { StockListType, StockType } from "./types";
11
2
  type ResRSV = {
12
3
  c: number;
13
- rsv: number | null;
14
- }[];
4
+ rsv: number;
5
+ [key: string]: unknown;
6
+ };
15
7
  type ResKD = {
16
8
  c: number;
17
- rsv: number | null;
18
- k: number | null;
19
- d: number | null;
20
- "k-d": number | null;
21
- }[];
22
- export default class Kd implements KdType {
23
- init(data: DataType): {
24
- dataset: ListType;
25
- rsv: number | null;
26
- k: number | null;
27
- d: number | null;
28
- "k-d": number | null;
29
- };
30
- next(data: DataType, preList: {
31
- dataset: ListType;
32
- rsv: number | null;
33
- k: number | null;
34
- d: number | null;
35
- "k-d": number | null;
36
- }, type: number): {
37
- dataset: ListType;
38
- rsv: null;
39
- k: null;
40
- d: null;
41
- "k-d": null;
42
- } | {
43
- dataset: ListType;
44
- rsv: number;
45
- k: number;
46
- d: number;
47
- "k-d": number;
48
- };
49
- getRSV(list: ListType): ({
50
- rsv: null;
51
- c: number;
52
- h: number;
53
- l: number;
54
- } | {
55
- rsv: number;
56
- c: number;
57
- h: number;
58
- l: number;
59
- })[];
60
- getKD(list: ListType): ({
61
- rsv: null;
62
- k: null;
63
- d: null;
64
- "k-d": null;
65
- c: number;
66
- h: number;
67
- l: number;
68
- } | {
69
- rsv: number;
70
- k: number;
71
- d: number;
72
- "k-d": number;
73
- c: number;
74
- h: number;
75
- l: number;
76
- })[];
9
+ rsv: number;
10
+ k: number;
11
+ d: number;
12
+ "k-d": number;
13
+ [key: string]: unknown;
14
+ };
15
+ export type KdResType = {
16
+ dataset: StockListType;
17
+ rsv: number;
18
+ k: number;
19
+ d: number;
20
+ "k-d": number;
21
+ type: number;
22
+ };
23
+ interface KdClassType {
24
+ init: (data: StockType, type: number) => KdResType;
25
+ next: (data: StockType, preList: KdResType, type: number) => KdResType;
26
+ getRSV: (list: StockListType) => ResRSV[];
27
+ getKD: (list: StockListType) => ResKD[];
28
+ }
29
+ export default class Kd implements KdClassType {
30
+ init(data: StockType, type: number): KdResType;
31
+ next(data: StockType, preList: KdResType, type: number): KdResType;
32
+ getRSV(list: StockListType): ResRSV[];
33
+ getKD(list: StockListType): ResKD[];
77
34
  }
78
35
  export {};
@@ -16,13 +16,14 @@ var Kd = /** @class */ (function () {
16
16
  enumerable: false,
17
17
  configurable: true,
18
18
  writable: true,
19
- value: function (data) {
19
+ value: function (data, type) {
20
20
  return {
21
21
  dataset: [data],
22
- rsv: null,
23
- k: null,
24
- d: null,
25
- "k-d": null,
22
+ rsv: 0,
23
+ k: 0,
24
+ d: 0,
25
+ "k-d": 0,
26
+ type: type,
26
27
  };
27
28
  }
28
29
  });
@@ -35,10 +36,11 @@ var Kd = /** @class */ (function () {
35
36
  if (preList.dataset.length < type) {
36
37
  return {
37
38
  dataset: preList.dataset,
38
- rsv: null,
39
- k: null,
40
- d: null,
41
- "k-d": null,
39
+ rsv: 0,
40
+ k: 0,
41
+ d: 0,
42
+ "k-d": 0,
43
+ type: type,
42
44
  };
43
45
  }
44
46
  else {
@@ -62,6 +64,7 @@ var Kd = /** @class */ (function () {
62
64
  k: k,
63
65
  d: d,
64
66
  "k-d": k_d,
67
+ type: type,
65
68
  };
66
69
  }
67
70
  }
@@ -74,7 +77,7 @@ var Kd = /** @class */ (function () {
74
77
  var res = [];
75
78
  for (var i = 0; i < list.length; i++) {
76
79
  if (i < 8)
77
- res[i] = __assign(__assign({}, list[i]), { rsv: null });
80
+ res[i] = __assign(__assign({}, list[i]), { rsv: 0 });
78
81
  else {
79
82
  var low = Math.min.apply(Math, list.slice(i - 8, i + 1).map(function (item) { return item.l; }));
80
83
  var hight = Math.max.apply(Math, list.slice(i - 8, i + 1).map(function (item) { return item.h; }));
@@ -97,7 +100,7 @@ var Kd = /** @class */ (function () {
97
100
  var yesterdayD = 50;
98
101
  for (var i = 0; i < list.length; i++) {
99
102
  if (i < 8)
100
- res[i] = __assign(__assign({}, list[i]), { rsv: null, k: null, d: null, "k-d": null });
103
+ res[i] = __assign(__assign({}, list[i]), { rsv: 0, k: 0, d: 0, "k-d": 0 });
101
104
  else {
102
105
  var low = Math.min.apply(Math, list.slice(i - 8, i + 1).map(function (item) { return item.l; }));
103
106
  var hight = Math.max.apply(Math, list.slice(i - 8, i + 1).map(function (item) { return item.h; }));
@@ -5,7 +5,7 @@ describe("test kd methods", function () {
5
5
  var index = data.length - 1;
6
6
  var kd = new Kd();
7
7
  var realData = kd.getKD(data)[index];
8
- var init = kd.init(data[0]);
8
+ var init = kd.init(data[0], 9);
9
9
  var res = init;
10
10
  for (var i = 1; i <= index; i++) {
11
11
  var item = data[i];
@@ -1,76 +1,55 @@
1
- type DataType = {
2
- c: number;
3
- [key: string]: unknown;
1
+ import { StockListType, StockType } from "./types";
2
+ export type MaResType = {
3
+ dataset: StockListType;
4
+ ma: number;
5
+ type: number;
6
+ exclusionValue: {
7
+ "d+1": number;
8
+ d: number;
9
+ "d-1": number;
10
+ };
4
11
  };
5
- type ListType = DataType[];
6
12
  type ResMa5 = {
7
13
  c: number;
8
- ma5: number | null;
14
+ ma5: number;
9
15
  }[];
10
16
  type ResMa10 = {
11
17
  c: number;
12
- ma10: number | null;
18
+ ma10: number;
13
19
  }[];
14
20
  type ResMa20 = {
15
21
  c: number;
16
- ma20: number | null;
22
+ ma20: number;
17
23
  }[];
18
24
  type ResMa60 = {
19
25
  c: number;
20
- ma60: number | null;
26
+ ma60: number;
21
27
  }[];
22
28
  type ResMa = {
23
29
  c: number;
24
- ma: number | null;
30
+ ma: number;
25
31
  }[];
26
32
  type ResAllMa = {
27
33
  c: number;
28
- ma5: number | null;
29
- ma10: number | null;
30
- ma20: number | null;
31
- ma25: number | null;
32
- ma60: number | null;
34
+ ma5: number;
35
+ ma10: number;
36
+ ma20: number;
37
+ ma25: number;
38
+ ma60: number;
33
39
  }[];
34
40
  interface MaType {
35
- init: (data: DataType, type: number) => {
36
- dataset: ListType;
37
- ma: number;
38
- type: number;
39
- exclusionValue: {
40
- "d+1": number;
41
- d: number;
42
- "d-1": number;
43
- };
44
- };
45
- next: (data: DataType, preList: {
46
- dataset: ListType;
47
- ma: number;
48
- type: number;
49
- exclusionValue: {
50
- "d+1": number;
51
- d: number;
52
- "d-1": number;
53
- };
54
- }, type: number) => {
55
- dataset: ListType;
56
- ma: number;
57
- type: number;
58
- exclusionValue: {
59
- "d+1": number;
60
- d: number;
61
- "d-1": number;
62
- };
63
- };
64
- getAllMa: (list: ListType) => ResAllMa;
65
- getMa5: (list: ListType) => ResMa5;
66
- getMa10: (list: ListType) => ResMa10;
67
- getMa20: (list: ListType) => ResMa20;
68
- getMa60: (list: ListType) => ResMa60;
69
- getMa: (list: ListType, self: number) => ResMa;
41
+ init: (data: StockType, type: number) => MaResType;
42
+ next: (data: StockType, preList: MaResType, type: number) => MaResType;
43
+ getAllMa: (list: StockListType) => ResAllMa;
44
+ getMa5: (list: StockListType) => ResMa5;
45
+ getMa10: (list: StockListType) => ResMa10;
46
+ getMa20: (list: StockListType) => ResMa20;
47
+ getMa60: (list: StockListType) => ResMa60;
48
+ getMa: (list: StockListType, self: number) => ResMa;
70
49
  }
71
50
  export default class Ma implements MaType {
72
- init(data: DataType, type: number): {
73
- dataset: DataType[];
51
+ init(data: StockType, type: number): {
52
+ dataset: StockType[];
74
53
  ma: number;
75
54
  type: number;
76
55
  exclusionValue: {
@@ -79,12 +58,12 @@ export default class Ma implements MaType {
79
58
  "d-1": number;
80
59
  };
81
60
  };
82
- next(data: DataType, preList: {
83
- dataset: ListType;
61
+ next(data: StockType, preList: {
62
+ dataset: StockListType;
84
63
  ma: number;
85
64
  type: number;
86
65
  }, type: number): {
87
- dataset: ListType;
66
+ dataset: StockListType;
88
67
  ma: number;
89
68
  type: number;
90
69
  exclusionValue: {
@@ -93,11 +72,11 @@ export default class Ma implements MaType {
93
72
  "d-1": number;
94
73
  };
95
74
  };
96
- getAllMa(list: ListType): ResAllMa;
97
- getMa5(list: ListType): ResMa5;
98
- getMa10(list: ListType): ResMa10;
99
- getMa20(list: ListType): ResMa20;
100
- getMa60(list: ListType): ResMa60;
101
- getMa(list: ListType, self: number): ResMa;
75
+ getAllMa(list: StockListType): ResAllMa;
76
+ getMa5(list: StockListType): ResMa5;
77
+ getMa10(list: StockListType): ResMa10;
78
+ getMa20(list: StockListType): ResMa20;
79
+ getMa60(list: StockListType): ResMa60;
80
+ getMa(list: StockListType, self: number): ResMa;
102
81
  }
103
82
  export {};
@@ -17,7 +17,12 @@ var Ma = /** @class */ (function () {
17
17
  configurable: true,
18
18
  writable: true,
19
19
  value: function (data, type) {
20
- return { dataset: [data], ma: 0, type: type, exclusionValue: { "d+1": 0, d: 0, "d-1": 0 } };
20
+ return {
21
+ dataset: [data],
22
+ ma: 0,
23
+ type: type,
24
+ exclusionValue: { "d+1": 0, d: 0, "d-1": 0 },
25
+ };
21
26
  }
22
27
  });
23
28
  Object.defineProperty(Ma.prototype, "next", {
@@ -35,7 +40,11 @@ var Ma = /** @class */ (function () {
35
40
  };
36
41
  }
37
42
  else {
38
- var exclusionValue = { "d+1": preList.dataset[1].c, d: preList.dataset[0].c, "d-1": 0 };
43
+ var exclusionValue = {
44
+ "d+1": preList.dataset[1].c,
45
+ d: preList.dataset[0].c,
46
+ "d-1": 0,
47
+ };
39
48
  if (preList.dataset.length > type) {
40
49
  exclusionValue["d-1"] = exclusionValue.d;
41
50
  preList.dataset.shift();
@@ -72,7 +81,7 @@ var Ma = /** @class */ (function () {
72
81
  var res = [];
73
82
  for (var i = 0; i < list.length; i++) {
74
83
  if (i < 4)
75
- res[i] = __assign(__assign({}, list[i]), { ma5: null });
84
+ res[i] = __assign(__assign({}, list[i]), { ma5: 0 });
76
85
  else {
77
86
  var sum = list
78
87
  .slice(i - 4, i + 1)
@@ -92,7 +101,7 @@ var Ma = /** @class */ (function () {
92
101
  var res = [];
93
102
  for (var i = 0; i < list.length; i++) {
94
103
  if (i < 9)
95
- res[i] = __assign(__assign({}, list[i]), { ma10: null });
104
+ res[i] = __assign(__assign({}, list[i]), { ma10: 0 });
96
105
  else {
97
106
  var sum = list
98
107
  .slice(i - 9, i + 1)
@@ -112,7 +121,7 @@ var Ma = /** @class */ (function () {
112
121
  var res = [];
113
122
  for (var i = 0; i < list.length; i++) {
114
123
  if (i < 19)
115
- res[i] = __assign(__assign({}, list[i]), { ma20: null });
124
+ res[i] = __assign(__assign({}, list[i]), { ma20: 0 });
116
125
  else {
117
126
  var sum = list
118
127
  .slice(i - 19, i + 1)
@@ -132,7 +141,7 @@ var Ma = /** @class */ (function () {
132
141
  var res = [];
133
142
  for (var i = 0; i < list.length; i++) {
134
143
  if (i < 59)
135
- res[i] = __assign(__assign({}, list[i]), { ma60: null });
144
+ res[i] = __assign(__assign({}, list[i]), { ma60: 0 });
136
145
  else {
137
146
  var sum = list
138
147
  .slice(i - 59, i + 1)
@@ -152,7 +161,7 @@ var Ma = /** @class */ (function () {
152
161
  var res = [];
153
162
  for (var i = 0; i < list.length; i++) {
154
163
  if (i < self - 1)
155
- res[i] = __assign(__assign({}, list[i]), { ma: null });
164
+ res[i] = __assign(__assign({}, list[i]), { ma: 0 });
156
165
  else {
157
166
  var sum = list
158
167
  .slice(i - (self - 1), i + 1)
@@ -1,8 +1,4 @@
1
- type ItemType = {
2
- h: number;
3
- l: number;
4
- c: number;
5
- };
1
+ import { StockListType, StockType } from "./types";
6
2
  type ResEMA12Type = {
7
3
  h: number;
8
4
  l: number;
@@ -38,68 +34,41 @@ type ResAllMacdType = {
38
34
  MACD9: number | null;
39
35
  OSC: number | null;
40
36
  }[];
37
+ export type MacdResType = {
38
+ dataset: StockListType;
39
+ ema12: number;
40
+ ema26: number;
41
+ dif: number[];
42
+ macd: number;
43
+ osc: number;
44
+ };
41
45
  interface MacdType {
42
- init: (data: ItemType) => {
43
- dataset: ItemType[];
44
- ema12: number | null;
45
- ema26: number | null;
46
- dif: number[];
47
- macd: number | null;
48
- osc: number | null;
49
- };
50
- next: (data: ItemType, preList: {
51
- dataset: ItemType[];
52
- ema12: number | null;
53
- ema26: number | null;
54
- dif: number[];
55
- macd: number | null;
56
- osc: number | null;
57
- }) => {
58
- dataset: ItemType[];
59
- ema12: number | null;
60
- ema26: number | null;
61
- dif: number[];
62
- macd: number | null;
63
- osc: number | null;
64
- };
65
- getMACD: (list: ItemType[]) => ResAllMacdType;
66
- getDI: (item: ItemType) => number;
67
- getStartEMA: (list: ItemType[]) => number;
68
- getEMA12: (list: ItemType[]) => ResEMA12Type;
69
- getEMA26: (list: ItemType[]) => ResEMA26Type;
70
- getDIF: (list: ItemType[], ResEMA12: ResEMA12Type, ResEMA26: ResEMA26Type) => ResDifType;
71
- getMACD9: (list: ItemType[], DIF: ResDifType) => ResMacd9Type;
46
+ init: (data: StockType) => MacdResType;
47
+ next: (data: StockType, preList: MacdResType) => MacdResType;
48
+ getMACD: (list: StockType[]) => ResAllMacdType;
49
+ getDI: (item: StockType) => number;
50
+ getStartEMA: (list: StockType[]) => number;
51
+ getEMA12: (list: StockType[]) => ResEMA12Type;
52
+ getEMA26: (list: StockType[]) => ResEMA26Type;
53
+ getDIF: (list: StockType[], ResEMA12: ResEMA12Type, ResEMA26: ResEMA26Type) => ResDifType;
54
+ getMACD9: (list: StockType[], DIF: ResDifType) => ResMacd9Type;
72
55
  }
73
56
  export default class MACD implements MacdType {
74
- init(data: ItemType): {
75
- dataset: ItemType[];
76
- ema12: number | null;
77
- ema26: number | null;
78
- dif: number[];
79
- macd: number | null;
80
- osc: number | null;
81
- };
82
- next(data: ItemType, preList: {
83
- dataset: ItemType[];
84
- ema12: number | null;
85
- ema26: number | null;
86
- dif: number[];
87
- macd: number | null;
88
- osc: number | null;
89
- }): {
90
- dataset: ItemType[];
91
- ema12: number | null;
92
- ema26: number | null;
57
+ init(data: StockType): MacdResType;
58
+ next(data: StockType, preList: MacdResType): {
59
+ dataset: StockListType;
60
+ ema12: number;
61
+ ema26: number;
93
62
  dif: number[];
94
- macd: number | null;
95
- osc: number | null;
63
+ macd: number;
64
+ osc: number;
96
65
  };
97
- getMACD(list: ItemType[]): ResAllMacdType;
98
- getDI(item: ItemType): number;
99
- getStartEMA(arr: ItemType[]): number;
100
- getEMA12(list: ItemType[]): ResEMA12Type;
101
- getEMA26(list: ItemType[]): ResEMA26Type;
102
- getDIF(list: ItemType[], ResEMA12: ResEMA12Type, ResEMA26: ResEMA26Type): ResDifType;
103
- getMACD9(list: ItemType[], DIF: ResDifType): ResMacd9Type;
66
+ getMACD(list: StockType[]): ResAllMacdType;
67
+ getDI(item: StockType): number;
68
+ getStartEMA(arr: StockType[]): number;
69
+ getEMA12(list: StockType[]): ResEMA12Type;
70
+ getEMA26(list: StockType[]): ResEMA26Type;
71
+ getDIF(list: StockType[], ResEMA12: ResEMA12Type, ResEMA26: ResEMA26Type): ResDifType;
72
+ getMACD9(list: StockType[], DIF: ResDifType): ResMacd9Type;
104
73
  }
105
74
  export {};