@ch20026103/anysis 0.0.2-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 (101) hide show
  1. package/.eslintrc.json +15 -0
  2. package/.gitattributes +1 -0
  3. package/.vscode/settings.json +5 -0
  4. package/README.md +11 -0
  5. package/commitlint.config.js +3 -0
  6. package/dist/cjs/analyze/Month/index.d.ts +15 -0
  7. package/dist/cjs/analyze/Month/index.js +24 -0
  8. package/dist/cjs/analyze/Regression/simpleRegressoinModel.d.ts +12 -0
  9. package/dist/cjs/analyze/Regression/simpleRegressoinModel.js +79 -0
  10. package/dist/cjs/analyze/Regression/simpleRegressoinModel.test.d.ts +1 -0
  11. package/dist/cjs/analyze/Regression/simpleRegressoinModel.test.js +16 -0
  12. package/dist/cjs/analyze/TimeSeries/R/index.d.ts +7 -0
  13. package/dist/cjs/analyze/TimeSeries/R/index.js +39 -0
  14. package/dist/cjs/analyze/TimeSeries/RS/index.d.ts +2 -0
  15. package/dist/cjs/analyze/TimeSeries/RS/index.js +31 -0
  16. package/dist/cjs/index.d.ts +12 -0
  17. package/dist/cjs/index.js +34 -0
  18. package/dist/cjs/stockSkills/gold.d.ts +47 -0
  19. package/dist/cjs/stockSkills/gold.js +216 -0
  20. package/dist/cjs/stockSkills/gold.test.d.ts +1 -0
  21. package/dist/cjs/stockSkills/gold.test.js +45 -0
  22. package/dist/cjs/stockSkills/ma.d.ts +58 -0
  23. package/dist/cjs/stockSkills/ma.js +169 -0
  24. package/dist/cjs/stockSkills/ma.test.d.ts +1 -0
  25. package/dist/cjs/stockSkills/ma.test.js +98 -0
  26. package/dist/cjs/stockSkills/macd.d.ts +59 -0
  27. package/dist/cjs/stockSkills/macd.js +144 -0
  28. package/dist/cjs/stockSkills/macd.test.d.ts +1 -0
  29. package/dist/cjs/stockSkills/macd.test.js +74 -0
  30. package/dist/cjs/stockSkills/rsi.d.ts +32 -0
  31. package/dist/cjs/stockSkills/rsi.js +145 -0
  32. package/dist/cjs/stockSkills/rsi.test.d.ts +1 -0
  33. package/dist/cjs/stockSkills/rsi.test.js +30 -0
  34. package/dist/cjs/stockSkills/test_data.test.d.ts +9 -0
  35. package/dist/cjs/stockSkills/test_data.test.js +166 -0
  36. package/dist/cjs/stockSkills/utils/dateFormat.d.ts +12 -0
  37. package/dist/cjs/stockSkills/utils/dateFormat.js +58 -0
  38. package/dist/cjs/stockSkills/utils/dateFormat.test.d.ts +1 -0
  39. package/dist/cjs/stockSkills/utils/dateFormat.test.js +29 -0
  40. package/dist/cjs/stockSkills/utils/getWeekLine.d.ts +17 -0
  41. package/dist/cjs/stockSkills/utils/getWeekLine.js +75 -0
  42. package/dist/cjs/stockSkills/utils/getWeekLine.test.d.ts +1 -0
  43. package/dist/cjs/stockSkills/utils/getWeekLine.test.js +16 -0
  44. package/dist/cjs/stockSkills/williams.d.ts +29 -0
  45. package/dist/cjs/stockSkills/williams.js +77 -0
  46. package/dist/cjs/stockSkills/williams.test.d.ts +1 -0
  47. package/dist/cjs/stockSkills/williams.test.js +43 -0
  48. package/dist/cjs/test/add.d.ts +1 -0
  49. package/dist/cjs/test/add.js +7 -0
  50. package/dist/cjs/test/minus.d.ts +1 -0
  51. package/dist/cjs/test/minus.js +7 -0
  52. package/dist/esm/analyze/Month/index.d.ts +15 -0
  53. package/dist/esm/analyze/Month/index.js +20 -0
  54. package/dist/esm/analyze/Regression/simpleRegressoinModel.d.ts +12 -0
  55. package/dist/esm/analyze/Regression/simpleRegressoinModel.js +76 -0
  56. package/dist/esm/analyze/Regression/simpleRegressoinModel.test.d.ts +1 -0
  57. package/dist/esm/analyze/Regression/simpleRegressoinModel.test.js +14 -0
  58. package/dist/esm/analyze/TimeSeries/R/index.d.ts +7 -0
  59. package/dist/esm/analyze/TimeSeries/R/index.js +33 -0
  60. package/dist/esm/analyze/TimeSeries/RS/index.d.ts +2 -0
  61. package/dist/esm/analyze/TimeSeries/RS/index.js +27 -0
  62. package/dist/esm/index.d.ts +12 -0
  63. package/dist/esm/index.js +17 -0
  64. package/dist/esm/stockSkills/gold.d.ts +47 -0
  65. package/dist/esm/stockSkills/gold.js +214 -0
  66. package/dist/esm/stockSkills/gold.test.d.ts +1 -0
  67. package/dist/esm/stockSkills/gold.test.js +43 -0
  68. package/dist/esm/stockSkills/ma.d.ts +58 -0
  69. package/dist/esm/stockSkills/ma.js +167 -0
  70. package/dist/esm/stockSkills/ma.test.d.ts +1 -0
  71. package/dist/esm/stockSkills/ma.test.js +96 -0
  72. package/dist/esm/stockSkills/macd.d.ts +59 -0
  73. package/dist/esm/stockSkills/macd.js +142 -0
  74. package/dist/esm/stockSkills/macd.test.d.ts +1 -0
  75. package/dist/esm/stockSkills/macd.test.js +72 -0
  76. package/dist/esm/stockSkills/rsi.d.ts +32 -0
  77. package/dist/esm/stockSkills/rsi.js +143 -0
  78. package/dist/esm/stockSkills/rsi.test.d.ts +1 -0
  79. package/dist/esm/stockSkills/rsi.test.js +28 -0
  80. package/dist/esm/stockSkills/test_data.test.d.ts +9 -0
  81. package/dist/esm/stockSkills/test_data.test.js +164 -0
  82. package/dist/esm/stockSkills/utils/dateFormat.d.ts +12 -0
  83. package/dist/esm/stockSkills/utils/dateFormat.js +55 -0
  84. package/dist/esm/stockSkills/utils/dateFormat.test.d.ts +1 -0
  85. package/dist/esm/stockSkills/utils/dateFormat.test.js +27 -0
  86. package/dist/esm/stockSkills/utils/getWeekLine.d.ts +17 -0
  87. package/dist/esm/stockSkills/utils/getWeekLine.js +72 -0
  88. package/dist/esm/stockSkills/utils/getWeekLine.test.d.ts +1 -0
  89. package/dist/esm/stockSkills/utils/getWeekLine.test.js +14 -0
  90. package/dist/esm/stockSkills/williams.d.ts +29 -0
  91. package/dist/esm/stockSkills/williams.js +75 -0
  92. package/dist/esm/stockSkills/williams.test.d.ts +1 -0
  93. package/dist/esm/stockSkills/williams.test.js +41 -0
  94. package/dist/esm/test/add.d.ts +1 -0
  95. package/dist/esm/test/add.js +3 -0
  96. package/dist/esm/test/minus.d.ts +1 -0
  97. package/dist/esm/test/minus.js +3 -0
  98. package/dist/umd/index.js +1059 -0
  99. package/package.json +61 -0
  100. package/test.js +29 -0
  101. package/vite.config.js +10 -0
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ var Rsi = /** @class */ (function () {
15
+ function Rsi() {
16
+ }
17
+ Object.defineProperty(Rsi.prototype, "getAllRsi", {
18
+ enumerable: false,
19
+ configurable: true,
20
+ writable: true,
21
+ value: function (list) {
22
+ var res = [];
23
+ var rsi6 = this.getRsi6(list);
24
+ var rsi12 = this.getRsi12(list);
25
+ for (var i = 0; i < list.length; i++) {
26
+ res[i] = Object.assign(list[i], rsi6[i], rsi12[i]);
27
+ }
28
+ return res;
29
+ }
30
+ });
31
+ Object.defineProperty(Rsi.prototype, "getRsi6", {
32
+ enumerable: false,
33
+ configurable: true,
34
+ writable: true,
35
+ value: function (list) {
36
+ var res = [];
37
+ // 前5筆
38
+ for (var i = 0; i < 5; i++) {
39
+ res[i] = __assign(__assign({}, list[i]), { rsi6: undefined });
40
+ }
41
+ // 第6筆Rsi
42
+ var beforeUpAvg = this.getStartUpAvg(list, 6);
43
+ var beforeDownAvg = this.getStartDownAvg(list, 6);
44
+ var firstRsi6 = this.getRsi(beforeUpAvg, beforeDownAvg);
45
+ res[5] = __assign(__assign({}, list[5]), { rsi6: firstRsi6 });
46
+ // else
47
+ for (var i = 6; i < list.length; i++) {
48
+ var minusU = 0;
49
+ var minusD = 0;
50
+ var minusC = list[i]["c"] - list[i - 1]["c"];
51
+ if (minusC > 0) {
52
+ minusU = minusC;
53
+ }
54
+ else {
55
+ minusD = minusC;
56
+ }
57
+ beforeUpAvg = (beforeUpAvg * 5) / 6 + minusU / 6;
58
+ beforeDownAvg = (beforeDownAvg * 5) / 6 + Math.abs(minusD) / 6;
59
+ var rsi6 = this.getRsi(beforeUpAvg, beforeDownAvg);
60
+ res[i] = __assign(__assign({}, list[i]), { rsi6: Math.round(rsi6 * 100) / 100 });
61
+ }
62
+ return res;
63
+ }
64
+ });
65
+ Object.defineProperty(Rsi.prototype, "getRsi12", {
66
+ enumerable: false,
67
+ configurable: true,
68
+ writable: true,
69
+ value: function (list) {
70
+ var res = [];
71
+ // 前11筆
72
+ for (var i = 0; i < 11; i++) {
73
+ res[i] = __assign(__assign({}, list[i]), { rsi12: undefined });
74
+ }
75
+ // 第12筆Rsi
76
+ var beforeUpAvg = this.getStartUpAvg(list, 12);
77
+ var beforeDownAvg = this.getStartDownAvg(list, 12);
78
+ var firstRsi12 = this.getRsi(beforeUpAvg, beforeDownAvg);
79
+ res[11] = __assign(__assign({}, list[11]), { rsi12: firstRsi12 });
80
+ // else
81
+ for (var i = 12; i < list.length; i++) {
82
+ var minusU = 0;
83
+ var minusD = 0;
84
+ var minusC = list[i]["c"] - list[i - 1]["c"];
85
+ if (minusC > 0) {
86
+ minusU = minusC;
87
+ }
88
+ else {
89
+ minusD = minusC;
90
+ }
91
+ beforeUpAvg = (beforeUpAvg * 11) / 12 + minusU / 12;
92
+ beforeDownAvg = (beforeDownAvg * 11) / 12 + Math.abs(minusD) / 12;
93
+ var rsi12 = this.getRsi(beforeUpAvg, beforeDownAvg);
94
+ res[i] = __assign(__assign({}, list[i]), { rsi12: Math.round(rsi12 * 100) / 100 });
95
+ }
96
+ return res;
97
+ }
98
+ });
99
+ Object.defineProperty(Rsi.prototype, "getStartUpAvg", {
100
+ enumerable: false,
101
+ configurable: true,
102
+ writable: true,
103
+ value: function (list, count) {
104
+ var start = list.slice(0, 5);
105
+ var sum = 0;
106
+ for (var i = 1; i < start.length; i++) {
107
+ var minus = start[i]["c"] - start[i - 1]["c"];
108
+ if (minus > 0) {
109
+ sum += minus;
110
+ }
111
+ }
112
+ return sum / count;
113
+ }
114
+ });
115
+ Object.defineProperty(Rsi.prototype, "getStartDownAvg", {
116
+ enumerable: false,
117
+ configurable: true,
118
+ writable: true,
119
+ value: function (list, count) {
120
+ var start = list.slice(0, 5);
121
+ var sum = 0;
122
+ for (var i = 1; i < start.length; i++) {
123
+ var minus = start[i]["c"] - start[i - 1]["c"];
124
+ if (minus < 0) {
125
+ sum += minus;
126
+ }
127
+ }
128
+ return Math.abs(sum / count);
129
+ }
130
+ });
131
+ Object.defineProperty(Rsi.prototype, "getRsi", {
132
+ enumerable: false,
133
+ configurable: true,
134
+ writable: true,
135
+ value: function (UpAvg, DownAvg) {
136
+ var res = 0;
137
+ if (UpAvg + DownAvg !== 0) {
138
+ res = (UpAvg / (UpAvg + DownAvg)) * 100;
139
+ }
140
+ return res;
141
+ }
142
+ });
143
+ return Rsi;
144
+ }());
145
+ exports.default = Rsi;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var rsi_1 = require("./rsi");
4
+ var test_data_test_1 = require("./test_data.test");
5
+ describe("test rsi methods", function () {
6
+ it("test getRsi6()", function () {
7
+ var rsi = new rsi_1.default();
8
+ expect(rsi.getRsi6(test_data_test_1.default)[test_data_test_1.default.length - 1]).toEqual({
9
+ c: 142,
10
+ o: 138,
11
+ t: 20211214,
12
+ v: 16841,
13
+ h: 143,
14
+ l: 138,
15
+ rsi6: 45.12,
16
+ });
17
+ });
18
+ it("test getRsi12()", function () {
19
+ var rsi = new rsi_1.default();
20
+ expect(rsi.getRsi12(test_data_test_1.default)[test_data_test_1.default.length - 1]).toEqual({
21
+ c: 142,
22
+ o: 138,
23
+ t: 20211214,
24
+ v: 16841,
25
+ h: 143,
26
+ l: 138,
27
+ rsi12: 49.47,
28
+ });
29
+ });
30
+ });
@@ -0,0 +1,9 @@
1
+ declare const data: {
2
+ t: number;
3
+ o: number;
4
+ h: number;
5
+ l: number;
6
+ c: number;
7
+ v: number;
8
+ }[];
9
+ export default data;
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var data = [
4
+ { t: 20210428, o: 71.0, h: 72.0, l: 69.1, c: 69.6, v: 22859 },
5
+ { t: 20210429, o: 69.0, h: 71.5, l: 68.6, c: 69.0, v: 13359 },
6
+ { t: 20210503, o: 69.2, h: 69.4, l: 66.0, c: 67.0, v: 13227 },
7
+ { t: 20210504, o: 68.0, h: 68.5, l: 60.3, c: 64.4, v: 21469 },
8
+ { t: 20210505, o: 65.1, h: 67.7, l: 62.8, c: 62.8, v: 13563 },
9
+ { t: 20210506, o: 62.1, h: 64.8, l: 60.5, c: 61.2, v: 10918 },
10
+ { t: 20210507, o: 66.3, h: 67.3, l: 66.2, c: 67.3, v: 4979 },
11
+ { t: 20210510, o: 72.5, h: 74.0, l: 70.6, c: 74.0, v: 38266 },
12
+ { t: 20210511, o: 72.0, h: 72.0, l: 66.6, c: 67.0, v: 33321 },
13
+ { t: 20210512, o: 67.2, h: 72.0, l: 60.3, c: 63.5, v: 45970 },
14
+ { t: 20210513, o: 62.0, h: 65.9, l: 59.9, c: 62.9, v: 24450 },
15
+ { t: 20210514, o: 65.0, h: 67.7, l: 62.0, c: 63.5, v: 21603 },
16
+ { t: 20210517, o: 58.6, h: 63.0, l: 57.2, c: 57.2, v: 21274 },
17
+ { t: 20210518, o: 59.0, h: 62.9, l: 58.2, c: 62.9, v: 21156 },
18
+ { t: 20210519, o: 63.3, h: 67.5, l: 62.3, c: 66.0, v: 25551 },
19
+ { t: 20210520, o: 65.0, h: 66.6, l: 62.7, c: 62.9, v: 16006 },
20
+ { t: 20210521, o: 64.8, h: 65.6, l: 63.5, c: 64.0, v: 10197 },
21
+ { t: 20210524, o: 63.2, h: 68.2, l: 63.1, c: 66.8, v: 18400 },
22
+ { t: 20210525, o: 68.0, h: 71.3, l: 67.5, c: 68.2, v: 35417 },
23
+ { t: 20210526, o: 69.1, h: 70.4, l: 67.8, c: 68.5, v: 13411 },
24
+ { t: 20210527, o: 68.2, h: 72.0, l: 67.9, c: 72.0, v: 26521 },
25
+ { t: 20210528, o: 74.1, h: 79.2, l: 73.6, c: 79.2, v: 82389 },
26
+ { t: 20210531, o: 82.3, h: 86.6, l: 80.2, c: 81.9, v: 77328 },
27
+ { t: 20210601, o: 82.9, h: 86.3, l: 81.8, c: 86.1, v: 46547 },
28
+ { t: 20210602, o: 87.0, h: 88.0, l: 82.2, c: 83.0, v: 35438 },
29
+ { t: 20210603, o: 84.5, h: 88.3, l: 83.8, c: 85.7, v: 38572 },
30
+ { t: 20210604, o: 85.1, h: 90.0, l: 84.3, c: 86.0, v: 43999 },
31
+ { t: 20210607, o: 86.4, h: 87.8, l: 81.9, c: 83.1, v: 28352 },
32
+ { t: 20210608, o: 75.7, h: 79.0, l: 75.4, c: 77.0, v: 45168 },
33
+ { t: 20210609, o: 79.9, h: 81.0, l: 78.3, c: 78.6, v: 37397 },
34
+ { t: 20210610, o: 80.0, h: 85.2, l: 79.1, c: 83.1, v: 56885 },
35
+ { t: 20210611, o: 85.5, h: 86.6, l: 82.2, c: 83.0, v: 37103 },
36
+ { t: 20210615, o: 84.4, h: 84.9, l: 82.2, c: 82.3, v: 15298 },
37
+ { t: 20210616, o: 82.9, h: 83.5, l: 79.4, c: 79.9, v: 15479 },
38
+ { t: 20210617, o: 79.9, h: 81.6, l: 78.4, c: 81.5, v: 13701 },
39
+ { t: 20210618, o: 81.5, h: 81.9, l: 79.6, c: 79.6, v: 12112 },
40
+ { t: 20210621, o: 78.6, h: 81.5, l: 77.8, c: 79.9, v: 16939 },
41
+ { t: 20210622, o: 83.0, h: 83.8, l: 79.2, c: 79.2, v: 20544 },
42
+ { t: 20210623, o: 80.7, h: 82.8, l: 79.2, c: 82.4, v: 16816 },
43
+ { t: 20210624, o: 83.2, h: 84.7, l: 81.8, c: 83.5, v: 25302 },
44
+ { t: 20210625, o: 83.9, h: 86.4, l: 83.5, c: 84.3, v: 27456 },
45
+ { t: 20210628, o: 84.5, h: 86.2, l: 83.4, c: 84.9, v: 16710 },
46
+ { t: 20210629, o: 85.9, h: 86.2, l: 81.0, c: 81.1, v: 16373 },
47
+ { t: 20210630, o: 81.6, h: 82.6, l: 79.9, c: 80.3, v: 11783 },
48
+ { t: 20210701, o: 80.8, h: 81.6, l: 78.7, c: 78.9, v: 9775 },
49
+ { t: 20210702, o: 79.0, h: 86.0, l: 78.5, c: 86.0, v: 20332 },
50
+ { t: 20210705, o: 87.3, h: 90.0, l: 86.0, c: 86.2, v: 35241 },
51
+ { t: 20210706, o: 88.0, h: 89.5, l: 86.1, c: 86.9, v: 19595 },
52
+ { t: 20210707, o: 87.7, h: 95.5, l: 87.7, c: 95.5, v: 51150 },
53
+ { t: 20210708, o: 96.6, h: 98.3, l: 91.8, c: 96.2, v: 62112 },
54
+ { t: 20210709, o: 97.0, h: 105.5, l: 94.2, c: 105.5, v: 57048 },
55
+ { t: 20210712, o: 108.5, h: 115.5, l: 107.0, c: 112.0, v: 76701 },
56
+ { t: 20210713, o: 119.0, h: 123.0, l: 116.5, c: 123.0, v: 33001 },
57
+ { t: 20210714, o: 128.0, h: 131.0, l: 118.0, c: 124.5, v: 80315 },
58
+ { t: 20210715, o: 126.5, h: 130.0, l: 120.5, c: 130.0, v: 40958 },
59
+ { t: 20210716, o: 126.0, h: 142.0, l: 125.0, c: 137.0, v: 59319 },
60
+ { t: 20210719, o: 135.0, h: 142.5, l: 132.0, c: 134.0, v: 48528 },
61
+ { t: 20210720, o: 135.5, h: 140.5, l: 133.0, c: 134.5, v: 44290 },
62
+ { t: 20210721, o: 142.0, h: 147.5, l: 139.5, c: 147.5, v: 35364 },
63
+ { t: 20210722, o: 154.5, h: 159.5, l: 146.5, c: 153.0, v: 69966 },
64
+ { t: 20210723, o: 150.0, h: 158.5, l: 138.0, c: 141.0, v: 60528 },
65
+ { t: 20210726, o: 145.0, h: 155.0, l: 142.5, c: 155.0, v: 60125 },
66
+ { t: 20210727, o: 157.0, h: 162.0, l: 142.5, c: 147.0, v: 68069 },
67
+ { t: 20210728, o: 143.0, h: 144.0, l: 132.5, c: 132.5, v: 24227 },
68
+ { t: 20210729, o: 134.0, h: 139.5, l: 124.0, c: 136.5, v: 80854 },
69
+ { t: 20210730, o: 138.0, h: 145.0, l: 133.0, c: 135.0, v: 51088 },
70
+ { t: 20210802, o: 138.0, h: 141.0, l: 132.0, c: 135.0, v: 30838 },
71
+ { t: 20210803, o: 139.0, h: 145.0, l: 137.0, c: 142.0, v: 44245 },
72
+ { t: 20210804, o: 149.0, h: 155.0, l: 147.0, c: 149.5, v: 84279 },
73
+ { t: 20210805, o: 151.0, h: 152.0, l: 142.5, c: 144.5, v: 48729 },
74
+ { t: 20210806, o: 146.0, h: 151.0, l: 143.5, c: 150.0, v: 37316 },
75
+ { t: 20210809, o: 148.0, h: 150.5, l: 136.0, c: 138.5, v: 39577 },
76
+ { t: 20210810, o: 138.5, h: 138.5, l: 129.0, c: 135.0, v: 37046 },
77
+ { t: 20210811, o: 136.0, h: 140.0, l: 127.5, c: 128.0, v: 25115 },
78
+ { t: 20210812, o: 130.5, h: 139.0, l: 130.0, c: 136.5, v: 22666 },
79
+ { t: 20210813, o: 137.5, h: 141.0, l: 130.0, c: 130.5, v: 26823 },
80
+ { t: 20210816, o: 132.0, h: 139.0, l: 131.5, c: 135.5, v: 32348 },
81
+ { t: 20210817, o: 138.5, h: 145.0, l: 135.0, c: 137.5, v: 62296 },
82
+ { t: 20210818, o: 134.5, h: 151.0, l: 130.0, c: 150.0, v: 85599 },
83
+ { t: 20210819, o: 146.0, h: 154.5, l: 135.0, c: 135.0, v: 90784 },
84
+ { t: 20210820, o: 139.0, h: 148.0, l: 138.0, c: 144.0, v: 86661 },
85
+ { t: 20210823, o: 151.0, h: 153.0, l: 148.0, c: 149.0, v: 69675 },
86
+ { t: 20210824, o: 153.0, h: 163.5, l: 153.0, c: 163.5, v: 101927 },
87
+ { t: 20210825, o: 165.0, h: 172.0, l: 152.0, c: 158.5, v: 174708 },
88
+ { t: 20210826, o: 161.0, h: 164.5, l: 155.5, c: 158.0, v: 86475 },
89
+ { t: 20210827, o: 156.0, h: 157.0, l: 148.5, c: 150.0, v: 54359 },
90
+ { t: 20210830, o: 152.0, h: 154.5, l: 149.0, c: 150.0, v: 24844 },
91
+ { t: 20210831, o: 152.0, h: 155.0, l: 150.0, c: 155.0, v: 33930 },
92
+ { t: 20210901, o: 155.5, h: 170.0, l: 155.0, c: 167.0, v: 90084 },
93
+ { t: 20210902, o: 168.0, h: 175.0, l: 159.0, c: 159.0, v: 113730 },
94
+ { t: 20210903, o: 164.0, h: 169.5, l: 160.5, c: 165.5, v: 71038 },
95
+ { t: 20210906, o: 163.0, h: 163.5, l: 150.0, c: 153.5, v: 50593 },
96
+ { t: 20210907, o: 148.5, h: 149.0, l: 138.5, c: 138.5, v: 35906 },
97
+ { t: 20210908, o: 132.5, h: 136.5, l: 128.0, c: 130.5, v: 76783 },
98
+ { t: 20210909, o: 129.5, h: 136.5, l: 128.5, c: 133.0, v: 44924 },
99
+ { t: 20210910, o: 133.0, h: 135.0, l: 128.0, c: 133.0, v: 39440 },
100
+ { t: 20210913, o: 133.0, h: 137.0, l: 128.5, c: 129.0, v: 34660 },
101
+ { t: 20210914, o: 129.5, h: 131.0, l: 121.0, c: 121.5, v: 62337 },
102
+ { t: 20210915, o: 122.0, h: 125.5, l: 119.0, c: 120.0, v: 41639 },
103
+ { t: 20210916, o: 121.0, h: 123.0, l: 119.0, c: 121.5, v: 21404 },
104
+ { t: 20210917, o: 122.5, h: 126.5, l: 121.5, c: 126.5, v: 26806 },
105
+ { t: 20210922, o: 121.5, h: 125.0, l: 121.0, c: 125.0, v: 14116 },
106
+ { t: 20210923, o: 127.5, h: 128.5, l: 124.0, c: 124.5, v: 13457 },
107
+ { t: 20210924, o: 126.5, h: 136.5, l: 126.5, c: 135.0, v: 42720 },
108
+ { t: 20210927, o: 136.5, h: 138.5, l: 134.0, c: 138.0, v: 49636 },
109
+ { t: 20210928, o: 135.0, h: 139.0, l: 132.0, c: 139.0, v: 19530 },
110
+ { t: 20210929, o: 135.0, h: 137.5, l: 134.0, c: 134.0, v: 22381 },
111
+ { t: 20210930, o: 135.0, h: 136.5, l: 133.5, c: 134.0, v: 14335 },
112
+ { t: 20211001, o: 132.0, h: 132.5, l: 121.5, c: 124.0, v: 25326 },
113
+ { t: 20211004, o: 127.0, h: 129.0, l: 120.5, c: 121.5, v: 26265 },
114
+ { t: 20211005, o: 120.0, h: 128.5, l: 115.0, c: 126.5, v: 32377 },
115
+ { t: 20211006, o: 128.0, h: 130.5, l: 123.0, c: 130.5, v: 31926 },
116
+ { t: 20211007, o: 129.5, h: 134.5, l: 129.0, c: 133.5, v: 31458 },
117
+ { t: 20211008, o: 136.0, h: 140.0, l: 130.0, c: 131.0, v: 41881 },
118
+ { t: 20211012, o: 131.0, h: 132.5, l: 128.0, c: 128.5, v: 14479 },
119
+ { t: 20211013, o: 130.5, h: 131.5, l: 119.0, c: 120.5, v: 23191 },
120
+ { t: 20211014, o: 123.5, h: 124.5, l: 116.0, c: 118.0, v: 22005 },
121
+ { t: 20211015, o: 122.0, h: 125.0, l: 120.0, c: 122.0, v: 17761 },
122
+ { t: 20211018, o: 123.0, h: 125.0, l: 121.0, c: 123.0, v: 12451 },
123
+ { t: 20211019, o: 123.0, h: 130.0, l: 123.0, c: 128.5, v: 18578 },
124
+ { t: 20211020, o: 129.5, h: 136.0, l: 128.5, c: 135.0, v: 27384 },
125
+ { t: 20211021, o: 136.0, h: 144.0, l: 135.0, c: 136.0, v: 52852 },
126
+ { t: 20211022, o: 138.0, h: 144.0, l: 137.5, c: 144.0, v: 50692 },
127
+ { t: 20211025, o: 142.0, h: 142.5, l: 138.5, c: 139.5, v: 24365 },
128
+ { t: 20211026, o: 135.0, h: 135.0, l: 126.5, c: 127.0, v: 42984 },
129
+ { t: 20211027, o: 127.0, h: 133.0, l: 124.0, c: 132.0, v: 23256 },
130
+ { t: 20211028, o: 131.0, h: 133.0, l: 129.0, c: 129.0, v: 11693 },
131
+ { t: 20211029, o: 130.5, h: 131.5, l: 126.5, c: 128.0, v: 12234 },
132
+ { t: 20211101, o: 129.0, h: 133.0, l: 129.0, c: 131.0, v: 11589 },
133
+ { t: 20211102, o: 133.5, h: 136.0, l: 126.5, c: 128.0, v: 16035 },
134
+ { t: 20211103, o: 129.5, h: 131.5, l: 126.5, c: 130.0, v: 8142 },
135
+ { t: 20211104, o: 126.0, h: 129.5, l: 125.5, c: 126.0, v: 15468 },
136
+ { t: 20211105, o: 126.5, h: 128.0, l: 123.5, c: 124.0, v: 8233 },
137
+ { t: 20211108, o: 125.5, h: 125.5, l: 120.0, c: 122.0, v: 10348 },
138
+ { t: 20211109, o: 124.5, h: 131.5, l: 124.0, c: 130.0, v: 20608 },
139
+ { t: 20211110, o: 132.0, h: 135.0, l: 130.5, c: 131.0, v: 22325 },
140
+ { t: 20211111, o: 130.0, h: 134.0, l: 129.0, c: 130.5, v: 9321 },
141
+ { t: 20211112, o: 132.5, h: 136.5, l: 131.5, c: 133.0, v: 21099 },
142
+ { t: 20211115, o: 136.0, h: 140.5, l: 134.5, c: 138.5, v: 24232 },
143
+ { t: 20211116, o: 140.5, h: 143.0, l: 135.5, c: 136.0, v: 26771 },
144
+ { t: 20211117, o: 138.5, h: 143.0, l: 136.0, c: 143.0, v: 24731 },
145
+ { t: 20211118, o: 144.0, h: 145.5, l: 138.5, c: 139.5, v: 22025 },
146
+ { t: 20211119, o: 141.0, h: 142.0, l: 135.0, c: 135.5, v: 13620 },
147
+ { t: 20211122, o: 135.0, h: 140.0, l: 134.0, c: 137.5, v: 9864 },
148
+ { t: 20211123, o: 138.5, h: 148.5, l: 137.5, c: 143.0, v: 55866 },
149
+ { t: 20211124, o: 142.0, h: 143.0, l: 134.0, c: 138.0, v: 30979 },
150
+ { t: 20211125, o: 141.5, h: 146.0, l: 139.0, c: 139.0, v: 45661 },
151
+ { t: 20211126, o: 141.0, h: 145.0, l: 137.0, c: 143.5, v: 45298 },
152
+ { t: 20211129, o: 144.0, h: 157.5, l: 139.5, c: 156.0, v: 103928 },
153
+ { t: 20211130, o: 158.0, h: 164.5, l: 155.0, c: 155.5, v: 83112 },
154
+ { t: 20211201, o: 158.0, h: 162.5, l: 156.0, c: 162.5, v: 59748 },
155
+ { t: 20211202, o: 161.0, h: 161.5, l: 151.0, c: 152.0, v: 35675 },
156
+ { t: 20211203, o: 155.0, h: 158.0, l: 152.0, c: 154.0, v: 28237 },
157
+ { t: 20211206, o: 155.0, h: 156.0, l: 149.0, c: 149.0, v: 16314 },
158
+ { t: 20211207, o: 151.0, h: 151.5, l: 143.0, c: 144.0, v: 24731 },
159
+ { t: 20211208, o: 146.5, h: 147.0, l: 141.0, c: 144.5, v: 16611 },
160
+ { t: 20211209, o: 145.5, h: 145.5, l: 141.0, c: 141.0, v: 10050 },
161
+ { t: 20211210, o: 138.5, h: 142.5, l: 137.0, c: 140.0, v: 10738 },
162
+ { t: 20211213, o: 140.0, h: 140.5, l: 137.0, c: 138.0, v: 7018 },
163
+ { t: 20211214, o: 138.0, h: 143.0, l: 138.0, c: 142.0, v: 16841 },
164
+ ];
165
+ exports.default = data;
166
+ test("", function () { return expect(true).toBe(true); });
@@ -0,0 +1,12 @@
1
+ export declare enum Mode {
2
+ NumberToString = 1,
3
+ NumberToTimeStamp = 2,
4
+ StringToTimeStamp = 3,
5
+ TimeStampToString = 4,
6
+ TimeStampToNumber = 5,
7
+ StringToNumber = 6
8
+ }
9
+ declare function dateFormat(date: number, mode: Mode): number;
10
+ declare function dateFormat(date: number, mode: Mode): string;
11
+ declare function dateFormat(date: string, mode: Mode): number;
12
+ export default dateFormat;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Mode = void 0;
4
+ var Mode;
5
+ (function (Mode) {
6
+ Mode[Mode["NumberToString"] = 1] = "NumberToString";
7
+ Mode[Mode["NumberToTimeStamp"] = 2] = "NumberToTimeStamp";
8
+ Mode[Mode["StringToTimeStamp"] = 3] = "StringToTimeStamp";
9
+ Mode[Mode["TimeStampToString"] = 4] = "TimeStampToString";
10
+ Mode[Mode["TimeStampToNumber"] = 5] = "TimeStampToNumber";
11
+ Mode[Mode["StringToNumber"] = 6] = "StringToNumber";
12
+ })(Mode = exports.Mode || (exports.Mode = {}));
13
+ function dateFormat(date, mode) {
14
+ switch (mode) {
15
+ case Mode.NumberToString: {
16
+ var input = date.toString();
17
+ var res = input.slice(0, 4) + "-" + input.slice(4, 6) + "-" + input.slice(6, 8);
18
+ return res;
19
+ }
20
+ case Mode.NumberToTimeStamp: {
21
+ var input = date.toString();
22
+ var stringDate = input.slice(0, 4) + "-" + input.slice(4, 6) + "-" + input.slice(6, 8);
23
+ var res = Date.parse(stringDate);
24
+ return res;
25
+ }
26
+ case Mode.StringToTimeStamp: {
27
+ var res = Date.parse(date);
28
+ return res;
29
+ }
30
+ case Mode.TimeStampToString: {
31
+ var newDate = new Date(date);
32
+ var yy = newDate.getFullYear();
33
+ var mm = newDate.getMonth() + 1 < 10
34
+ ? "0" + (newDate.getMonth() + 1)
35
+ : newDate.getMonth() + 1;
36
+ var dd = newDate.getDate() < 10 ? "0" + newDate.getDate() : newDate.getDate();
37
+ var res = yy + "-" + mm + "-" + dd;
38
+ return res;
39
+ }
40
+ case Mode.TimeStampToNumber: {
41
+ var newDate = new Date(date);
42
+ var yy = newDate.getFullYear();
43
+ var mm = newDate.getMonth() + 1 < 10
44
+ ? "0" + (newDate.getMonth() + 1)
45
+ : newDate.getMonth() + 1;
46
+ var dd = newDate.getDate() < 10 ? "0" + newDate.getDate() : newDate.getDate();
47
+ var res = "".concat(yy).concat(mm).concat(dd);
48
+ return parseInt(res);
49
+ }
50
+ case Mode.StringToNumber: {
51
+ var res = date.toString().replace("-", "").replace("-", "");
52
+ return parseInt(res);
53
+ }
54
+ default:
55
+ return "please setting mode";
56
+ }
57
+ }
58
+ exports.default = dateFormat;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var dateFormat_1 = require("./dateFormat");
4
+ describe("test dateFormat methods", function () {
5
+ it("test NumberToString", function () {
6
+ var res = (0, dateFormat_1.default)(20211209, dateFormat_1.Mode.NumberToString);
7
+ expect(res).toBe("2021-12-09");
8
+ });
9
+ it("test NumberToTimeStamp", function () {
10
+ var res = (0, dateFormat_1.default)(20211209, dateFormat_1.Mode.NumberToTimeStamp);
11
+ expect(res).toBe(1639008000000);
12
+ });
13
+ it("test StringToNumber", function () {
14
+ var res = (0, dateFormat_1.default)("2021-12-09", dateFormat_1.Mode.StringToNumber);
15
+ expect(res).toBe(20211209);
16
+ });
17
+ it("test StringToTimeStamp", function () {
18
+ var res = (0, dateFormat_1.default)("2021-12-09", dateFormat_1.Mode.StringToTimeStamp);
19
+ expect(res).toBe(1639008000000);
20
+ });
21
+ it("test TimeStampToNumber", function () {
22
+ var res = (0, dateFormat_1.default)(1639008000000, dateFormat_1.Mode.TimeStampToNumber);
23
+ expect(res).toBe(20211209);
24
+ });
25
+ it("test TimeStampToString", function () {
26
+ var res = (0, dateFormat_1.default)(1639008000000, dateFormat_1.Mode.TimeStampToString);
27
+ expect(res).toBe("2021-12-09");
28
+ });
29
+ });
@@ -0,0 +1,17 @@
1
+ declare type ListType = {
2
+ h: number;
3
+ t: number;
4
+ o: number;
5
+ c: number;
6
+ l: number;
7
+ }[];
8
+ export declare 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 {};
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ function addDetail(obj, list, detail) {
15
+ if (detail)
16
+ return __assign(__assign({}, obj), { detail: list });
17
+ else
18
+ return __assign({}, obj);
19
+ }
20
+ function getWeekLine(list, detail) {
21
+ var res = [];
22
+ var collectWeekData = [];
23
+ list.forEach(function (item, index) {
24
+ var year = item["t"]
25
+ .toString()
26
+ .replace(/^(\d{4})(\d{2})(\d{2})$/, "$1-$2-$3");
27
+ var day = new Date(year).getDay();
28
+ switch (day) {
29
+ case 0 || 6:
30
+ break;
31
+ case 5: {
32
+ collectWeekData.push(item);
33
+ var obj = {
34
+ o: collectWeekData[0]["o"],
35
+ c: collectWeekData[collectWeekData.length - 1]["c"],
36
+ t: collectWeekData[collectWeekData.length - 1]["t"],
37
+ h: Math.max.apply(Math, collectWeekData.map(function (item) { return item.h; })),
38
+ l: Math.min.apply(Math, collectWeekData.map(function (item) { return item.l; })),
39
+ };
40
+ res.push(addDetail(obj, collectWeekData, detail));
41
+ collectWeekData = [];
42
+ break;
43
+ }
44
+ case 1:
45
+ if (collectWeekData.length !== 0) {
46
+ var obj = {
47
+ o: collectWeekData[0]["o"],
48
+ c: collectWeekData[collectWeekData.length - 1]["c"],
49
+ t: collectWeekData[collectWeekData.length - 1]["t"],
50
+ h: Math.max.apply(Math, collectWeekData.map(function (item) { return item.h; })),
51
+ l: Math.min.apply(Math, collectWeekData.map(function (item) { return item.l; })),
52
+ };
53
+ res.push(addDetail(obj, collectWeekData, detail));
54
+ }
55
+ collectWeekData = [];
56
+ collectWeekData.push(item);
57
+ break;
58
+ default:
59
+ collectWeekData.push(item);
60
+ if (list.length - 1 === index) {
61
+ var obj = {
62
+ o: collectWeekData[0]["o"],
63
+ c: collectWeekData[collectWeekData.length - 1]["c"],
64
+ t: collectWeekData[collectWeekData.length - 1]["t"],
65
+ h: Math.max.apply(Math, collectWeekData.map(function (item) { return item.h; })),
66
+ l: Math.min.apply(Math, collectWeekData.map(function (item) { return item.l; })),
67
+ };
68
+ res.push(addDetail(obj, collectWeekData, detail));
69
+ }
70
+ break;
71
+ }
72
+ });
73
+ return res;
74
+ }
75
+ exports.default = getWeekLine;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var getWeekLine_1 = require("./getWeekLine");
4
+ var test_data_test_1 = require("../test_data.test");
5
+ describe("test getWeekLine methods", function () {
6
+ it("test getWeekLine(data, false) no detail", function () {
7
+ var weekLine = (0, getWeekLine_1.default)(test_data_test_1.default, false);
8
+ expect(weekLine[weekLine.length - 2]).toEqual({
9
+ c: 140,
10
+ h: 156,
11
+ l: 137,
12
+ o: 155,
13
+ t: 20211210,
14
+ });
15
+ });
16
+ });
@@ -0,0 +1,29 @@
1
+ declare type ListType = {
2
+ h: number;
3
+ l: number;
4
+ c: number;
5
+ }[];
6
+ declare type ResWilliams9Type = {
7
+ c: number;
8
+ williams9?: number;
9
+ }[];
10
+ declare type ResWilliams18Type = {
11
+ c: number;
12
+ williams18?: number;
13
+ }[];
14
+ declare type ResAllWilliamsType = {
15
+ c: number;
16
+ williams18?: number;
17
+ williams9?: number;
18
+ }[];
19
+ interface WilliamsType {
20
+ getWilliams9: (list: ListType) => ResWilliams9Type;
21
+ getWilliams18: (list: ListType) => ResWilliams18Type;
22
+ getAllWillams(list: ListType): ResAllWilliamsType;
23
+ }
24
+ export default class Williams implements WilliamsType {
25
+ getAllWillams(list: ListType): ResAllWilliamsType;
26
+ getWilliams9(list: ListType): ResWilliams9Type;
27
+ getWilliams18(list: ListType): ResWilliams18Type;
28
+ }
29
+ export {};