@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,7 +19,12 @@ var Ma = /** @class */ (function () {
19
19
  configurable: true,
20
20
  writable: true,
21
21
  value: function (data, type) {
22
- return { dataset: [data], ma: 0, type: type, exclusionValue: { "d+1": 0, d: 0, "d-1": 0 } };
22
+ return {
23
+ dataset: [data],
24
+ ma: 0,
25
+ type: type,
26
+ exclusionValue: { "d+1": 0, d: 0, "d-1": 0 },
27
+ };
23
28
  }
24
29
  });
25
30
  Object.defineProperty(Ma.prototype, "next", {
@@ -37,7 +42,11 @@ var Ma = /** @class */ (function () {
37
42
  };
38
43
  }
39
44
  else {
40
- var exclusionValue = { "d+1": preList.dataset[1].c, d: preList.dataset[0].c, "d-1": 0 };
45
+ var exclusionValue = {
46
+ "d+1": preList.dataset[1].c,
47
+ d: preList.dataset[0].c,
48
+ "d-1": 0,
49
+ };
41
50
  if (preList.dataset.length > type) {
42
51
  exclusionValue["d-1"] = exclusionValue.d;
43
52
  preList.dataset.shift();
@@ -74,7 +83,7 @@ var Ma = /** @class */ (function () {
74
83
  var res = [];
75
84
  for (var i = 0; i < list.length; i++) {
76
85
  if (i < 4)
77
- res[i] = __assign(__assign({}, list[i]), { ma5: null });
86
+ res[i] = __assign(__assign({}, list[i]), { ma5: 0 });
78
87
  else {
79
88
  var sum = list
80
89
  .slice(i - 4, i + 1)
@@ -94,7 +103,7 @@ var Ma = /** @class */ (function () {
94
103
  var res = [];
95
104
  for (var i = 0; i < list.length; i++) {
96
105
  if (i < 9)
97
- res[i] = __assign(__assign({}, list[i]), { ma10: null });
106
+ res[i] = __assign(__assign({}, list[i]), { ma10: 0 });
98
107
  else {
99
108
  var sum = list
100
109
  .slice(i - 9, i + 1)
@@ -114,7 +123,7 @@ var Ma = /** @class */ (function () {
114
123
  var res = [];
115
124
  for (var i = 0; i < list.length; i++) {
116
125
  if (i < 19)
117
- res[i] = __assign(__assign({}, list[i]), { ma20: null });
126
+ res[i] = __assign(__assign({}, list[i]), { ma20: 0 });
118
127
  else {
119
128
  var sum = list
120
129
  .slice(i - 19, i + 1)
@@ -134,7 +143,7 @@ var Ma = /** @class */ (function () {
134
143
  var res = [];
135
144
  for (var i = 0; i < list.length; i++) {
136
145
  if (i < 59)
137
- res[i] = __assign(__assign({}, list[i]), { ma60: null });
146
+ res[i] = __assign(__assign({}, list[i]), { ma60: 0 });
138
147
  else {
139
148
  var sum = list
140
149
  .slice(i - 59, i + 1)
@@ -154,7 +163,7 @@ var Ma = /** @class */ (function () {
154
163
  var res = [];
155
164
  for (var i = 0; i < list.length; i++) {
156
165
  if (i < self - 1)
157
- res[i] = __assign(__assign({}, list[i]), { ma: null });
166
+ res[i] = __assign(__assign({}, list[i]), { ma: 0 });
158
167
  else {
159
168
  var sum = list
160
169
  .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 {};
@@ -21,11 +21,11 @@ var MACD = /** @class */ (function () {
21
21
  value: function (data) {
22
22
  return {
23
23
  dataset: [data],
24
- ema12: null,
25
- ema26: null,
24
+ ema12: 0,
25
+ ema26: 0,
26
26
  dif: [],
27
- macd: null,
28
- osc: null,
27
+ macd: 0,
28
+ osc: 0,
29
29
  };
30
30
  }
31
31
  });
@@ -39,7 +39,7 @@ var MACD = /** @class */ (function () {
39
39
  if (preList.dataset.length > 34)
40
40
  preList.dataset.shift();
41
41
  // EMA12
42
- var ema12 = null;
42
+ var ema12 = 0;
43
43
  if (preList.dataset.length === 12) {
44
44
  ema12 = this.getStartEMA(preList.dataset);
45
45
  ema12 = (ema12 * 11) / 13 + (this.getDI(data) * 2) / 13;
@@ -50,7 +50,7 @@ var MACD = /** @class */ (function () {
50
50
  ema12 = Math.round(ema12 * 100) / 100;
51
51
  }
52
52
  // EMA26
53
- var ema26 = null;
53
+ var ema26 = 0;
54
54
  if (preList.dataset.length === 26) {
55
55
  ema26 = this.getStartEMA(preList.dataset);
56
56
  ema26 = (ema26 * 25) / 27 + (this.getDI(data) * 2) / 27;
@@ -61,36 +61,33 @@ var MACD = /** @class */ (function () {
61
61
  ema26 = Math.round(ema26 * 100) / 100;
62
62
  }
63
63
  // DIF
64
- var dif = null;
64
+ var dif = 0;
65
65
  if (ema12 && ema26) {
66
66
  dif = ema12 - ema26;
67
67
  dif = Math.round(dif * 100) / 100;
68
68
  (_a = preList.dif) === null || _a === void 0 ? void 0 : _a.push(dif);
69
- if (preList.dif.length > 9)
70
- (_b = preList.dif) === null || _b === void 0 ? void 0 : _b.shift();
71
69
  }
72
70
  // MACD & OSC
73
- var macd = null;
74
- var osc = null;
71
+ var macd = 0;
72
+ var osc = 0;
75
73
  if (preList.dif.length === 9) {
76
- if (preList.macd === null) {
77
- macd = preList.dif.reduce(function (accumulator, currentValue) { return accumulator + currentValue; });
78
- for (var i = 0; i < 9; i++) {
79
- var item = preList.dif[i];
80
- macd = macd + ((item - macd) * 2) / 10;
81
- macd = Math.round(macd * 100) / 100;
82
- osc = item - macd;
83
- osc = Math.round(osc * 100) / 100;
84
- }
85
- }
86
- else {
87
- macd = preList.macd + ((dif - preList.macd) * 2) / 10;
74
+ macd = preList.dif.reduce(function (accumulator, currentValue) { return accumulator + currentValue; });
75
+ for (var i = 0; i < 9; i++) {
76
+ var item = preList.dif[i];
77
+ macd = macd + ((item - macd) * 2) / 10;
88
78
  macd = Math.round(macd * 100) / 100;
89
- var item = preList.dif[preList.dif.length - 1];
90
79
  osc = item - macd;
91
80
  osc = Math.round(osc * 100) / 100;
92
81
  }
93
82
  }
83
+ else if (preList.dif.length > 9) {
84
+ macd = preList.macd + ((dif - preList.macd) * 2) / 10;
85
+ macd = Math.round(macd * 100) / 100;
86
+ var item = preList.dif[preList.dif.length - 1];
87
+ osc = item - macd;
88
+ osc = Math.round(osc * 100) / 100;
89
+ (_b = preList.dif) === null || _b === void 0 ? void 0 : _b.shift();
90
+ }
94
91
  return {
95
92
  dataset: preList.dataset,
96
93
  ema12: ema12,
@@ -1,56 +1,23 @@
1
- type ItemType = {
2
- h: number;
3
- l: number;
4
- c: number;
5
- v: number;
6
- };
1
+ import { StockListType, StockType } from "./types";
7
2
  type ResObv = {
8
3
  obv: number;
9
- } & ItemType;
4
+ } & StockType;
5
+ export type ObvResType = {
6
+ dataset: StockListType;
7
+ obv: number;
8
+ obvList: number[];
9
+ preClose: number;
10
+ obvMa: number;
11
+ type: number;
12
+ };
10
13
  interface ObvType {
11
- init: (data: ItemType, type: number) => {
12
- dataset: ItemType[];
13
- obv: number;
14
- obvList: number[];
15
- preClose: number;
16
- obvMa: number;
17
- };
18
- next: (data: ItemType, preList: {
19
- dataset: ItemType[];
20
- obv: number;
21
- obvList: number[];
22
- preClose: number;
23
- obvMa: number;
24
- }, type: number) => {
25
- dataset: ItemType[];
26
- obv: number;
27
- obvList: number[];
28
- preClose: number;
29
- obvMa: number;
30
- };
31
- getObv: (list: ItemType[], period: number) => ResObv[];
14
+ init: (data: StockType, type: number) => ObvResType;
15
+ next: (data: StockType, preList: ObvResType, type: number) => ObvResType;
16
+ getObv: (list: StockType[], period: number) => ResObv[];
32
17
  }
33
18
  export default class Obv implements ObvType {
34
- init(data: ItemType, type: number): {
35
- dataset: ItemType[];
36
- obv: number;
37
- obvList: number[];
38
- preClose: number;
39
- obvMa: number;
40
- };
41
- next(data: ItemType, preList: {
42
- dataset: ItemType[];
43
- obv: number;
44
- obvList: number[];
45
- preClose: number;
46
- obvMa: number;
47
- }, type: number): {
48
- dataset: ItemType[];
49
- obv: number;
50
- preClose: number;
51
- obvList: number[];
52
- obvMa: number;
53
- };
54
- getObv(list: ItemType[]): ResObv[];
19
+ init(data: StockType, type: number): ObvResType;
20
+ next(data: StockType, preList: ObvResType, type: number): ObvResType;
21
+ getObv(list: StockType[]): ResObv[];
55
22
  }
56
23
  export {};
@@ -34,6 +34,7 @@ var Obv = /** @class */ (function () {
34
34
  obvList: [data.v],
35
35
  preClose: data.c,
36
36
  obvMa: 0,
37
+ type: type,
37
38
  };
38
39
  }
39
40
  });
@@ -64,7 +65,8 @@ var Obv = /** @class */ (function () {
64
65
  obv: obv,
65
66
  preClose: currentClose,
66
67
  obvList: obvList,
67
- obvMa: vma
68
+ obvMa: vma,
69
+ type: type,
68
70
  };
69
71
  }
70
72
  });
@@ -1,29 +1,13 @@
1
- type DataType = {
2
- c: number;
3
- [key: string]: unknown;
1
+ import { StockListType, StockType } from "./types";
2
+ export type RsiResType = {
3
+ dataset: StockListType;
4
+ rsi: number;
5
+ type: number;
6
+ avgGain: number;
7
+ avgLoss: number;
4
8
  };
5
- type ListType = DataType[];
6
9
  export default class Rsi {
7
- init(data: DataType, type: number): {
8
- dataset: DataType[];
9
- rsi: number;
10
- type: number;
11
- avgGain: number;
12
- avgLoss: number;
13
- };
14
- next(data: DataType, preList: {
15
- dataset: ListType;
16
- rsi: number;
17
- type: number;
18
- avgGain: number;
19
- avgLoss: number;
20
- }, type: number): {
21
- rsi: number;
22
- type: number;
23
- avgGain: number;
24
- avgLoss: number;
25
- dataset: ListType;
26
- };
27
- calculateRSI(prices: ListType, period?: number): number[];
10
+ init(data: StockType, type: number): RsiResType;
11
+ next(data: StockType, preList: RsiResType, type: number): RsiResType;
12
+ calculateRSI(prices: StockListType, period?: number): number[];
28
13
  }
29
- export {};
@@ -0,0 +1,10 @@
1
+ export type StockType = {
2
+ c: number;
3
+ v: number;
4
+ l: number;
5
+ h: number;
6
+ o: number;
7
+ t: number;
8
+ [key: string]: unknown;
9
+ };
10
+ export type StockListType = StockType[];
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,17 +1,5 @@
1
- type ListType = {
2
- h: number;
3
- t: number;
4
- o: number;
5
- c: number;
6
- l: number;
7
- }[];
1
+ import { StockListType, StockType } from "../types";
8
2
  export type ResType = {
9
- h: number;
10
- t: number;
11
- o: number;
12
- c: number;
13
- l: number;
14
- detail?: ListType;
15
- };
16
- export default function getWeekLine(list: ListType, detail: boolean): ResType[];
17
- export {};
3
+ detail?: StockListType;
4
+ } & StockType;
5
+ export default function getWeekLine(list: StockListType, detail: boolean): ResType[];
@@ -36,6 +36,7 @@ function getWeekLine(list, detail) {
36
36
  t: collectWeekData[collectWeekData.length - 1]["t"],
37
37
  h: Math.max.apply(Math, collectWeekData.map(function (item) { return item.h; })),
38
38
  l: Math.min.apply(Math, collectWeekData.map(function (item) { return item.l; })),
39
+ v: collectWeekData.reduce(function (pre, current) { return pre + current.v; }, 0),
39
40
  };
40
41
  res.push(addDetail(obj, collectWeekData, detail));
41
42
  collectWeekData = [];
@@ -49,6 +50,7 @@ function getWeekLine(list, detail) {
49
50
  t: collectWeekData[collectWeekData.length - 1]["t"],
50
51
  h: Math.max.apply(Math, collectWeekData.map(function (item) { return item.h; })),
51
52
  l: Math.min.apply(Math, collectWeekData.map(function (item) { return item.l; })),
53
+ v: collectWeekData.reduce(function (pre, current) { return pre + current.v; }, 0),
52
54
  };
53
55
  res.push(addDetail(obj, collectWeekData, detail));
54
56
  }
@@ -64,6 +66,7 @@ function getWeekLine(list, detail) {
64
66
  t: collectWeekData[collectWeekData.length - 1]["t"],
65
67
  h: Math.max.apply(Math, collectWeekData.map(function (item) { return item.h; })),
66
68
  l: Math.min.apply(Math, collectWeekData.map(function (item) { return item.l; })),
69
+ v: collectWeekData.reduce(function (pre, current) { return pre + current.v; }, 0),
67
70
  };
68
71
  res.push(addDetail(obj, collectWeekData, detail));
69
72
  }
@@ -11,6 +11,7 @@ describe("test getWeekLine methods", function () {
11
11
  l: 137,
12
12
  o: 155,
13
13
  t: 20211210,
14
+ v: 78444,
14
15
  });
15
16
  });
16
17
  });
@@ -1,36 +1,21 @@
1
- type DataType = {
2
- v: number;
3
- [key: string]: unknown;
1
+ import { StockListType, StockType } from "./types";
2
+ export type VmaResType = {
3
+ dataset: StockListType;
4
+ vma: number;
5
+ type: number;
4
6
  };
5
- type ListType = DataType[];
6
7
  interface VmaType {
7
- init: (data: DataType, type: number) => {
8
- dataset: ListType;
9
- vma: number;
10
- type: number;
11
- };
12
- next: (data: DataType, preList: {
13
- dataset: ListType;
14
- vma: number;
15
- type: number;
16
- }, type: number) => {
17
- dataset: ListType;
18
- vma: number;
19
- type: number;
20
- };
8
+ init: (data: StockType, type: number) => VmaResType;
9
+ next: (data: StockType, preList: VmaResType, type: number) => VmaResType;
21
10
  }
22
11
  export default class Vma implements VmaType {
23
- init(data: DataType, type: number): {
24
- dataset: DataType[];
12
+ init(data: StockType, type: number): {
13
+ dataset: StockType[];
25
14
  vma: number;
26
15
  type: number;
27
16
  };
28
- next(data: DataType, preList: {
29
- dataset: ListType;
30
- vma: number;
31
- type: number;
32
- }, type: number): {
33
- dataset: ListType;
17
+ next(data: StockType, preList: VmaResType, type: number): {
18
+ dataset: StockListType;
34
19
  vma: number;
35
20
  type: number;
36
21
  };
@@ -1,9 +1,4 @@
1
- type DataType = {
2
- h: number;
3
- l: number;
4
- c: number;
5
- };
6
- type ListType = DataType[];
1
+ import { StockListType, StockType } from "./types";
7
2
  type ResWilliams9Type = {
8
3
  c: number;
9
4
  williams9: number | null;
@@ -17,42 +12,35 @@ type ResAllWilliamsType = {
17
12
  williams18: number | null;
18
13
  williams9: number | null;
19
14
  }[];
15
+ export type WilliamsResType = {
16
+ dataset: StockListType;
17
+ williams: number;
18
+ type: number;
19
+ };
20
20
  interface WilliamsType {
21
- init: (data: DataType, type: number) => {
22
- dataset: ListType;
23
- williams: number;
24
- type: number;
25
- };
26
- next: (data: DataType, preList: {
27
- dataset: ListType;
21
+ init: (data: StockType, type: number) => WilliamsResType;
22
+ next: (data: StockType, preList: {
23
+ dataset: StockListType;
28
24
  williams: number;
29
25
  type: number;
30
- }, type: number) => {
31
- dataset: ListType;
32
- williams: number;
33
- type: number;
34
- };
35
- getWilliams9: (list: ListType) => ResWilliams9Type;
36
- getWilliams18: (list: ListType) => ResWilliams18Type;
37
- getAllWillams(list: ListType): ResAllWilliamsType;
26
+ }, type: number) => WilliamsResType;
27
+ getWilliams9: (list: StockListType) => ResWilliams9Type;
28
+ getWilliams18: (list: StockListType) => ResWilliams18Type;
29
+ getAllWillams(list: StockListType): ResAllWilliamsType;
38
30
  }
39
31
  export default class Williams implements WilliamsType {
40
- init(data: DataType, type: number): {
41
- dataset: DataType[];
32
+ init(data: StockType, type: number): {
33
+ dataset: StockType[];
42
34
  williams: number;
43
35
  type: number;
44
36
  };
45
- next(data: DataType, preList: {
46
- dataset: ListType;
47
- williams: number;
48
- type: number;
49
- }, type: number): {
50
- dataset: ListType;
37
+ next(data: StockType, preList: WilliamsResType, type: number): {
38
+ dataset: StockListType;
51
39
  williams: number;
52
40
  type: number;
53
41
  };
54
- getAllWillams(list: ListType): ResAllWilliamsType;
55
- getWilliams9(list: ListType): ResWilliams9Type;
56
- getWilliams18(list: ListType): ResWilliams18Type;
42
+ getAllWillams(list: StockListType): ResAllWilliamsType;
43
+ getWilliams9(list: StockListType): ResWilliams9Type;
44
+ getWilliams18(list: StockListType): ResWilliams18Type;
57
45
  }
58
46
  export {};
@@ -1,59 +1,34 @@
1
- type ItemType = {
2
- c: number;
3
- [key: string]: unknown;
4
- };
5
- type ListType = ItemType[];
1
+ import { StockListType, StockType } from "./types";
6
2
  export type BollResType = {
7
- [key: string]: unknown;
8
- bollMa: number | null;
9
- bollUb: number | null;
10
- bollLb: number | null;
11
- }[];
12
- interface BollType {
13
- init: (data: ItemType) => {
14
- dataset: ListType;
15
- bollMa: number | null;
16
- bollUb: number | null;
17
- bollLb: number | null;
18
- };
19
- next: (data: ItemType, preList: {
20
- dataset: ListType;
21
- bollMa: number | null;
22
- bollUb: number | null;
23
- bollLb: number | null;
24
- }, type: number) => {
25
- dataset: ListType;
26
- bollMa: number | null;
27
- bollUb: number | null;
28
- bollLb: number | null;
29
- };
30
- getBoll: (list: ListType, type: number) => BollResType;
3
+ dataset: StockListType;
4
+ bollMa: number;
5
+ bollUb: number;
6
+ bollLb: number;
7
+ };
8
+ interface BollClassType {
9
+ init: (data: StockType) => BollResType;
10
+ next: (data: StockType, preList: BollResType, type: number) => BollResType;
11
+ getBoll: (list: StockListType, type: number) => {
12
+ [key: string]: unknown;
13
+ bollMa: number;
14
+ bollUb: number;
15
+ bollLb: number;
16
+ }[];
31
17
  }
32
- export default class Boll implements BollType {
33
- init(data: ItemType): {
34
- dataset: ListType;
35
- bollMa: number | null;
36
- bollUb: number | null;
37
- bollLb: number | null;
38
- };
39
- next(data: ItemType, preList: {
40
- dataset: ListType;
41
- bollMa: number | null;
42
- bollUb: number | null;
43
- bollLb: number | null;
44
- }, type: number): {
45
- dataset: ListType;
46
- type: number;
47
- bollMa: null;
48
- bollUb: null;
49
- bollLb: null;
50
- } | {
51
- dataset: ListType;
18
+ export default class Boll implements BollClassType {
19
+ init(data: StockType): BollResType;
20
+ next(data: StockType, preList: BollResType, type: number): {
21
+ dataset: StockListType;
52
22
  type: number;
53
23
  bollMa: number;
54
24
  bollUb: number;
55
25
  bollLb: number;
56
26
  };
57
- getBoll(list: ListType, type: number): BollResType;
27
+ getBoll(list: StockListType, type: number): {
28
+ [key: string]: unknown;
29
+ bollMa: number;
30
+ bollUb: number;
31
+ bollLb: number;
32
+ }[];
58
33
  }
59
34
  export {};