@ch20026103/anysis 0.0.15-alpha → 0.0.16-beta

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 (61) hide show
  1. package/demo/main.js +12 -10
  2. package/dist/cjs/index.d.ts +1 -1
  3. package/dist/cjs/index.js +3 -3
  4. package/dist/cjs/stockSkills/boll.d.ts +25 -50
  5. package/dist/cjs/stockSkills/boll.js +9 -11
  6. package/dist/cjs/stockSkills/ema.d.ts +11 -33
  7. package/dist/cjs/stockSkills/gold.d.ts +13 -32
  8. package/dist/cjs/stockSkills/kd.d.ts +29 -72
  9. package/dist/cjs/stockSkills/kd.js +14 -11
  10. package/dist/cjs/stockSkills/kd.test.js +1 -1
  11. package/dist/cjs/stockSkills/ma.d.ts +39 -60
  12. package/dist/cjs/stockSkills/ma.js +16 -7
  13. package/dist/cjs/stockSkills/macd.d.ts +32 -63
  14. package/dist/cjs/stockSkills/macd.js +21 -24
  15. package/dist/cjs/stockSkills/obv.d.ts +18 -49
  16. package/dist/cjs/stockSkills/obv.js +3 -1
  17. package/dist/cjs/stockSkills/rsi.d.ts +10 -26
  18. package/dist/cjs/stockSkills/types.d.ts +10 -0
  19. package/dist/cjs/stockSkills/types.js +2 -0
  20. package/dist/cjs/stockSkills/utils/dateFormat.d.ts +6 -3
  21. package/dist/cjs/stockSkills/utils/dateFormat.js +2 -2
  22. package/dist/cjs/stockSkills/utils/getWeekLine.d.ts +6 -15
  23. package/dist/cjs/stockSkills/utils/getWeekLine.js +3 -0
  24. package/dist/cjs/stockSkills/utils/getWeekLine.test.js +1 -0
  25. package/dist/cjs/stockSkills/vma.d.ts +13 -26
  26. package/dist/cjs/stockSkills/week.d.ts +16 -0
  27. package/dist/cjs/stockSkills/week.js +56 -0
  28. package/dist/cjs/stockSkills/week.test.d.ts +1 -0
  29. package/dist/cjs/stockSkills/week.test.js +60 -0
  30. package/dist/cjs/stockSkills/williams.d.ts +20 -32
  31. package/dist/esm/index.d.ts +1 -1
  32. package/dist/esm/index.js +1 -1
  33. package/dist/esm/stockSkills/boll.d.ts +25 -50
  34. package/dist/esm/stockSkills/boll.js +9 -11
  35. package/dist/esm/stockSkills/ema.d.ts +11 -33
  36. package/dist/esm/stockSkills/gold.d.ts +13 -32
  37. package/dist/esm/stockSkills/kd.d.ts +29 -72
  38. package/dist/esm/stockSkills/kd.js +14 -11
  39. package/dist/esm/stockSkills/kd.test.js +1 -1
  40. package/dist/esm/stockSkills/ma.d.ts +39 -60
  41. package/dist/esm/stockSkills/ma.js +16 -7
  42. package/dist/esm/stockSkills/macd.d.ts +32 -63
  43. package/dist/esm/stockSkills/macd.js +21 -24
  44. package/dist/esm/stockSkills/obv.d.ts +18 -49
  45. package/dist/esm/stockSkills/obv.js +3 -1
  46. package/dist/esm/stockSkills/rsi.d.ts +10 -26
  47. package/dist/esm/stockSkills/types.d.ts +10 -0
  48. package/dist/esm/stockSkills/types.js +1 -0
  49. package/dist/esm/stockSkills/utils/dateFormat.d.ts +6 -3
  50. package/dist/esm/stockSkills/utils/dateFormat.js +2 -2
  51. package/dist/esm/stockSkills/utils/getWeekLine.d.ts +6 -15
  52. package/dist/esm/stockSkills/utils/getWeekLine.js +3 -0
  53. package/dist/esm/stockSkills/utils/getWeekLine.test.js +1 -0
  54. package/dist/esm/stockSkills/vma.d.ts +13 -26
  55. package/dist/esm/stockSkills/week.d.ts +16 -0
  56. package/dist/esm/stockSkills/week.js +54 -0
  57. package/dist/esm/stockSkills/week.test.d.ts +1 -0
  58. package/dist/esm/stockSkills/week.test.js +58 -0
  59. package/dist/esm/stockSkills/williams.d.ts +20 -32
  60. package/dist/umd/index.js +125 -59
  61. package/package.json +1 -1
package/demo/main.js CHANGED
@@ -1,12 +1,10 @@
1
1
  /* eslint @typescript-eslint/no-var-requires: "off" */
2
2
  const axios = require("axios");
3
- const {
4
- Rsi,
5
- } = require("../dist/cjs/index.js");
6
-
3
+ const { Week, Kd } = require("../dist/cjs/index.js");
7
4
 
8
5
  // 使用示例
9
- const rsi = new Rsi();
6
+ const week = new Week();
7
+ const kd = new Kd();
10
8
  function DemoDay(stockId) {
11
9
  axios
12
10
  .get(
@@ -16,13 +14,17 @@ function DemoDay(stockId) {
16
14
  res = res.data.replace(/^\(|\);$/g, "");
17
15
  let parse = JSON.parse(res);
18
16
  let data = parse.ta;
19
- const rsis = rsi.calculateRSI(data, 5);
20
- let rsi5Data = rsi.init(data[0],5);
17
+ let weekData = week.init(data[0]);
18
+
21
19
  for (let i = 1; i < data.length; i++) {
22
- rsi5Data = rsi.next(data[i], rsi5Data, 5);
20
+ weekData = week.next(data[i], weekData);
21
+ }
22
+
23
+ let kdData = kd.init(weekData.week[0], 9);
24
+ for (let i = 0; i < weekData.week.length; i++) {
25
+ kdData = kd.next(weekData.week[i], kdData, 9);
23
26
  }
24
- console.log("rsi", rsis[rsis.length - 2]);
25
- console.log("rsi", rsi5Data);
27
+ console.log(kdData);
26
28
  })
27
29
  .catch((error) => {
28
30
  console.error(error);
@@ -15,7 +15,7 @@ export { default as Macd } from "./stockSkills/macd.js";
15
15
  export { default as Obv } from "./stockSkills/obv.js";
16
16
  export { default as Rsi } from "./stockSkills/rsi.js";
17
17
  export { default as dateFormat } from "./stockSkills/utils/dateFormat.js";
18
- export { default as getWeekLine } from "./stockSkills/utils/getWeekLine.js";
18
+ export { default as Week } from "./stockSkills/week.js";
19
19
  export { default as Vma } from "./stockSkills/vma.js";
20
20
  export { default as Williams } from "./stockSkills/williams.js";
21
21
  export { add } from "./test/add.js";
package/dist/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseLsusbOutput = exports.isJSON = exports.calculateDivisionFactor = exports.minus = exports.add = exports.Williams = exports.Vma = exports.getWeekLine = exports.dateFormat = exports.Rsi = exports.Obv = exports.Macd = exports.Ma = exports.Kd = exports.Gold = exports.Ema = exports.Boll = exports.calcSeasonalIndicesNoTrend = exports.weightMovingAverages = exports.movingAverages = exports.exponentialSmoothing = exports.findTroughByGradient = exports.findPeaksByGradient = exports.SwingExtremesType = exports.SwingExtremes = exports.slope = exports.simpleRegressionModel = exports.Angle = void 0;
3
+ exports.parseLsusbOutput = exports.isJSON = exports.calculateDivisionFactor = exports.minus = exports.add = exports.Williams = exports.Vma = exports.Week = exports.dateFormat = exports.Rsi = exports.Obv = exports.Macd = exports.Ma = exports.Kd = exports.Gold = exports.Ema = exports.Boll = exports.calcSeasonalIndicesNoTrend = exports.weightMovingAverages = exports.movingAverages = exports.exponentialSmoothing = exports.findTroughByGradient = exports.findPeaksByGradient = exports.SwingExtremesType = exports.SwingExtremes = exports.slope = exports.simpleRegressionModel = exports.Angle = void 0;
4
4
  /*
5
5
  請注意,在 src/index.ts 中,我的導入包含文件擴展名(.js)。
6
6
  如果需要支持 Node.js 和構建工具(ex: webpack),則不需要這樣做。 **因為commonJs默認js副檔名**
@@ -41,8 +41,8 @@ var rsi_js_1 = require("./stockSkills/rsi.js");
41
41
  Object.defineProperty(exports, "Rsi", { enumerable: true, get: function () { return rsi_js_1.default; } });
42
42
  var dateFormat_js_1 = require("./stockSkills/utils/dateFormat.js");
43
43
  Object.defineProperty(exports, "dateFormat", { enumerable: true, get: function () { return dateFormat_js_1.default; } });
44
- var getWeekLine_js_1 = require("./stockSkills/utils/getWeekLine.js");
45
- Object.defineProperty(exports, "getWeekLine", { enumerable: true, get: function () { return getWeekLine_js_1.default; } });
44
+ var week_js_1 = require("./stockSkills/week.js");
45
+ Object.defineProperty(exports, "Week", { enumerable: true, get: function () { return week_js_1.default; } });
46
46
  var vma_js_1 = require("./stockSkills/vma.js");
47
47
  Object.defineProperty(exports, "Vma", { enumerable: true, get: function () { return vma_js_1.default; } });
48
48
  var williams_js_1 = require("./stockSkills/williams.js");
@@ -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 {};
@@ -21,9 +21,9 @@ var Boll = /** @class */ (function () {
21
21
  value: function (data) {
22
22
  return {
23
23
  dataset: [data],
24
- bollMa: null,
25
- bollUb: null,
26
- bollLb: null,
24
+ bollMa: 0,
25
+ bollUb: 0,
26
+ bollLb: 0,
27
27
  };
28
28
  }
29
29
  });
@@ -37,9 +37,9 @@ var Boll = /** @class */ (function () {
37
37
  return {
38
38
  dataset: preList.dataset,
39
39
  type: type,
40
- bollMa: null,
41
- bollUb: null,
42
- bollLb: null,
40
+ bollMa: 0,
41
+ bollUb: 0,
42
+ bollLb: 0,
43
43
  };
44
44
  }
45
45
  else {
@@ -49,7 +49,7 @@ var Boll = /** @class */ (function () {
49
49
  var sum = preList.dataset.reduce(function (pre, current) { return pre + current.c; }, 0);
50
50
  var bollMa_1 = Math.round((sum / type) * 100) / 100;
51
51
  var difference = preList.dataset.reduce(function (pre, current) {
52
- return bollMa_1 !== null ? pre + Math.pow(current.c - bollMa_1, 2) : pre;
52
+ return bollMa_1 !== 0 ? pre + Math.pow(current.c - bollMa_1, 2) : pre;
53
53
  }, 0);
54
54
  var std = Math.round(Math.sqrt(difference / type) * 100) / 100;
55
55
  return {
@@ -70,7 +70,7 @@ var Boll = /** @class */ (function () {
70
70
  var res = [];
71
71
  var _loop_1 = function (i) {
72
72
  if (i < type)
73
- res[i] = __assign(__assign({}, list[i]), { bollMa: null, bollUb: null, bollLb: null });
73
+ res[i] = __assign(__assign({}, list[i]), { bollMa: 0, bollUb: 0, bollLb: 0 });
74
74
  else {
75
75
  // bollMa
76
76
  var sumMa = list
@@ -81,9 +81,7 @@ var Boll = /** @class */ (function () {
81
81
  var difference = res
82
82
  .slice(i - (type - 1), i + 1)
83
83
  .reduce(function (pre, current) {
84
- return bollMa_2 !== null
85
- ? pre + Math.pow(current.c - bollMa_2, 2)
86
- : pre;
84
+ return bollMa_2 !== 0 ? pre + Math.pow(current.c - bollMa_2, 2) : pre;
87
85
  }, 0);
88
86
  var std = Math.round(Math.sqrt(difference / type) * 100) / 100;
89
87
  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,6 @@
1
+ import { StockType } from "./types";
2
+ type NewStockType = Required<Pick<StockType, 'v'>> & StockType;
3
+ type NewStockListType = NewStockType[];
1
4
  export type GetGoldResType = {
2
5
  lowestPoint: number;
3
6
  highestPoint: number;
@@ -7,42 +10,20 @@ export type GetGoldResType = {
7
10
  weak: number;
8
11
  superWeak: number;
9
12
  };
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
- };
13
+ export type FindHightestResType = {
14
+ [key: string]: NewStockType;
27
15
  };
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
- };
16
+ export type FindLowestResType = {
17
+ [key: string]: NewStockType;
37
18
  };
38
- interface GoldType {
39
- findHighPoint: (list: ListType) => FindHightestResType;
40
- findLowPoint: (list: ListType) => FindLowestResType;
19
+ interface GoldClassType {
20
+ findHighPoint: (list: NewStockListType) => FindHightestResType;
21
+ findLowPoint: (list: NewStockListType) => FindLowestResType;
41
22
  getGold: (highestPoint: number, lowestPoint: number) => GetGoldResType;
42
23
  }
43
- export default class Gold implements GoldType {
44
- findHighPoint(list: ListType): FindHightestResType;
45
- findLowPoint(list: ListType): FindLowestResType;
24
+ export default class Gold implements GoldClassType {
25
+ findHighPoint(list: NewStockListType): FindHightestResType;
26
+ findLowPoint(list: NewStockListType): FindLowestResType;
46
27
  getGold(highestPoint: number, lowestPoint: number): GetGoldResType;
47
28
  }
48
29
  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 {};
@@ -18,13 +18,14 @@ var Kd = /** @class */ (function () {
18
18
  enumerable: false,
19
19
  configurable: true,
20
20
  writable: true,
21
- value: function (data) {
21
+ value: function (data, type) {
22
22
  return {
23
23
  dataset: [data],
24
- rsv: null,
25
- k: null,
26
- d: null,
27
- "k-d": null,
24
+ rsv: 0,
25
+ k: 0,
26
+ d: 0,
27
+ "k-d": 0,
28
+ type: type,
28
29
  };
29
30
  }
30
31
  });
@@ -37,10 +38,11 @@ var Kd = /** @class */ (function () {
37
38
  if (preList.dataset.length < type) {
38
39
  return {
39
40
  dataset: preList.dataset,
40
- rsv: null,
41
- k: null,
42
- d: null,
43
- "k-d": null,
41
+ rsv: 0,
42
+ k: 0,
43
+ d: 0,
44
+ "k-d": 0,
45
+ type: type,
44
46
  };
45
47
  }
46
48
  else {
@@ -64,6 +66,7 @@ var Kd = /** @class */ (function () {
64
66
  k: k,
65
67
  d: d,
66
68
  "k-d": k_d,
69
+ type: type,
67
70
  };
68
71
  }
69
72
  }
@@ -76,7 +79,7 @@ var Kd = /** @class */ (function () {
76
79
  var res = [];
77
80
  for (var i = 0; i < list.length; i++) {
78
81
  if (i < 8)
79
- res[i] = __assign(__assign({}, list[i]), { rsv: null });
82
+ res[i] = __assign(__assign({}, list[i]), { rsv: 0 });
80
83
  else {
81
84
  var low = Math.min.apply(Math, list.slice(i - 8, i + 1).map(function (item) { return item.l; }));
82
85
  var hight = Math.max.apply(Math, list.slice(i - 8, i + 1).map(function (item) { return item.h; }));
@@ -99,7 +102,7 @@ var Kd = /** @class */ (function () {
99
102
  var yesterdayD = 50;
100
103
  for (var i = 0; i < list.length; i++) {
101
104
  if (i < 8)
102
- res[i] = __assign(__assign({}, list[i]), { rsv: null, k: null, d: null, "k-d": null });
105
+ res[i] = __assign(__assign({}, list[i]), { rsv: 0, k: 0, d: 0, "k-d": 0 });
103
106
  else {
104
107
  var low = Math.min.apply(Math, list.slice(i - 8, i + 1).map(function (item) { return item.l; }));
105
108
  var hight = Math.max.apply(Math, list.slice(i - 8, i + 1).map(function (item) { return item.h; }));
@@ -7,7 +7,7 @@ describe("test kd methods", function () {
7
7
  var index = test_data_test_1.data_9904.length - 1;
8
8
  var kd = new kd_1.default();
9
9
  var realData = kd.getKD(test_data_test_1.data_9904)[index];
10
- var init = kd.init(test_data_test_1.data_9904[0]);
10
+ var init = kd.init(test_data_test_1.data_9904[0], 9);
11
11
  var res = init;
12
12
  for (var i = 1; i <= index; i++) {
13
13
  var item = test_data_test_1.data_9904[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 {};