@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,11 +19,11 @@ var MACD = /** @class */ (function () {
19
19
  value: function (data) {
20
20
  return {
21
21
  dataset: [data],
22
- ema12: null,
23
- ema26: null,
22
+ ema12: 0,
23
+ ema26: 0,
24
24
  dif: [],
25
- macd: null,
26
- osc: null,
25
+ macd: 0,
26
+ osc: 0,
27
27
  };
28
28
  }
29
29
  });
@@ -37,7 +37,7 @@ var MACD = /** @class */ (function () {
37
37
  if (preList.dataset.length > 34)
38
38
  preList.dataset.shift();
39
39
  // EMA12
40
- var ema12 = null;
40
+ var ema12 = 0;
41
41
  if (preList.dataset.length === 12) {
42
42
  ema12 = this.getStartEMA(preList.dataset);
43
43
  ema12 = (ema12 * 11) / 13 + (this.getDI(data) * 2) / 13;
@@ -48,7 +48,7 @@ var MACD = /** @class */ (function () {
48
48
  ema12 = Math.round(ema12 * 100) / 100;
49
49
  }
50
50
  // EMA26
51
- var ema26 = null;
51
+ var ema26 = 0;
52
52
  if (preList.dataset.length === 26) {
53
53
  ema26 = this.getStartEMA(preList.dataset);
54
54
  ema26 = (ema26 * 25) / 27 + (this.getDI(data) * 2) / 27;
@@ -59,36 +59,33 @@ var MACD = /** @class */ (function () {
59
59
  ema26 = Math.round(ema26 * 100) / 100;
60
60
  }
61
61
  // DIF
62
- var dif = null;
62
+ var dif = 0;
63
63
  if (ema12 && ema26) {
64
64
  dif = ema12 - ema26;
65
65
  dif = Math.round(dif * 100) / 100;
66
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
67
  }
70
68
  // MACD & OSC
71
- var macd = null;
72
- var osc = null;
69
+ var macd = 0;
70
+ var osc = 0;
73
71
  if (preList.dif.length === 9) {
74
- if (preList.macd === null) {
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;
72
+ macd = preList.dif.reduce(function (accumulator, currentValue) { return accumulator + currentValue; });
73
+ for (var i = 0; i < 9; i++) {
74
+ var item = preList.dif[i];
75
+ macd = macd + ((item - macd) * 2) / 10;
86
76
  macd = Math.round(macd * 100) / 100;
87
- var item = preList.dif[preList.dif.length - 1];
88
77
  osc = item - macd;
89
78
  osc = Math.round(osc * 100) / 100;
90
79
  }
91
80
  }
81
+ else if (preList.dif.length > 9) {
82
+ macd = preList.macd + ((dif - preList.macd) * 2) / 10;
83
+ macd = Math.round(macd * 100) / 100;
84
+ var item = preList.dif[preList.dif.length - 1];
85
+ osc = item - macd;
86
+ osc = Math.round(osc * 100) / 100;
87
+ (_b = preList.dif) === null || _b === void 0 ? void 0 : _b.shift();
88
+ }
92
89
  return {
93
90
  dataset: preList.dataset,
94
91
  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 {};
@@ -32,6 +32,7 @@ var Obv = /** @class */ (function () {
32
32
  obvList: [data.v],
33
33
  preClose: data.c,
34
34
  obvMa: 0,
35
+ type: type,
35
36
  };
36
37
  }
37
38
  });
@@ -62,7 +63,8 @@ var Obv = /** @class */ (function () {
62
63
  obv: obv,
63
64
  preClose: currentClose,
64
65
  obvList: obvList,
65
- obvMa: vma
66
+ obvMa: vma,
67
+ type: type,
66
68
  };
67
69
  }
68
70
  });
@@ -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 @@
1
+ export {};
@@ -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[];
@@ -34,6 +34,7 @@ export default function getWeekLine(list, detail) {
34
34
  t: collectWeekData[collectWeekData.length - 1]["t"],
35
35
  h: Math.max.apply(Math, collectWeekData.map(function (item) { return item.h; })),
36
36
  l: Math.min.apply(Math, collectWeekData.map(function (item) { return item.l; })),
37
+ v: collectWeekData.reduce(function (pre, current) { return pre + current.v; }, 0),
37
38
  };
38
39
  res.push(addDetail(obj, collectWeekData, detail));
39
40
  collectWeekData = [];
@@ -47,6 +48,7 @@ export default function getWeekLine(list, detail) {
47
48
  t: collectWeekData[collectWeekData.length - 1]["t"],
48
49
  h: Math.max.apply(Math, collectWeekData.map(function (item) { return item.h; })),
49
50
  l: Math.min.apply(Math, collectWeekData.map(function (item) { return item.l; })),
51
+ v: collectWeekData.reduce(function (pre, current) { return pre + current.v; }, 0),
50
52
  };
51
53
  res.push(addDetail(obj, collectWeekData, detail));
52
54
  }
@@ -62,6 +64,7 @@ export default function getWeekLine(list, detail) {
62
64
  t: collectWeekData[collectWeekData.length - 1]["t"],
63
65
  h: Math.max.apply(Math, collectWeekData.map(function (item) { return item.h; })),
64
66
  l: Math.min.apply(Math, collectWeekData.map(function (item) { return item.l; })),
67
+ v: collectWeekData.reduce(function (pre, current) { return pre + current.v; }, 0),
65
68
  };
66
69
  res.push(addDetail(obj, collectWeekData, detail));
67
70
  }
@@ -9,6 +9,7 @@ describe("test getWeekLine methods", function () {
9
9
  l: 137,
10
10
  o: 155,
11
11
  t: 20211210,
12
+ v: 78444,
12
13
  });
13
14
  });
14
15
  });
@@ -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 {};