@ch20026103/anysis 0.0.6-alpha → 0.0.7-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.
- package/dist/cjs/index.d.ts +4 -3
- package/dist/cjs/index.js +9 -7
- package/dist/cjs/utils/isJson.d.ts +1 -0
- package/dist/cjs/utils/isJson.js +12 -0
- package/dist/esm/index.d.ts +4 -3
- package/dist/esm/index.js +4 -3
- package/dist/esm/utils/isJson.d.ts +1 -0
- package/dist/esm/utils/isJson.js +9 -0
- package/dist/umd/index.js +286 -275
- package/package.json +17 -15
package/dist/cjs/index.d.ts
CHANGED
|
@@ -2,16 +2,17 @@ export { default as simpleRegressionModel } from "./analyze/Regression/simpleReg
|
|
|
2
2
|
export { default as slope } from "./analyze/Slope/index.js";
|
|
3
3
|
export { exponentialSmoothing, movingAverages, weightMovingAverages, } from "./analyze/TimeSeries/R/index.js";
|
|
4
4
|
export { calcSeasonalIndicesNoTrend } from "./analyze/TimeSeries/RS/index.js";
|
|
5
|
+
export { default as Boll } from "./stockSkills/boll.js";
|
|
6
|
+
export { default as Ema } from "./stockSkills/ema.js";
|
|
5
7
|
export { default as Gold } from "./stockSkills/gold.js";
|
|
6
8
|
export { default as Kd } from "./stockSkills/kd.js";
|
|
7
9
|
export { default as Ma } from "./stockSkills/ma.js";
|
|
8
10
|
export { default as Macd } from "./stockSkills/macd.js";
|
|
9
|
-
export { default as Rsi } from "./stockSkills/rsi.js";
|
|
10
11
|
export { default as Obv } from "./stockSkills/obv.js";
|
|
11
|
-
export { default as
|
|
12
|
+
export { default as Rsi } from "./stockSkills/rsi.js";
|
|
12
13
|
export { default as dateFormat } from "./stockSkills/utils/dateFormat.js";
|
|
13
14
|
export { default as getWeekLine } from "./stockSkills/utils/getWeekLine.js";
|
|
14
15
|
export { default as Williams } from "./stockSkills/williams.js";
|
|
15
|
-
export { default as Boll } from "./stockSkills/boll.js";
|
|
16
16
|
export { add } from "./test/add.js";
|
|
17
17
|
export { minus } from "./test/minus.js";
|
|
18
|
+
export { default as isJSON } from "./utils/isJson.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.
|
|
3
|
+
exports.isJSON = exports.minus = exports.add = exports.Williams = 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.slope = exports.simpleRegressionModel = void 0;
|
|
4
4
|
/*
|
|
5
5
|
請注意,在 src/index.ts 中,我的導入包含文件擴展名(.js)。
|
|
6
6
|
如果需要支持 Node.js 和構建工具(ex: webpack),則不需要這樣做。 **因為commonJs默認js副檔名**
|
|
@@ -16,6 +16,10 @@ Object.defineProperty(exports, "movingAverages", { enumerable: true, get: functi
|
|
|
16
16
|
Object.defineProperty(exports, "weightMovingAverages", { enumerable: true, get: function () { return index_js_2.weightMovingAverages; } });
|
|
17
17
|
var index_js_3 = require("./analyze/TimeSeries/RS/index.js");
|
|
18
18
|
Object.defineProperty(exports, "calcSeasonalIndicesNoTrend", { enumerable: true, get: function () { return index_js_3.calcSeasonalIndicesNoTrend; } });
|
|
19
|
+
var boll_js_1 = require("./stockSkills/boll.js");
|
|
20
|
+
Object.defineProperty(exports, "Boll", { enumerable: true, get: function () { return boll_js_1.default; } });
|
|
21
|
+
var ema_js_1 = require("./stockSkills/ema.js");
|
|
22
|
+
Object.defineProperty(exports, "Ema", { enumerable: true, get: function () { return ema_js_1.default; } });
|
|
19
23
|
var gold_js_1 = require("./stockSkills/gold.js");
|
|
20
24
|
Object.defineProperty(exports, "Gold", { enumerable: true, get: function () { return gold_js_1.default; } });
|
|
21
25
|
var kd_js_1 = require("./stockSkills/kd.js");
|
|
@@ -24,21 +28,19 @@ var ma_js_1 = require("./stockSkills/ma.js");
|
|
|
24
28
|
Object.defineProperty(exports, "Ma", { enumerable: true, get: function () { return ma_js_1.default; } });
|
|
25
29
|
var macd_js_1 = require("./stockSkills/macd.js");
|
|
26
30
|
Object.defineProperty(exports, "Macd", { enumerable: true, get: function () { return macd_js_1.default; } });
|
|
27
|
-
var rsi_js_1 = require("./stockSkills/rsi.js");
|
|
28
|
-
Object.defineProperty(exports, "Rsi", { enumerable: true, get: function () { return rsi_js_1.default; } });
|
|
29
31
|
var obv_js_1 = require("./stockSkills/obv.js");
|
|
30
32
|
Object.defineProperty(exports, "Obv", { enumerable: true, get: function () { return obv_js_1.default; } });
|
|
31
|
-
var
|
|
32
|
-
Object.defineProperty(exports, "
|
|
33
|
+
var rsi_js_1 = require("./stockSkills/rsi.js");
|
|
34
|
+
Object.defineProperty(exports, "Rsi", { enumerable: true, get: function () { return rsi_js_1.default; } });
|
|
33
35
|
var dateFormat_js_1 = require("./stockSkills/utils/dateFormat.js");
|
|
34
36
|
Object.defineProperty(exports, "dateFormat", { enumerable: true, get: function () { return dateFormat_js_1.default; } });
|
|
35
37
|
var getWeekLine_js_1 = require("./stockSkills/utils/getWeekLine.js");
|
|
36
38
|
Object.defineProperty(exports, "getWeekLine", { enumerable: true, get: function () { return getWeekLine_js_1.default; } });
|
|
37
39
|
var williams_js_1 = require("./stockSkills/williams.js");
|
|
38
40
|
Object.defineProperty(exports, "Williams", { enumerable: true, get: function () { return williams_js_1.default; } });
|
|
39
|
-
var boll_js_1 = require("./stockSkills/boll.js");
|
|
40
|
-
Object.defineProperty(exports, "Boll", { enumerable: true, get: function () { return boll_js_1.default; } });
|
|
41
41
|
var add_js_1 = require("./test/add.js");
|
|
42
42
|
Object.defineProperty(exports, "add", { enumerable: true, get: function () { return add_js_1.add; } });
|
|
43
43
|
var minus_js_1 = require("./test/minus.js");
|
|
44
44
|
Object.defineProperty(exports, "minus", { enumerable: true, get: function () { return minus_js_1.minus; } });
|
|
45
|
+
var isJson_js_1 = require("./utils/isJson.js");
|
|
46
|
+
Object.defineProperty(exports, "isJSON", { enumerable: true, get: function () { return isJson_js_1.default; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function isJSON(str: string): boolean;
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -2,16 +2,17 @@ export { default as simpleRegressionModel } from "./analyze/Regression/simpleReg
|
|
|
2
2
|
export { default as slope } from "./analyze/Slope/index.js";
|
|
3
3
|
export { exponentialSmoothing, movingAverages, weightMovingAverages, } from "./analyze/TimeSeries/R/index.js";
|
|
4
4
|
export { calcSeasonalIndicesNoTrend } from "./analyze/TimeSeries/RS/index.js";
|
|
5
|
+
export { default as Boll } from "./stockSkills/boll.js";
|
|
6
|
+
export { default as Ema } from "./stockSkills/ema.js";
|
|
5
7
|
export { default as Gold } from "./stockSkills/gold.js";
|
|
6
8
|
export { default as Kd } from "./stockSkills/kd.js";
|
|
7
9
|
export { default as Ma } from "./stockSkills/ma.js";
|
|
8
10
|
export { default as Macd } from "./stockSkills/macd.js";
|
|
9
|
-
export { default as Rsi } from "./stockSkills/rsi.js";
|
|
10
11
|
export { default as Obv } from "./stockSkills/obv.js";
|
|
11
|
-
export { default as
|
|
12
|
+
export { default as Rsi } from "./stockSkills/rsi.js";
|
|
12
13
|
export { default as dateFormat } from "./stockSkills/utils/dateFormat.js";
|
|
13
14
|
export { default as getWeekLine } from "./stockSkills/utils/getWeekLine.js";
|
|
14
15
|
export { default as Williams } from "./stockSkills/williams.js";
|
|
15
|
-
export { default as Boll } from "./stockSkills/boll.js";
|
|
16
16
|
export { add } from "./test/add.js";
|
|
17
17
|
export { minus } from "./test/minus.js";
|
|
18
|
+
export { default as isJSON } from "./utils/isJson.js";
|
package/dist/esm/index.js
CHANGED
|
@@ -7,16 +7,17 @@ export { default as simpleRegressionModel } from "./analyze/Regression/simpleReg
|
|
|
7
7
|
export { default as slope } from "./analyze/Slope/index.js";
|
|
8
8
|
export { exponentialSmoothing, movingAverages, weightMovingAverages, } from "./analyze/TimeSeries/R/index.js";
|
|
9
9
|
export { calcSeasonalIndicesNoTrend } from "./analyze/TimeSeries/RS/index.js";
|
|
10
|
+
export { default as Boll } from "./stockSkills/boll.js";
|
|
11
|
+
export { default as Ema } from "./stockSkills/ema.js";
|
|
10
12
|
export { default as Gold } from "./stockSkills/gold.js";
|
|
11
13
|
export { default as Kd } from "./stockSkills/kd.js";
|
|
12
14
|
export { default as Ma } from "./stockSkills/ma.js";
|
|
13
15
|
export { default as Macd } from "./stockSkills/macd.js";
|
|
14
|
-
export { default as Rsi } from "./stockSkills/rsi.js";
|
|
15
16
|
export { default as Obv } from "./stockSkills/obv.js";
|
|
16
|
-
export { default as
|
|
17
|
+
export { default as Rsi } from "./stockSkills/rsi.js";
|
|
17
18
|
export { default as dateFormat } from "./stockSkills/utils/dateFormat.js";
|
|
18
19
|
export { default as getWeekLine } from "./stockSkills/utils/getWeekLine.js";
|
|
19
20
|
export { default as Williams } from "./stockSkills/williams.js";
|
|
20
|
-
export { default as Boll } from "./stockSkills/boll.js";
|
|
21
21
|
export { add } from "./test/add.js";
|
|
22
22
|
export { minus } from "./test/minus.js";
|
|
23
|
+
export { default as isJSON } from "./utils/isJson.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function isJSON(str: string): boolean;
|
package/dist/umd/index.js
CHANGED
|
@@ -185,11 +185,149 @@
|
|
|
185
185
|
};
|
|
186
186
|
return __assign$7.apply(this, arguments);
|
|
187
187
|
};
|
|
188
|
+
var Boll = /** @class */ (function () {
|
|
189
|
+
function Boll() {
|
|
190
|
+
}
|
|
191
|
+
Object.defineProperty(Boll.prototype, "init", {
|
|
192
|
+
enumerable: false,
|
|
193
|
+
configurable: true,
|
|
194
|
+
writable: true,
|
|
195
|
+
value: function (data) {
|
|
196
|
+
return {
|
|
197
|
+
dataset: [data],
|
|
198
|
+
bollMa: null,
|
|
199
|
+
bollUb: null,
|
|
200
|
+
bollLb: null,
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
Object.defineProperty(Boll.prototype, "next", {
|
|
205
|
+
enumerable: false,
|
|
206
|
+
configurable: true,
|
|
207
|
+
writable: true,
|
|
208
|
+
value: function (data, preList, type) {
|
|
209
|
+
preList.dataset.push(data);
|
|
210
|
+
if (preList.dataset.length < type) {
|
|
211
|
+
return {
|
|
212
|
+
dataset: preList.dataset,
|
|
213
|
+
type: type,
|
|
214
|
+
bollMa: null,
|
|
215
|
+
bollUb: null,
|
|
216
|
+
bollLb: null,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
if (preList.dataset.length > type) {
|
|
221
|
+
preList.dataset.shift();
|
|
222
|
+
}
|
|
223
|
+
var sum = preList.dataset.reduce(function (pre, current) { return pre + current.c; }, 0);
|
|
224
|
+
var bollMa_1 = Math.round((sum / type) * 100) / 100;
|
|
225
|
+
var difference = preList.dataset.reduce(function (pre, current) {
|
|
226
|
+
return bollMa_1 !== null ? pre + Math.pow(current.c - bollMa_1, 2) : pre;
|
|
227
|
+
}, 0);
|
|
228
|
+
var std = Math.round(Math.sqrt(difference / type) * 100) / 100;
|
|
229
|
+
return {
|
|
230
|
+
dataset: preList.dataset,
|
|
231
|
+
type: type,
|
|
232
|
+
bollMa: bollMa_1,
|
|
233
|
+
bollUb: bollMa_1 + 2 * std,
|
|
234
|
+
bollLb: bollMa_1 - 2 * std,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
Object.defineProperty(Boll.prototype, "getBoll", {
|
|
240
|
+
enumerable: false,
|
|
241
|
+
configurable: true,
|
|
242
|
+
writable: true,
|
|
243
|
+
value: function (list, type) {
|
|
244
|
+
var res = [];
|
|
245
|
+
var _loop_1 = function (i) {
|
|
246
|
+
if (i < type)
|
|
247
|
+
res[i] = __assign$7(__assign$7({}, list[i]), { bollMa: null, bollUb: null, bollLb: null });
|
|
248
|
+
else {
|
|
249
|
+
// bollMa
|
|
250
|
+
var sumMa = list
|
|
251
|
+
.slice(i - (type - 1), i + 1)
|
|
252
|
+
.reduce(function (pre, current) { return pre + current.c; }, 0);
|
|
253
|
+
console.log("sumMa", sumMa);
|
|
254
|
+
var bollMa_2 = Math.round((sumMa / type) * 100) / 100;
|
|
255
|
+
// 標準差
|
|
256
|
+
var difference = res
|
|
257
|
+
.slice(i - (type - 1), i + 1)
|
|
258
|
+
.reduce(function (pre, current) {
|
|
259
|
+
return bollMa_2 !== null
|
|
260
|
+
? pre + Math.pow(current.c - bollMa_2, 2)
|
|
261
|
+
: pre;
|
|
262
|
+
}, 0);
|
|
263
|
+
var std = Math.round(Math.sqrt(difference / type) * 100) / 100;
|
|
264
|
+
res[i] = __assign$7(__assign$7({}, list[i]), { bollMa: bollMa_2, bollUb: bollMa_2 + 2 * std, bollLb: bollMa_2 - 2 * std });
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
for (var i = 0; i < list.length; i++) {
|
|
268
|
+
_loop_1(i);
|
|
269
|
+
}
|
|
270
|
+
return res;
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
return Boll;
|
|
274
|
+
}());
|
|
275
|
+
|
|
276
|
+
var Ema = /** @class */ (function () {
|
|
277
|
+
function Ema() {
|
|
278
|
+
}
|
|
279
|
+
Object.defineProperty(Ema.prototype, "getStartEma", {
|
|
280
|
+
enumerable: false,
|
|
281
|
+
configurable: true,
|
|
282
|
+
writable: true,
|
|
283
|
+
value: function (list, period) {
|
|
284
|
+
if (list.length < period)
|
|
285
|
+
throw new Error("list.length < period");
|
|
286
|
+
var sum = 0;
|
|
287
|
+
for (var i = 0; i < period; i++) {
|
|
288
|
+
sum += list[i];
|
|
289
|
+
}
|
|
290
|
+
var initialEMA = sum / period;
|
|
291
|
+
return initialEMA;
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
Object.defineProperty(Ema.prototype, "getEma", {
|
|
295
|
+
enumerable: false,
|
|
296
|
+
configurable: true,
|
|
297
|
+
writable: true,
|
|
298
|
+
value: function (list, period) {
|
|
299
|
+
var res = [];
|
|
300
|
+
var ema = this.getStartEma(list.slice(0, period), period);
|
|
301
|
+
for (var i = 0; i < list.length; i++) {
|
|
302
|
+
if (i < period) {
|
|
303
|
+
res.push(null);
|
|
304
|
+
continue;
|
|
305
|
+
}
|
|
306
|
+
ema = (list[i] * 2 + (period - 1) * ema) / (period + 1);
|
|
307
|
+
res.push(ema);
|
|
308
|
+
}
|
|
309
|
+
return res;
|
|
310
|
+
}
|
|
311
|
+
});
|
|
312
|
+
return Ema;
|
|
313
|
+
}());
|
|
314
|
+
|
|
315
|
+
var __assign$6 = (undefined && undefined.__assign) || function () {
|
|
316
|
+
__assign$6 = Object.assign || function(t) {
|
|
317
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
318
|
+
s = arguments[i];
|
|
319
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
320
|
+
t[p] = s[p];
|
|
321
|
+
}
|
|
322
|
+
return t;
|
|
323
|
+
};
|
|
324
|
+
return __assign$6.apply(this, arguments);
|
|
325
|
+
};
|
|
188
326
|
function addDetail(obj, list, detail) {
|
|
189
327
|
if (detail)
|
|
190
|
-
return __assign$
|
|
328
|
+
return __assign$6(__assign$6({}, obj), { detail: list });
|
|
191
329
|
else
|
|
192
|
-
return __assign$
|
|
330
|
+
return __assign$6({}, obj);
|
|
193
331
|
}
|
|
194
332
|
function getWeekLine(list, detail) {
|
|
195
333
|
var res = [];
|
|
@@ -460,8 +598,8 @@
|
|
|
460
598
|
return Gold;
|
|
461
599
|
}());
|
|
462
600
|
|
|
463
|
-
var __assign$
|
|
464
|
-
__assign$
|
|
601
|
+
var __assign$5 = (undefined && undefined.__assign) || function () {
|
|
602
|
+
__assign$5 = Object.assign || function(t) {
|
|
465
603
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
466
604
|
s = arguments[i];
|
|
467
605
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
@@ -469,7 +607,7 @@
|
|
|
469
607
|
}
|
|
470
608
|
return t;
|
|
471
609
|
};
|
|
472
|
-
return __assign$
|
|
610
|
+
return __assign$5.apply(this, arguments);
|
|
473
611
|
};
|
|
474
612
|
var Kd = /** @class */ (function () {
|
|
475
613
|
function Kd() {
|
|
@@ -536,14 +674,14 @@
|
|
|
536
674
|
var res = [];
|
|
537
675
|
for (var i = 0; i < list.length; i++) {
|
|
538
676
|
if (i < 8)
|
|
539
|
-
res[i] = __assign$
|
|
677
|
+
res[i] = __assign$5(__assign$5({}, list[i]), { rsv: null });
|
|
540
678
|
else {
|
|
541
679
|
var low = Math.min.apply(Math, list.slice(i - 8, i + 1).map(function (item) { return item.l; }));
|
|
542
680
|
var hight = Math.max.apply(Math, list.slice(i - 8, i + 1).map(function (item) { return item.h; }));
|
|
543
681
|
var close_2 = list[i].c;
|
|
544
682
|
var rsv = ((close_2 - low) / (hight - low)) * 100;
|
|
545
683
|
rsv = Math.round(rsv * 100) / 100;
|
|
546
|
-
res[i] = __assign$
|
|
684
|
+
res[i] = __assign$5(__assign$5({}, list[i]), { rsv: rsv });
|
|
547
685
|
}
|
|
548
686
|
}
|
|
549
687
|
return res;
|
|
@@ -559,7 +697,7 @@
|
|
|
559
697
|
var yesterdayD = 50;
|
|
560
698
|
for (var i = 0; i < list.length; i++) {
|
|
561
699
|
if (i < 8)
|
|
562
|
-
res[i] = __assign$
|
|
700
|
+
res[i] = __assign$5(__assign$5({}, list[i]), { rsv: null, k: null, d: null, "k-d": null });
|
|
563
701
|
else {
|
|
564
702
|
var low = Math.min.apply(Math, list.slice(i - 8, i + 1).map(function (item) { return item.l; }));
|
|
565
703
|
var hight = Math.max.apply(Math, list.slice(i - 8, i + 1).map(function (item) { return item.h; }));
|
|
@@ -572,7 +710,7 @@
|
|
|
572
710
|
k = Math.round(k * 100) / 100;
|
|
573
711
|
d = Math.round(d * 100) / 100;
|
|
574
712
|
k_d = Math.round(k_d * 100) / 100;
|
|
575
|
-
res[i] = __assign$
|
|
713
|
+
res[i] = __assign$5(__assign$5({}, list[i]), { rsv: rsv, k: k, d: d, "k-d": k_d });
|
|
576
714
|
yesterdayK = k;
|
|
577
715
|
yesterdayD = d;
|
|
578
716
|
}
|
|
@@ -583,8 +721,8 @@
|
|
|
583
721
|
return Kd;
|
|
584
722
|
}());
|
|
585
723
|
|
|
586
|
-
var __assign$
|
|
587
|
-
__assign$
|
|
724
|
+
var __assign$4 = (undefined && undefined.__assign) || function () {
|
|
725
|
+
__assign$4 = Object.assign || function(t) {
|
|
588
726
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
589
727
|
s = arguments[i];
|
|
590
728
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
@@ -592,7 +730,7 @@
|
|
|
592
730
|
}
|
|
593
731
|
return t;
|
|
594
732
|
};
|
|
595
|
-
return __assign$
|
|
733
|
+
return __assign$4.apply(this, arguments);
|
|
596
734
|
};
|
|
597
735
|
var Ma = /** @class */ (function () {
|
|
598
736
|
function Ma() {
|
|
@@ -648,13 +786,13 @@
|
|
|
648
786
|
var res = [];
|
|
649
787
|
for (var i = 0; i < list.length; i++) {
|
|
650
788
|
if (i < 4)
|
|
651
|
-
res[i] = __assign$
|
|
789
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { ma5: null });
|
|
652
790
|
else {
|
|
653
791
|
var sum = list
|
|
654
792
|
.slice(i - 4, i + 1)
|
|
655
793
|
.reduce(function (pre, current) { return pre + current.c; }, 0);
|
|
656
794
|
var ma5 = Math.round((sum / 5) * 100) / 100;
|
|
657
|
-
res[i] = __assign$
|
|
795
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { ma5: ma5 });
|
|
658
796
|
}
|
|
659
797
|
}
|
|
660
798
|
return res;
|
|
@@ -668,13 +806,13 @@
|
|
|
668
806
|
var res = [];
|
|
669
807
|
for (var i = 0; i < list.length; i++) {
|
|
670
808
|
if (i < 9)
|
|
671
|
-
res[i] = __assign$
|
|
809
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { ma10: null });
|
|
672
810
|
else {
|
|
673
811
|
var sum = list
|
|
674
812
|
.slice(i - 9, i + 1)
|
|
675
813
|
.reduce(function (pre, current) { return pre + current.c; }, 0);
|
|
676
814
|
var ma10 = Math.round((sum / 10) * 100) / 100;
|
|
677
|
-
res[i] = __assign$
|
|
815
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { ma10: ma10 });
|
|
678
816
|
}
|
|
679
817
|
}
|
|
680
818
|
return res;
|
|
@@ -688,13 +826,13 @@
|
|
|
688
826
|
var res = [];
|
|
689
827
|
for (var i = 0; i < list.length; i++) {
|
|
690
828
|
if (i < 19)
|
|
691
|
-
res[i] = __assign$
|
|
829
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { ma20: null });
|
|
692
830
|
else {
|
|
693
831
|
var sum = list
|
|
694
832
|
.slice(i - 19, i + 1)
|
|
695
833
|
.reduce(function (pre, current) { return pre + current.c; }, 0);
|
|
696
834
|
var ma20 = Math.round((sum / 20) * 100) / 100;
|
|
697
|
-
res[i] = __assign$
|
|
835
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { ma20: ma20 });
|
|
698
836
|
}
|
|
699
837
|
}
|
|
700
838
|
return res;
|
|
@@ -708,13 +846,13 @@
|
|
|
708
846
|
var res = [];
|
|
709
847
|
for (var i = 0; i < list.length; i++) {
|
|
710
848
|
if (i < 59)
|
|
711
|
-
res[i] = __assign$
|
|
849
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { ma60: null });
|
|
712
850
|
else {
|
|
713
851
|
var sum = list
|
|
714
852
|
.slice(i - 59, i + 1)
|
|
715
853
|
.reduce(function (pre, current) { return pre + current.c; }, 0);
|
|
716
854
|
var ma60 = Math.round((sum / 60) * 100) / 100;
|
|
717
|
-
res[i] = __assign$
|
|
855
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { ma60: ma60 });
|
|
718
856
|
}
|
|
719
857
|
}
|
|
720
858
|
return res;
|
|
@@ -728,13 +866,13 @@
|
|
|
728
866
|
var res = [];
|
|
729
867
|
for (var i = 0; i < list.length; i++) {
|
|
730
868
|
if (i < self - 1)
|
|
731
|
-
res[i] = __assign$
|
|
869
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { ma: null });
|
|
732
870
|
else {
|
|
733
871
|
var sum = list
|
|
734
872
|
.slice(i - (self - 1), i + 1)
|
|
735
873
|
.reduce(function (pre, current) { return pre + current.c; }, 0);
|
|
736
874
|
var ma = Math.round((sum / self) * 100) / 100;
|
|
737
|
-
res[i] = __assign$
|
|
875
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { ma: ma });
|
|
738
876
|
}
|
|
739
877
|
}
|
|
740
878
|
return res;
|
|
@@ -743,8 +881,8 @@
|
|
|
743
881
|
return Ma;
|
|
744
882
|
}());
|
|
745
883
|
|
|
746
|
-
var __assign$
|
|
747
|
-
__assign$
|
|
884
|
+
var __assign$3 = (undefined && undefined.__assign) || function () {
|
|
885
|
+
__assign$3 = Object.assign || function(t) {
|
|
748
886
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
749
887
|
s = arguments[i];
|
|
750
888
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
@@ -752,7 +890,7 @@
|
|
|
752
890
|
}
|
|
753
891
|
return t;
|
|
754
892
|
};
|
|
755
|
-
return __assign$
|
|
893
|
+
return __assign$3.apply(this, arguments);
|
|
756
894
|
};
|
|
757
895
|
var MACD = /** @class */ (function () {
|
|
758
896
|
function MACD() {
|
|
@@ -893,10 +1031,10 @@
|
|
|
893
1031
|
var res = [];
|
|
894
1032
|
for (var i = 0; i < list.length; i++) {
|
|
895
1033
|
if (i < 12)
|
|
896
|
-
res[i] = __assign$
|
|
1034
|
+
res[i] = __assign$3(__assign$3({}, list[i]), { EMA12: null });
|
|
897
1035
|
else {
|
|
898
1036
|
beforeEMA12 = (beforeEMA12 * 11) / 13 + (this.getDI(list[i]) * 2) / 13;
|
|
899
|
-
res[i] = __assign$
|
|
1037
|
+
res[i] = __assign$3(__assign$3({}, list[i]), { EMA12: beforeEMA12 });
|
|
900
1038
|
}
|
|
901
1039
|
}
|
|
902
1040
|
return res;
|
|
@@ -912,10 +1050,10 @@
|
|
|
912
1050
|
var res = [];
|
|
913
1051
|
for (var i = 0; i < list.length; i++) {
|
|
914
1052
|
if (i < 26)
|
|
915
|
-
res[i] = __assign$
|
|
1053
|
+
res[i] = __assign$3(__assign$3({}, list[i]), { EMA26: null });
|
|
916
1054
|
else {
|
|
917
1055
|
beforeEMA26 = (beforeEMA26 * 25) / 27 + (this.getDI(list[i]) * 2) / 27;
|
|
918
|
-
res[i] = __assign$
|
|
1056
|
+
res[i] = __assign$3(__assign$3({}, list[i]), { EMA26: beforeEMA26 });
|
|
919
1057
|
}
|
|
920
1058
|
}
|
|
921
1059
|
return res;
|
|
@@ -930,12 +1068,12 @@
|
|
|
930
1068
|
var res = [];
|
|
931
1069
|
for (var i = 0; i < list.length; i++) {
|
|
932
1070
|
if (i < 26)
|
|
933
|
-
res[i] = __assign$
|
|
1071
|
+
res[i] = __assign$3(__assign$3({}, list[i]), { DIF: null });
|
|
934
1072
|
else {
|
|
935
1073
|
var EMA12 = ((_a = ResEMA12 === null || ResEMA12 === void 0 ? void 0 : ResEMA12[i]) === null || _a === void 0 ? void 0 : _a["EMA12"]) && ResEMA12[i]["EMA12"];
|
|
936
1074
|
var EMA26 = ((_b = ResEMA26 === null || ResEMA26 === void 0 ? void 0 : ResEMA26[i]) === null || _b === void 0 ? void 0 : _b["EMA26"]) && ResEMA26[i]["EMA26"];
|
|
937
1075
|
var DIF = EMA12 - EMA26;
|
|
938
|
-
res[i] = __assign$
|
|
1076
|
+
res[i] = __assign$3(__assign$3({}, list[i]), { DIF: DIF });
|
|
939
1077
|
}
|
|
940
1078
|
}
|
|
941
1079
|
return res;
|
|
@@ -950,19 +1088,19 @@
|
|
|
950
1088
|
var beforeMACD9 = 0;
|
|
951
1089
|
for (var i = 0; i < list.length; i++) {
|
|
952
1090
|
if (i < 26)
|
|
953
|
-
res[i] = __assign$
|
|
1091
|
+
res[i] = __assign$3(__assign$3({}, list[i]), { MACD9: null, OSC: null });
|
|
954
1092
|
else if (i === 26) {
|
|
955
1093
|
var MACD9 = DIF.slice(26, 34)
|
|
956
1094
|
.map(function (item) { return ((item === null || item === void 0 ? void 0 : item.DIF) ? item["DIF"] : 0); })
|
|
957
1095
|
.reduce(function (accumulator, currentValue) { return accumulator + currentValue; });
|
|
958
1096
|
var OSC = DIF[i]["DIF"] - MACD9;
|
|
959
|
-
res[26] = __assign$
|
|
1097
|
+
res[26] = __assign$3(__assign$3({}, list[i]), { MACD9: MACD9, OSC: OSC });
|
|
960
1098
|
beforeMACD9 = MACD9;
|
|
961
1099
|
}
|
|
962
1100
|
else {
|
|
963
1101
|
var MACD9 = beforeMACD9 + ((DIF[i]["DIF"] - beforeMACD9) * 2) / 10;
|
|
964
1102
|
var OSC = DIF[i]["DIF"] - MACD9;
|
|
965
|
-
res[i] = __assign$
|
|
1103
|
+
res[i] = __assign$3(__assign$3({}, list[i]), { MACD9: MACD9, OSC: OSC });
|
|
966
1104
|
beforeMACD9 = MACD9;
|
|
967
1105
|
}
|
|
968
1106
|
}
|
|
@@ -972,8 +1110,8 @@
|
|
|
972
1110
|
return MACD;
|
|
973
1111
|
}());
|
|
974
1112
|
|
|
975
|
-
var __assign$
|
|
976
|
-
__assign$
|
|
1113
|
+
var __assign$2 = (undefined && undefined.__assign) || function () {
|
|
1114
|
+
__assign$2 = Object.assign || function(t) {
|
|
977
1115
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
978
1116
|
s = arguments[i];
|
|
979
1117
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
@@ -981,7 +1119,94 @@
|
|
|
981
1119
|
}
|
|
982
1120
|
return t;
|
|
983
1121
|
};
|
|
984
|
-
return __assign$
|
|
1122
|
+
return __assign$2.apply(this, arguments);
|
|
1123
|
+
};
|
|
1124
|
+
var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {
|
|
1125
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
1126
|
+
if (ar || !(i in from)) {
|
|
1127
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
1128
|
+
ar[i] = from[i];
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1131
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
1132
|
+
};
|
|
1133
|
+
var Obv = /** @class */ (function () {
|
|
1134
|
+
function Obv() {
|
|
1135
|
+
}
|
|
1136
|
+
Object.defineProperty(Obv.prototype, "init", {
|
|
1137
|
+
enumerable: false,
|
|
1138
|
+
configurable: true,
|
|
1139
|
+
writable: true,
|
|
1140
|
+
value: function (data) {
|
|
1141
|
+
return {
|
|
1142
|
+
dataset: [data],
|
|
1143
|
+
obv: data.v,
|
|
1144
|
+
preClose: data.c,
|
|
1145
|
+
};
|
|
1146
|
+
}
|
|
1147
|
+
});
|
|
1148
|
+
Object.defineProperty(Obv.prototype, "next", {
|
|
1149
|
+
enumerable: false,
|
|
1150
|
+
configurable: true,
|
|
1151
|
+
writable: true,
|
|
1152
|
+
value: function (data, preList) {
|
|
1153
|
+
var currentVolume = data.v;
|
|
1154
|
+
var currentClose = data.c;
|
|
1155
|
+
// obv
|
|
1156
|
+
var obv = preList.obv;
|
|
1157
|
+
if (currentClose > preList.preClose) {
|
|
1158
|
+
obv += currentVolume;
|
|
1159
|
+
}
|
|
1160
|
+
else if (currentClose < preList.preClose) {
|
|
1161
|
+
obv -= currentVolume;
|
|
1162
|
+
}
|
|
1163
|
+
return {
|
|
1164
|
+
dataset: __spreadArray(__spreadArray([], preList.dataset, true), [data], false),
|
|
1165
|
+
obv: obv,
|
|
1166
|
+
preClose: currentClose,
|
|
1167
|
+
};
|
|
1168
|
+
}
|
|
1169
|
+
});
|
|
1170
|
+
Object.defineProperty(Obv.prototype, "getObv", {
|
|
1171
|
+
enumerable: false,
|
|
1172
|
+
configurable: true,
|
|
1173
|
+
writable: true,
|
|
1174
|
+
value: function (list) {
|
|
1175
|
+
var res = [];
|
|
1176
|
+
var obv = 0;
|
|
1177
|
+
for (var i = 0; i < list.length; i++) {
|
|
1178
|
+
var currentVolume = list[i].v;
|
|
1179
|
+
var currentClose = list[i].c;
|
|
1180
|
+
if (i > 0) {
|
|
1181
|
+
// obv
|
|
1182
|
+
if (currentClose > list[i - 1].c) {
|
|
1183
|
+
obv += currentVolume;
|
|
1184
|
+
}
|
|
1185
|
+
else if (currentClose < list[i - 1].c) {
|
|
1186
|
+
obv -= currentVolume;
|
|
1187
|
+
}
|
|
1188
|
+
}
|
|
1189
|
+
else {
|
|
1190
|
+
obv = currentVolume;
|
|
1191
|
+
}
|
|
1192
|
+
res[i] = __assign$2(__assign$2({}, list[i]), { obv: obv });
|
|
1193
|
+
}
|
|
1194
|
+
return res;
|
|
1195
|
+
}
|
|
1196
|
+
});
|
|
1197
|
+
return Obv;
|
|
1198
|
+
}());
|
|
1199
|
+
|
|
1200
|
+
var __assign$1 = (undefined && undefined.__assign) || function () {
|
|
1201
|
+
__assign$1 = Object.assign || function(t) {
|
|
1202
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
1203
|
+
s = arguments[i];
|
|
1204
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
1205
|
+
t[p] = s[p];
|
|
1206
|
+
}
|
|
1207
|
+
return t;
|
|
1208
|
+
};
|
|
1209
|
+
return __assign$1.apply(this, arguments);
|
|
985
1210
|
};
|
|
986
1211
|
var Rsi = /** @class */ (function () {
|
|
987
1212
|
function Rsi() {
|
|
@@ -1008,13 +1233,13 @@
|
|
|
1008
1233
|
var res = [];
|
|
1009
1234
|
// 前5筆
|
|
1010
1235
|
for (var i = 0; i < 5; i++) {
|
|
1011
|
-
res[i] = __assign$
|
|
1236
|
+
res[i] = __assign$1(__assign$1({}, list[i]), { rsi6: null });
|
|
1012
1237
|
}
|
|
1013
1238
|
// 第6筆Rsi
|
|
1014
1239
|
var beforeUpAvg = this.getStartUpAvg(list, 6);
|
|
1015
1240
|
var beforeDownAvg = this.getStartDownAvg(list, 6);
|
|
1016
1241
|
var firstRsi6 = this.getRsi(beforeUpAvg, beforeDownAvg);
|
|
1017
|
-
res[5] = __assign$
|
|
1242
|
+
res[5] = __assign$1(__assign$1({}, list[5]), { rsi6: firstRsi6 });
|
|
1018
1243
|
// else
|
|
1019
1244
|
for (var i = 6; i < list.length; i++) {
|
|
1020
1245
|
var minusU = 0;
|
|
@@ -1029,7 +1254,7 @@
|
|
|
1029
1254
|
beforeUpAvg = (beforeUpAvg * 5) / 6 + minusU / 6;
|
|
1030
1255
|
beforeDownAvg = (beforeDownAvg * 5) / 6 + Math.abs(minusD) / 6;
|
|
1031
1256
|
var rsi6 = this.getRsi(beforeUpAvg, beforeDownAvg);
|
|
1032
|
-
res[i] = __assign$
|
|
1257
|
+
res[i] = __assign$1(__assign$1({}, list[i]), { rsi6: Math.round(rsi6 * 100) / 100 });
|
|
1033
1258
|
}
|
|
1034
1259
|
return res;
|
|
1035
1260
|
}
|
|
@@ -1042,13 +1267,13 @@
|
|
|
1042
1267
|
var res = [];
|
|
1043
1268
|
// 前11筆
|
|
1044
1269
|
for (var i = 0; i < 11; i++) {
|
|
1045
|
-
res[i] = __assign$
|
|
1270
|
+
res[i] = __assign$1(__assign$1({}, list[i]), { rsi12: null });
|
|
1046
1271
|
}
|
|
1047
1272
|
// 第12筆Rsi
|
|
1048
1273
|
var beforeUpAvg = this.getStartUpAvg(list, 12);
|
|
1049
1274
|
var beforeDownAvg = this.getStartDownAvg(list, 12);
|
|
1050
1275
|
var firstRsi12 = this.getRsi(beforeUpAvg, beforeDownAvg);
|
|
1051
|
-
res[11] = __assign$
|
|
1276
|
+
res[11] = __assign$1(__assign$1({}, list[11]), { rsi12: firstRsi12 });
|
|
1052
1277
|
// else
|
|
1053
1278
|
for (var i = 12; i < list.length; i++) {
|
|
1054
1279
|
var minusU = 0;
|
|
@@ -1063,7 +1288,7 @@
|
|
|
1063
1288
|
beforeUpAvg = (beforeUpAvg * 11) / 12 + minusU / 12;
|
|
1064
1289
|
beforeDownAvg = (beforeDownAvg * 11) / 12 + Math.abs(minusD) / 12;
|
|
1065
1290
|
var rsi12 = this.getRsi(beforeUpAvg, beforeDownAvg);
|
|
1066
|
-
res[i] = __assign$
|
|
1291
|
+
res[i] = __assign$1(__assign$1({}, list[i]), { rsi12: Math.round(rsi12 * 100) / 100 });
|
|
1067
1292
|
}
|
|
1068
1293
|
return res;
|
|
1069
1294
|
}
|
|
@@ -1115,132 +1340,6 @@
|
|
|
1115
1340
|
return Rsi;
|
|
1116
1341
|
}());
|
|
1117
1342
|
|
|
1118
|
-
var __assign$2 = (undefined && undefined.__assign) || function () {
|
|
1119
|
-
__assign$2 = Object.assign || function(t) {
|
|
1120
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
1121
|
-
s = arguments[i];
|
|
1122
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
1123
|
-
t[p] = s[p];
|
|
1124
|
-
}
|
|
1125
|
-
return t;
|
|
1126
|
-
};
|
|
1127
|
-
return __assign$2.apply(this, arguments);
|
|
1128
|
-
};
|
|
1129
|
-
var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {
|
|
1130
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
1131
|
-
if (ar || !(i in from)) {
|
|
1132
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
1133
|
-
ar[i] = from[i];
|
|
1134
|
-
}
|
|
1135
|
-
}
|
|
1136
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
1137
|
-
};
|
|
1138
|
-
var Obv = /** @class */ (function () {
|
|
1139
|
-
function Obv() {
|
|
1140
|
-
}
|
|
1141
|
-
Object.defineProperty(Obv.prototype, "init", {
|
|
1142
|
-
enumerable: false,
|
|
1143
|
-
configurable: true,
|
|
1144
|
-
writable: true,
|
|
1145
|
-
value: function (data) {
|
|
1146
|
-
return {
|
|
1147
|
-
dataset: [data],
|
|
1148
|
-
obv: data.v,
|
|
1149
|
-
preClose: data.c,
|
|
1150
|
-
};
|
|
1151
|
-
}
|
|
1152
|
-
});
|
|
1153
|
-
Object.defineProperty(Obv.prototype, "next", {
|
|
1154
|
-
enumerable: false,
|
|
1155
|
-
configurable: true,
|
|
1156
|
-
writable: true,
|
|
1157
|
-
value: function (data, preList) {
|
|
1158
|
-
var currentVolume = data.v;
|
|
1159
|
-
var currentClose = data.c;
|
|
1160
|
-
// obv
|
|
1161
|
-
var obv = preList.obv;
|
|
1162
|
-
if (currentClose > preList.preClose) {
|
|
1163
|
-
obv += currentVolume;
|
|
1164
|
-
}
|
|
1165
|
-
else if (currentClose < preList.preClose) {
|
|
1166
|
-
obv -= currentVolume;
|
|
1167
|
-
}
|
|
1168
|
-
return {
|
|
1169
|
-
dataset: __spreadArray(__spreadArray([], preList.dataset, true), [data], false),
|
|
1170
|
-
obv: obv,
|
|
1171
|
-
preClose: currentClose,
|
|
1172
|
-
};
|
|
1173
|
-
}
|
|
1174
|
-
});
|
|
1175
|
-
Object.defineProperty(Obv.prototype, "getObv", {
|
|
1176
|
-
enumerable: false,
|
|
1177
|
-
configurable: true,
|
|
1178
|
-
writable: true,
|
|
1179
|
-
value: function (list) {
|
|
1180
|
-
var res = [];
|
|
1181
|
-
var obv = 0;
|
|
1182
|
-
for (var i = 0; i < list.length; i++) {
|
|
1183
|
-
var currentVolume = list[i].v;
|
|
1184
|
-
var currentClose = list[i].c;
|
|
1185
|
-
if (i > 0) {
|
|
1186
|
-
// obv
|
|
1187
|
-
if (currentClose > list[i - 1].c) {
|
|
1188
|
-
obv += currentVolume;
|
|
1189
|
-
}
|
|
1190
|
-
else if (currentClose < list[i - 1].c) {
|
|
1191
|
-
obv -= currentVolume;
|
|
1192
|
-
}
|
|
1193
|
-
}
|
|
1194
|
-
else {
|
|
1195
|
-
obv = currentVolume;
|
|
1196
|
-
}
|
|
1197
|
-
res[i] = __assign$2(__assign$2({}, list[i]), { obv: obv });
|
|
1198
|
-
}
|
|
1199
|
-
return res;
|
|
1200
|
-
}
|
|
1201
|
-
});
|
|
1202
|
-
return Obv;
|
|
1203
|
-
}());
|
|
1204
|
-
|
|
1205
|
-
var Ema = /** @class */ (function () {
|
|
1206
|
-
function Ema() {
|
|
1207
|
-
}
|
|
1208
|
-
Object.defineProperty(Ema.prototype, "getStartEma", {
|
|
1209
|
-
enumerable: false,
|
|
1210
|
-
configurable: true,
|
|
1211
|
-
writable: true,
|
|
1212
|
-
value: function (list, period) {
|
|
1213
|
-
if (list.length < period)
|
|
1214
|
-
throw new Error("list.length < period");
|
|
1215
|
-
var sum = 0;
|
|
1216
|
-
for (var i = 0; i < period; i++) {
|
|
1217
|
-
sum += list[i];
|
|
1218
|
-
}
|
|
1219
|
-
var initialEMA = sum / period;
|
|
1220
|
-
return initialEMA;
|
|
1221
|
-
}
|
|
1222
|
-
});
|
|
1223
|
-
Object.defineProperty(Ema.prototype, "getEma", {
|
|
1224
|
-
enumerable: false,
|
|
1225
|
-
configurable: true,
|
|
1226
|
-
writable: true,
|
|
1227
|
-
value: function (list, period) {
|
|
1228
|
-
var res = [];
|
|
1229
|
-
var ema = this.getStartEma(list.slice(0, period), period);
|
|
1230
|
-
for (var i = 0; i < list.length; i++) {
|
|
1231
|
-
if (i < period) {
|
|
1232
|
-
res.push(null);
|
|
1233
|
-
continue;
|
|
1234
|
-
}
|
|
1235
|
-
ema = (list[i] * 2 + (period - 1) * ema) / (period + 1);
|
|
1236
|
-
res.push(ema);
|
|
1237
|
-
}
|
|
1238
|
-
return res;
|
|
1239
|
-
}
|
|
1240
|
-
});
|
|
1241
|
-
return Ema;
|
|
1242
|
-
}());
|
|
1243
|
-
|
|
1244
1343
|
var Mode;
|
|
1245
1344
|
(function (Mode) {
|
|
1246
1345
|
Mode[Mode["NumberToString"] = 1] = "NumberToString";
|
|
@@ -1296,8 +1395,8 @@
|
|
|
1296
1395
|
}
|
|
1297
1396
|
}
|
|
1298
1397
|
|
|
1299
|
-
var __assign
|
|
1300
|
-
__assign
|
|
1398
|
+
var __assign = (undefined && undefined.__assign) || function () {
|
|
1399
|
+
__assign = Object.assign || function(t) {
|
|
1301
1400
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
1302
1401
|
s = arguments[i];
|
|
1303
1402
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
@@ -1305,7 +1404,7 @@
|
|
|
1305
1404
|
}
|
|
1306
1405
|
return t;
|
|
1307
1406
|
};
|
|
1308
|
-
return __assign
|
|
1407
|
+
return __assign.apply(this, arguments);
|
|
1309
1408
|
};
|
|
1310
1409
|
var Williams = /** @class */ (function () {
|
|
1311
1410
|
function Williams() {
|
|
@@ -1332,7 +1431,7 @@
|
|
|
1332
1431
|
var res = [];
|
|
1333
1432
|
for (var i = 0; i < list.length; i++) {
|
|
1334
1433
|
if (i < 9)
|
|
1335
|
-
res[i] = __assign
|
|
1434
|
+
res[i] = __assign(__assign({}, list[i]), { williams9: null });
|
|
1336
1435
|
else {
|
|
1337
1436
|
var maxList = list.slice(i - 8, i).map(function (item) { return item["h"]; });
|
|
1338
1437
|
var minList = list.slice(i - 8, i).map(function (item) { return item["l"]; });
|
|
@@ -1340,7 +1439,7 @@
|
|
|
1340
1439
|
var min = Math.min.apply(Math, minList);
|
|
1341
1440
|
var close_1 = list[i]["c"];
|
|
1342
1441
|
var williams9 = ((max - close_1) / (max - min)) * -100;
|
|
1343
|
-
res[i] = __assign
|
|
1442
|
+
res[i] = __assign(__assign({}, list[i]), { williams9: Math.round(williams9 * 100) / 100 });
|
|
1344
1443
|
}
|
|
1345
1444
|
}
|
|
1346
1445
|
return res;
|
|
@@ -1354,7 +1453,7 @@
|
|
|
1354
1453
|
var res = [];
|
|
1355
1454
|
for (var i = 0; i < list.length; i++) {
|
|
1356
1455
|
if (i < 18)
|
|
1357
|
-
res[i] = __assign
|
|
1456
|
+
res[i] = __assign(__assign({}, list[i]), { williams18: null });
|
|
1358
1457
|
else {
|
|
1359
1458
|
var maxList = list.slice(i - 17, i).map(function (item) { return item["h"]; });
|
|
1360
1459
|
var minList = list.slice(i - 17, i).map(function (item) { return item["l"]; });
|
|
@@ -1362,7 +1461,7 @@
|
|
|
1362
1461
|
var min = Math.min.apply(Math, minList);
|
|
1363
1462
|
var close_2 = list[i]["c"];
|
|
1364
1463
|
var williams18 = ((max - close_2) / (max - min)) * -100;
|
|
1365
|
-
res[i] = __assign
|
|
1464
|
+
res[i] = __assign(__assign({}, list[i]), { williams18: Math.round(williams18 * 100) / 100 });
|
|
1366
1465
|
}
|
|
1367
1466
|
}
|
|
1368
1467
|
return res;
|
|
@@ -1371,105 +1470,6 @@
|
|
|
1371
1470
|
return Williams;
|
|
1372
1471
|
}());
|
|
1373
1472
|
|
|
1374
|
-
var __assign = (undefined && undefined.__assign) || function () {
|
|
1375
|
-
__assign = Object.assign || function(t) {
|
|
1376
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
1377
|
-
s = arguments[i];
|
|
1378
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
1379
|
-
t[p] = s[p];
|
|
1380
|
-
}
|
|
1381
|
-
return t;
|
|
1382
|
-
};
|
|
1383
|
-
return __assign.apply(this, arguments);
|
|
1384
|
-
};
|
|
1385
|
-
var Boll = /** @class */ (function () {
|
|
1386
|
-
function Boll() {
|
|
1387
|
-
}
|
|
1388
|
-
Object.defineProperty(Boll.prototype, "init", {
|
|
1389
|
-
enumerable: false,
|
|
1390
|
-
configurable: true,
|
|
1391
|
-
writable: true,
|
|
1392
|
-
value: function (data) {
|
|
1393
|
-
return {
|
|
1394
|
-
dataset: [data],
|
|
1395
|
-
bollMa: null,
|
|
1396
|
-
bollUb: null,
|
|
1397
|
-
bollLb: null,
|
|
1398
|
-
};
|
|
1399
|
-
}
|
|
1400
|
-
});
|
|
1401
|
-
Object.defineProperty(Boll.prototype, "next", {
|
|
1402
|
-
enumerable: false,
|
|
1403
|
-
configurable: true,
|
|
1404
|
-
writable: true,
|
|
1405
|
-
value: function (data, preList, type) {
|
|
1406
|
-
preList.dataset.push(data);
|
|
1407
|
-
if (preList.dataset.length < type) {
|
|
1408
|
-
return {
|
|
1409
|
-
dataset: preList.dataset,
|
|
1410
|
-
type: type,
|
|
1411
|
-
bollMa: null,
|
|
1412
|
-
bollUb: null,
|
|
1413
|
-
bollLb: null,
|
|
1414
|
-
};
|
|
1415
|
-
}
|
|
1416
|
-
else {
|
|
1417
|
-
if (preList.dataset.length > type) {
|
|
1418
|
-
preList.dataset.shift();
|
|
1419
|
-
}
|
|
1420
|
-
var sum = preList.dataset.reduce(function (pre, current) { return pre + current.c; }, 0);
|
|
1421
|
-
var bollMa_1 = Math.round((sum / type) * 100) / 100;
|
|
1422
|
-
var difference = preList.dataset.reduce(function (pre, current) {
|
|
1423
|
-
return bollMa_1 !== null ? pre + Math.pow(current.c - bollMa_1, 2) : pre;
|
|
1424
|
-
}, 0);
|
|
1425
|
-
var std = Math.round(Math.sqrt(difference / type) * 100) / 100;
|
|
1426
|
-
return {
|
|
1427
|
-
dataset: preList.dataset,
|
|
1428
|
-
type: type,
|
|
1429
|
-
bollMa: bollMa_1,
|
|
1430
|
-
bollUb: bollMa_1 + 2 * std,
|
|
1431
|
-
bollLb: bollMa_1 - 2 * std,
|
|
1432
|
-
};
|
|
1433
|
-
}
|
|
1434
|
-
}
|
|
1435
|
-
});
|
|
1436
|
-
Object.defineProperty(Boll.prototype, "getBoll", {
|
|
1437
|
-
enumerable: false,
|
|
1438
|
-
configurable: true,
|
|
1439
|
-
writable: true,
|
|
1440
|
-
value: function (list, type) {
|
|
1441
|
-
var res = [];
|
|
1442
|
-
var _loop_1 = function (i) {
|
|
1443
|
-
if (i < type)
|
|
1444
|
-
res[i] = __assign(__assign({}, list[i]), { bollMa: null, bollUb: null, bollLb: null });
|
|
1445
|
-
else {
|
|
1446
|
-
// bollMa
|
|
1447
|
-
var sumMa = list
|
|
1448
|
-
.slice(i - (type - 1), i + 1)
|
|
1449
|
-
.reduce(function (pre, current) { return pre + current.c; }, 0);
|
|
1450
|
-
console.log("sumMa", sumMa);
|
|
1451
|
-
var bollMa_2 = Math.round((sumMa / type) * 100) / 100;
|
|
1452
|
-
// 標準差
|
|
1453
|
-
var difference = res
|
|
1454
|
-
.slice(i - (type - 1), i + 1)
|
|
1455
|
-
.reduce(function (pre, current) {
|
|
1456
|
-
return bollMa_2 !== null
|
|
1457
|
-
? pre + Math.pow(current.c - bollMa_2, 2)
|
|
1458
|
-
: pre;
|
|
1459
|
-
}, 0);
|
|
1460
|
-
var std = Math.round(Math.sqrt(difference / type) * 100) / 100;
|
|
1461
|
-
res[i] = __assign(__assign({}, list[i]), { bollMa: bollMa_2, bollUb: bollMa_2 + 2 * std, bollLb: bollMa_2 - 2 * std });
|
|
1462
|
-
}
|
|
1463
|
-
};
|
|
1464
|
-
for (var i = 0; i < list.length; i++) {
|
|
1465
|
-
_loop_1(i);
|
|
1466
|
-
}
|
|
1467
|
-
return res;
|
|
1468
|
-
}
|
|
1469
|
-
});
|
|
1470
|
-
return Boll;
|
|
1471
|
-
}());
|
|
1472
|
-
|
|
1473
1473
|
function add(a, b) {
|
|
1474
1474
|
return a + b;
|
|
1475
1475
|
}
|
|
@@ -1478,6 +1478,16 @@
|
|
|
1478
1478
|
return a - b;
|
|
1479
1479
|
}
|
|
1480
1480
|
|
|
1481
|
+
function isJSON(str) {
|
|
1482
|
+
try {
|
|
1483
|
+
JSON.parse(str);
|
|
1484
|
+
return true;
|
|
1485
|
+
}
|
|
1486
|
+
catch (error) {
|
|
1487
|
+
return false;
|
|
1488
|
+
}
|
|
1489
|
+
}
|
|
1490
|
+
|
|
1481
1491
|
exports.Boll = Boll;
|
|
1482
1492
|
exports.Ema = Ema;
|
|
1483
1493
|
exports.Gold = Gold;
|
|
@@ -1492,6 +1502,7 @@
|
|
|
1492
1502
|
exports.dateFormat = dateFormat;
|
|
1493
1503
|
exports.exponentialSmoothing = exponentialSmoothing;
|
|
1494
1504
|
exports.getWeekLine = getWeekLine;
|
|
1505
|
+
exports.isJSON = isJSON;
|
|
1495
1506
|
exports.minus = minus;
|
|
1496
1507
|
exports.movingAverages = movingAverages;
|
|
1497
1508
|
exports.simpleRegressionModel = simpleRegressionModel;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ch20026103/anysis",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7-alpha",
|
|
4
4
|
"description": "provide many analyze methods in the library.",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"bugs": "git@github.com:cosmic1330/anysis/issues",
|
|
@@ -12,6 +12,21 @@
|
|
|
12
12
|
"module": "dist/esm/index.js",
|
|
13
13
|
"browser": "dist/umd/index.js",
|
|
14
14
|
"types": "dist/esm/index.d.ts",
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "pnpm clean && pnpm build:esm && pnpm build:cjs && pnpm build:umd",
|
|
17
|
+
"build:cjs": "tsc --module commonjs --target es5 --outDir dist/cjs",
|
|
18
|
+
"build:esm": "tsc --module esnext --target es5 --outDir dist/esm",
|
|
19
|
+
"build:umd": "rollup dist/esm/index.js --file dist/umd/index.js --format umd --name anysis",
|
|
20
|
+
"clean": "rimraf dist",
|
|
21
|
+
"lint": "eslint --fix \"**/*.{js,jsx,ts,tsx,mjs}\"",
|
|
22
|
+
"prepare": "pnpm exec husky install",
|
|
23
|
+
"prettier": "pnpm exec prettier --write .",
|
|
24
|
+
"prepublishOnly": "pnpm build",
|
|
25
|
+
"published": "npm publish",
|
|
26
|
+
"unpublished": "npm unpublish --force --registry http://localhost:4873 ",
|
|
27
|
+
"test": "vitest",
|
|
28
|
+
"demo": "node demo.js"
|
|
29
|
+
},
|
|
15
30
|
"lint-staged": {
|
|
16
31
|
"*.{js,jsx,ts,tsx,mjs}": [
|
|
17
32
|
"pnpm lint"
|
|
@@ -42,18 +57,5 @@
|
|
|
42
57
|
},
|
|
43
58
|
"vota": {
|
|
44
59
|
"node": "16.11.0"
|
|
45
|
-
},
|
|
46
|
-
"scripts": {
|
|
47
|
-
"build": "pnpm clean && pnpm build:esm && pnpm build:cjs && pnpm build:umd",
|
|
48
|
-
"build:cjs": "tsc --module commonjs --target es5 --outDir dist/cjs",
|
|
49
|
-
"build:esm": "tsc --module esnext --target es5 --outDir dist/esm",
|
|
50
|
-
"build:umd": "rollup dist/esm/index.js --file dist/umd/index.js --format umd --name anysis",
|
|
51
|
-
"clean": "rimraf dist",
|
|
52
|
-
"lint": "eslint --fix \"**/*.{js,jsx,ts,tsx,mjs}\"",
|
|
53
|
-
"prettier": "pnpm exec prettier --write .",
|
|
54
|
-
"published": "npm publish",
|
|
55
|
-
"unpublished": "npm unpublish --force --registry http://localhost:4873 ",
|
|
56
|
-
"test": "vitest",
|
|
57
|
-
"demo": "node demo.js"
|
|
58
60
|
}
|
|
59
|
-
}
|
|
61
|
+
}
|