@ch20026103/anysis 0.0.5-alpha → 0.0.6-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 +1 -0
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/stockSkills/boll.d.ts +58 -0
- package/dist/cjs/stockSkills/boll.js +101 -0
- package/dist/cjs/stockSkills/boll.test.d.ts +1 -0
- package/dist/cjs/stockSkills/boll.test.js +36 -0
- package/dist/cjs/stockSkills/ema.d.ts +2 -2
- package/dist/cjs/stockSkills/ema.js +1 -1
- package/dist/cjs/stockSkills/kd.d.ts +22 -22
- package/dist/cjs/stockSkills/kd.js +10 -10
- package/dist/cjs/stockSkills/ma.d.ts +13 -23
- package/dist/cjs/stockSkills/ma.js +9 -43
- package/dist/cjs/stockSkills/ma.test.js +3 -20
- package/dist/cjs/stockSkills/macd.d.ts +34 -34
- package/dist/cjs/stockSkills/macd.js +15 -15
- package/dist/cjs/stockSkills/macd.test.js +2 -0
- package/dist/cjs/stockSkills/rsi.d.ts +4 -4
- package/dist/cjs/stockSkills/rsi.js +2 -2
- package/dist/cjs/stockSkills/williams.d.ts +4 -4
- package/dist/cjs/stockSkills/williams.js +2 -2
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/stockSkills/boll.d.ts +58 -0
- package/dist/esm/stockSkills/boll.js +99 -0
- package/dist/esm/stockSkills/boll.test.d.ts +1 -0
- package/dist/esm/stockSkills/boll.test.js +34 -0
- package/dist/esm/stockSkills/ema.d.ts +2 -2
- package/dist/esm/stockSkills/ema.js +1 -1
- package/dist/esm/stockSkills/kd.d.ts +22 -22
- package/dist/esm/stockSkills/kd.js +10 -10
- package/dist/esm/stockSkills/ma.d.ts +13 -23
- package/dist/esm/stockSkills/ma.js +9 -43
- package/dist/esm/stockSkills/ma.test.js +3 -20
- package/dist/esm/stockSkills/macd.d.ts +34 -34
- package/dist/esm/stockSkills/macd.js +15 -15
- package/dist/esm/stockSkills/macd.test.js +2 -0
- package/dist/esm/stockSkills/rsi.d.ts +4 -4
- package/dist/esm/stockSkills/rsi.js +2 -2
- package/dist/esm/stockSkills/williams.d.ts +4 -4
- package/dist/esm/stockSkills/williams.js +2 -2
- package/dist/umd/index.js +180 -114
- package/package.json +1 -1
package/dist/umd/index.js
CHANGED
|
@@ -174,8 +174,8 @@
|
|
|
174
174
|
return nextYearForecast;
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
-
var __assign$
|
|
178
|
-
__assign$
|
|
177
|
+
var __assign$7 = (undefined && undefined.__assign) || function () {
|
|
178
|
+
__assign$7 = Object.assign || function(t) {
|
|
179
179
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
180
180
|
s = arguments[i];
|
|
181
181
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
@@ -183,13 +183,13 @@
|
|
|
183
183
|
}
|
|
184
184
|
return t;
|
|
185
185
|
};
|
|
186
|
-
return __assign$
|
|
186
|
+
return __assign$7.apply(this, arguments);
|
|
187
187
|
};
|
|
188
188
|
function addDetail(obj, list, detail) {
|
|
189
189
|
if (detail)
|
|
190
|
-
return __assign$
|
|
190
|
+
return __assign$7(__assign$7({}, obj), { detail: list });
|
|
191
191
|
else
|
|
192
|
-
return __assign$
|
|
192
|
+
return __assign$7({}, obj);
|
|
193
193
|
}
|
|
194
194
|
function getWeekLine(list, detail) {
|
|
195
195
|
var res = [];
|
|
@@ -460,8 +460,8 @@
|
|
|
460
460
|
return Gold;
|
|
461
461
|
}());
|
|
462
462
|
|
|
463
|
-
var __assign$
|
|
464
|
-
__assign$
|
|
463
|
+
var __assign$6 = (undefined && undefined.__assign) || function () {
|
|
464
|
+
__assign$6 = Object.assign || function(t) {
|
|
465
465
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
466
466
|
s = arguments[i];
|
|
467
467
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
@@ -469,7 +469,7 @@
|
|
|
469
469
|
}
|
|
470
470
|
return t;
|
|
471
471
|
};
|
|
472
|
-
return __assign$
|
|
472
|
+
return __assign$6.apply(this, arguments);
|
|
473
473
|
};
|
|
474
474
|
var Kd = /** @class */ (function () {
|
|
475
475
|
function Kd() {
|
|
@@ -481,10 +481,10 @@
|
|
|
481
481
|
value: function (data) {
|
|
482
482
|
return {
|
|
483
483
|
dataset: [data],
|
|
484
|
-
rsv:
|
|
485
|
-
k:
|
|
486
|
-
d:
|
|
487
|
-
"k-d":
|
|
484
|
+
rsv: null,
|
|
485
|
+
k: null,
|
|
486
|
+
d: null,
|
|
487
|
+
"k-d": null,
|
|
488
488
|
};
|
|
489
489
|
}
|
|
490
490
|
});
|
|
@@ -497,10 +497,10 @@
|
|
|
497
497
|
if (preList.dataset.length < type) {
|
|
498
498
|
return {
|
|
499
499
|
dataset: preList.dataset,
|
|
500
|
-
rsv:
|
|
501
|
-
k:
|
|
502
|
-
d:
|
|
503
|
-
"k-d":
|
|
500
|
+
rsv: null,
|
|
501
|
+
k: null,
|
|
502
|
+
d: null,
|
|
503
|
+
"k-d": null,
|
|
504
504
|
};
|
|
505
505
|
}
|
|
506
506
|
else {
|
|
@@ -536,14 +536,14 @@
|
|
|
536
536
|
var res = [];
|
|
537
537
|
for (var i = 0; i < list.length; i++) {
|
|
538
538
|
if (i < 8)
|
|
539
|
-
res[i] = __assign$
|
|
539
|
+
res[i] = __assign$6(__assign$6({}, list[i]), { rsv: null });
|
|
540
540
|
else {
|
|
541
541
|
var low = Math.min.apply(Math, list.slice(i - 8, i + 1).map(function (item) { return item.l; }));
|
|
542
542
|
var hight = Math.max.apply(Math, list.slice(i - 8, i + 1).map(function (item) { return item.h; }));
|
|
543
543
|
var close_2 = list[i].c;
|
|
544
544
|
var rsv = ((close_2 - low) / (hight - low)) * 100;
|
|
545
545
|
rsv = Math.round(rsv * 100) / 100;
|
|
546
|
-
res[i] = __assign$
|
|
546
|
+
res[i] = __assign$6(__assign$6({}, list[i]), { rsv: rsv });
|
|
547
547
|
}
|
|
548
548
|
}
|
|
549
549
|
return res;
|
|
@@ -559,7 +559,7 @@
|
|
|
559
559
|
var yesterdayD = 50;
|
|
560
560
|
for (var i = 0; i < list.length; i++) {
|
|
561
561
|
if (i < 8)
|
|
562
|
-
res[i] = __assign$
|
|
562
|
+
res[i] = __assign$6(__assign$6({}, list[i]), { rsv: null, k: null, d: null, "k-d": null });
|
|
563
563
|
else {
|
|
564
564
|
var low = Math.min.apply(Math, list.slice(i - 8, i + 1).map(function (item) { return item.l; }));
|
|
565
565
|
var hight = Math.max.apply(Math, list.slice(i - 8, i + 1).map(function (item) { return item.h; }));
|
|
@@ -572,7 +572,7 @@
|
|
|
572
572
|
k = Math.round(k * 100) / 100;
|
|
573
573
|
d = Math.round(d * 100) / 100;
|
|
574
574
|
k_d = Math.round(k_d * 100) / 100;
|
|
575
|
-
res[i] = __assign$
|
|
575
|
+
res[i] = __assign$6(__assign$6({}, list[i]), { rsv: rsv, k: k, d: d, "k-d": k_d });
|
|
576
576
|
yesterdayK = k;
|
|
577
577
|
yesterdayD = d;
|
|
578
578
|
}
|
|
@@ -583,8 +583,8 @@
|
|
|
583
583
|
return Kd;
|
|
584
584
|
}());
|
|
585
585
|
|
|
586
|
-
var __assign$
|
|
587
|
-
__assign$
|
|
586
|
+
var __assign$5 = (undefined && undefined.__assign) || function () {
|
|
587
|
+
__assign$5 = Object.assign || function(t) {
|
|
588
588
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
589
589
|
s = arguments[i];
|
|
590
590
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
@@ -592,7 +592,7 @@
|
|
|
592
592
|
}
|
|
593
593
|
return t;
|
|
594
594
|
};
|
|
595
|
-
return __assign$
|
|
595
|
+
return __assign$5.apply(this, arguments);
|
|
596
596
|
};
|
|
597
597
|
var Ma = /** @class */ (function () {
|
|
598
598
|
function Ma() {
|
|
@@ -634,9 +634,8 @@
|
|
|
634
634
|
var responseMa10 = this.getMa10(list);
|
|
635
635
|
var responseMa20 = this.getMa20(list);
|
|
636
636
|
var responseMa60 = this.getMa60(list);
|
|
637
|
-
var responseBoll = this.getBoll(list);
|
|
638
637
|
for (var i = 0; i < list.length; i++) {
|
|
639
|
-
res[i] = Object.assign(list[i], responseMa5[i], responseMa10[i], responseMa20[i], responseMa60[i]
|
|
638
|
+
res[i] = Object.assign(list[i], responseMa5[i], responseMa10[i], responseMa20[i], responseMa60[i]);
|
|
640
639
|
}
|
|
641
640
|
return res;
|
|
642
641
|
}
|
|
@@ -649,13 +648,13 @@
|
|
|
649
648
|
var res = [];
|
|
650
649
|
for (var i = 0; i < list.length; i++) {
|
|
651
650
|
if (i < 4)
|
|
652
|
-
res[i] = __assign$
|
|
651
|
+
res[i] = __assign$5(__assign$5({}, list[i]), { ma5: null });
|
|
653
652
|
else {
|
|
654
653
|
var sum = list
|
|
655
654
|
.slice(i - 4, i + 1)
|
|
656
655
|
.reduce(function (pre, current) { return pre + current.c; }, 0);
|
|
657
656
|
var ma5 = Math.round((sum / 5) * 100) / 100;
|
|
658
|
-
res[i] = __assign$
|
|
657
|
+
res[i] = __assign$5(__assign$5({}, list[i]), { ma5: ma5 });
|
|
659
658
|
}
|
|
660
659
|
}
|
|
661
660
|
return res;
|
|
@@ -669,13 +668,13 @@
|
|
|
669
668
|
var res = [];
|
|
670
669
|
for (var i = 0; i < list.length; i++) {
|
|
671
670
|
if (i < 9)
|
|
672
|
-
res[i] = __assign$
|
|
671
|
+
res[i] = __assign$5(__assign$5({}, list[i]), { ma10: null });
|
|
673
672
|
else {
|
|
674
673
|
var sum = list
|
|
675
674
|
.slice(i - 9, i + 1)
|
|
676
675
|
.reduce(function (pre, current) { return pre + current.c; }, 0);
|
|
677
676
|
var ma10 = Math.round((sum / 10) * 100) / 100;
|
|
678
|
-
res[i] = __assign$
|
|
677
|
+
res[i] = __assign$5(__assign$5({}, list[i]), { ma10: ma10 });
|
|
679
678
|
}
|
|
680
679
|
}
|
|
681
680
|
return res;
|
|
@@ -689,13 +688,13 @@
|
|
|
689
688
|
var res = [];
|
|
690
689
|
for (var i = 0; i < list.length; i++) {
|
|
691
690
|
if (i < 19)
|
|
692
|
-
res[i] = __assign$
|
|
691
|
+
res[i] = __assign$5(__assign$5({}, list[i]), { ma20: null });
|
|
693
692
|
else {
|
|
694
693
|
var sum = list
|
|
695
694
|
.slice(i - 19, i + 1)
|
|
696
695
|
.reduce(function (pre, current) { return pre + current.c; }, 0);
|
|
697
696
|
var ma20 = Math.round((sum / 20) * 100) / 100;
|
|
698
|
-
res[i] = __assign$
|
|
697
|
+
res[i] = __assign$5(__assign$5({}, list[i]), { ma20: ma20 });
|
|
699
698
|
}
|
|
700
699
|
}
|
|
701
700
|
return res;
|
|
@@ -709,19 +708,19 @@
|
|
|
709
708
|
var res = [];
|
|
710
709
|
for (var i = 0; i < list.length; i++) {
|
|
711
710
|
if (i < 59)
|
|
712
|
-
res[i] = __assign$
|
|
711
|
+
res[i] = __assign$5(__assign$5({}, list[i]), { ma60: null });
|
|
713
712
|
else {
|
|
714
713
|
var sum = list
|
|
715
714
|
.slice(i - 59, i + 1)
|
|
716
715
|
.reduce(function (pre, current) { return pre + current.c; }, 0);
|
|
717
716
|
var ma60 = Math.round((sum / 60) * 100) / 100;
|
|
718
|
-
res[i] = __assign$
|
|
717
|
+
res[i] = __assign$5(__assign$5({}, list[i]), { ma60: ma60 });
|
|
719
718
|
}
|
|
720
719
|
}
|
|
721
720
|
return res;
|
|
722
721
|
}
|
|
723
722
|
});
|
|
724
|
-
Object.defineProperty(Ma.prototype, "
|
|
723
|
+
Object.defineProperty(Ma.prototype, "getMa", {
|
|
725
724
|
enumerable: false,
|
|
726
725
|
configurable: true,
|
|
727
726
|
writable: true,
|
|
@@ -729,56 +728,23 @@
|
|
|
729
728
|
var res = [];
|
|
730
729
|
for (var i = 0; i < list.length; i++) {
|
|
731
730
|
if (i < self - 1)
|
|
732
|
-
res[i] = __assign$
|
|
731
|
+
res[i] = __assign$5(__assign$5({}, list[i]), { ma: null });
|
|
733
732
|
else {
|
|
734
733
|
var sum = list
|
|
735
734
|
.slice(i - (self - 1), i + 1)
|
|
736
735
|
.reduce(function (pre, current) { return pre + current.c; }, 0);
|
|
737
|
-
var
|
|
738
|
-
res[i] = __assign$
|
|
736
|
+
var ma = Math.round((sum / self) * 100) / 100;
|
|
737
|
+
res[i] = __assign$5(__assign$5({}, list[i]), { ma: ma });
|
|
739
738
|
}
|
|
740
739
|
}
|
|
741
740
|
return res;
|
|
742
741
|
}
|
|
743
742
|
});
|
|
744
|
-
Object.defineProperty(Ma.prototype, "getBoll", {
|
|
745
|
-
enumerable: false,
|
|
746
|
-
configurable: true,
|
|
747
|
-
writable: true,
|
|
748
|
-
value: function (list) {
|
|
749
|
-
var res = [];
|
|
750
|
-
var _loop_1 = function (i) {
|
|
751
|
-
if (i < 24)
|
|
752
|
-
res[i] = __assign$4(__assign$4({}, list[i]), { ma25: undefined, bollUb: undefined, bollLb: undefined });
|
|
753
|
-
else {
|
|
754
|
-
// ma25
|
|
755
|
-
var sumMa25 = list
|
|
756
|
-
.slice(i - 24, i + 1)
|
|
757
|
-
.reduce(function (pre, current) { return pre + current.c; }, 0);
|
|
758
|
-
var ma25_1 = Math.round((sumMa25 / 25) * 100) / 100;
|
|
759
|
-
// 標準差
|
|
760
|
-
var sumBase = res
|
|
761
|
-
.slice(i - 24, i + 1)
|
|
762
|
-
.reduce(function (pre, current) {
|
|
763
|
-
return ma25_1 !== undefined
|
|
764
|
-
? pre + Math.pow(current.c - ma25_1, 2)
|
|
765
|
-
: pre;
|
|
766
|
-
}, 0);
|
|
767
|
-
var base = Math.round(Math.sqrt(sumBase / 25) * 100) / 100;
|
|
768
|
-
res[i] = __assign$4(__assign$4({}, list[i]), { ma25: ma25_1, bollUb: ma25_1 + 2 * base, bollLb: ma25_1 - 2 * base });
|
|
769
|
-
}
|
|
770
|
-
};
|
|
771
|
-
for (var i = 0; i < list.length; i++) {
|
|
772
|
-
_loop_1(i);
|
|
773
|
-
}
|
|
774
|
-
return res;
|
|
775
|
-
}
|
|
776
|
-
});
|
|
777
743
|
return Ma;
|
|
778
744
|
}());
|
|
779
745
|
|
|
780
|
-
var __assign$
|
|
781
|
-
__assign$
|
|
746
|
+
var __assign$4 = (undefined && undefined.__assign) || function () {
|
|
747
|
+
__assign$4 = Object.assign || function(t) {
|
|
782
748
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
783
749
|
s = arguments[i];
|
|
784
750
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
@@ -786,7 +752,7 @@
|
|
|
786
752
|
}
|
|
787
753
|
return t;
|
|
788
754
|
};
|
|
789
|
-
return __assign$
|
|
755
|
+
return __assign$4.apply(this, arguments);
|
|
790
756
|
};
|
|
791
757
|
var MACD = /** @class */ (function () {
|
|
792
758
|
function MACD() {
|
|
@@ -798,11 +764,11 @@
|
|
|
798
764
|
value: function (data) {
|
|
799
765
|
return {
|
|
800
766
|
dataset: [data],
|
|
801
|
-
ema12:
|
|
802
|
-
ema26:
|
|
767
|
+
ema12: null,
|
|
768
|
+
ema26: null,
|
|
803
769
|
dif: [],
|
|
804
|
-
macd:
|
|
805
|
-
osc:
|
|
770
|
+
macd: null,
|
|
771
|
+
osc: null,
|
|
806
772
|
};
|
|
807
773
|
}
|
|
808
774
|
});
|
|
@@ -816,7 +782,7 @@
|
|
|
816
782
|
if (preList.dataset.length > 34)
|
|
817
783
|
preList.dataset.shift();
|
|
818
784
|
// EMA12
|
|
819
|
-
var ema12 =
|
|
785
|
+
var ema12 = null;
|
|
820
786
|
if (preList.dataset.length === 12) {
|
|
821
787
|
ema12 = this.getStartEMA(preList.dataset);
|
|
822
788
|
ema12 = (ema12 * 11) / 13 + (this.getDI(data) * 2) / 13;
|
|
@@ -827,7 +793,7 @@
|
|
|
827
793
|
ema12 = Math.round(ema12 * 100) / 100;
|
|
828
794
|
}
|
|
829
795
|
// EMA26
|
|
830
|
-
var ema26 =
|
|
796
|
+
var ema26 = null;
|
|
831
797
|
if (preList.dataset.length === 26) {
|
|
832
798
|
ema26 = this.getStartEMA(preList.dataset);
|
|
833
799
|
ema26 = (ema26 * 25) / 27 + (this.getDI(data) * 2) / 27;
|
|
@@ -838,7 +804,7 @@
|
|
|
838
804
|
ema26 = Math.round(ema26 * 100) / 100;
|
|
839
805
|
}
|
|
840
806
|
// DIF
|
|
841
|
-
var dif =
|
|
807
|
+
var dif = null;
|
|
842
808
|
if (ema12 && ema26) {
|
|
843
809
|
dif = ema12 - ema26;
|
|
844
810
|
dif = Math.round(dif * 100) / 100;
|
|
@@ -847,10 +813,10 @@
|
|
|
847
813
|
(_b = preList.dif) === null || _b === void 0 ? void 0 : _b.shift();
|
|
848
814
|
}
|
|
849
815
|
// MACD & OSC
|
|
850
|
-
var macd =
|
|
851
|
-
var osc =
|
|
816
|
+
var macd = null;
|
|
817
|
+
var osc = null;
|
|
852
818
|
if (preList.dif.length === 9) {
|
|
853
|
-
if (preList.macd ===
|
|
819
|
+
if (preList.macd === null) {
|
|
854
820
|
macd = preList.dif.reduce(function (accumulator, currentValue) { return accumulator + currentValue; });
|
|
855
821
|
for (var i = 0; i < 9; i++) {
|
|
856
822
|
var item = preList.dif[i];
|
|
@@ -890,7 +856,7 @@
|
|
|
890
856
|
var DIF = this.getDIF(list, EMA12, EMA26);
|
|
891
857
|
var MACD9 = this.getMACD9(list, DIF);
|
|
892
858
|
for (var i = 0; i < list.length; i++) {
|
|
893
|
-
res[i] = Object.assign(list[i], DIF[i], MACD9[i]);
|
|
859
|
+
res[i] = Object.assign(list[i], DIF[i], MACD9[i], EMA12[i], EMA26[i]);
|
|
894
860
|
}
|
|
895
861
|
return res;
|
|
896
862
|
}
|
|
@@ -927,10 +893,10 @@
|
|
|
927
893
|
var res = [];
|
|
928
894
|
for (var i = 0; i < list.length; i++) {
|
|
929
895
|
if (i < 12)
|
|
930
|
-
res[i] = __assign$
|
|
896
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { EMA12: null });
|
|
931
897
|
else {
|
|
932
898
|
beforeEMA12 = (beforeEMA12 * 11) / 13 + (this.getDI(list[i]) * 2) / 13;
|
|
933
|
-
res[i] = __assign$
|
|
899
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { EMA12: beforeEMA12 });
|
|
934
900
|
}
|
|
935
901
|
}
|
|
936
902
|
return res;
|
|
@@ -946,10 +912,10 @@
|
|
|
946
912
|
var res = [];
|
|
947
913
|
for (var i = 0; i < list.length; i++) {
|
|
948
914
|
if (i < 26)
|
|
949
|
-
res[i] = __assign$
|
|
915
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { EMA26: null });
|
|
950
916
|
else {
|
|
951
917
|
beforeEMA26 = (beforeEMA26 * 25) / 27 + (this.getDI(list[i]) * 2) / 27;
|
|
952
|
-
res[i] = __assign$
|
|
918
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { EMA26: beforeEMA26 });
|
|
953
919
|
}
|
|
954
920
|
}
|
|
955
921
|
return res;
|
|
@@ -964,12 +930,12 @@
|
|
|
964
930
|
var res = [];
|
|
965
931
|
for (var i = 0; i < list.length; i++) {
|
|
966
932
|
if (i < 26)
|
|
967
|
-
res[i] = __assign$
|
|
933
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { DIF: null });
|
|
968
934
|
else {
|
|
969
935
|
var EMA12 = ((_a = ResEMA12 === null || ResEMA12 === void 0 ? void 0 : ResEMA12[i]) === null || _a === void 0 ? void 0 : _a["EMA12"]) && ResEMA12[i]["EMA12"];
|
|
970
936
|
var EMA26 = ((_b = ResEMA26 === null || ResEMA26 === void 0 ? void 0 : ResEMA26[i]) === null || _b === void 0 ? void 0 : _b["EMA26"]) && ResEMA26[i]["EMA26"];
|
|
971
937
|
var DIF = EMA12 - EMA26;
|
|
972
|
-
res[i] = __assign$
|
|
938
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { DIF: DIF });
|
|
973
939
|
}
|
|
974
940
|
}
|
|
975
941
|
return res;
|
|
@@ -984,19 +950,19 @@
|
|
|
984
950
|
var beforeMACD9 = 0;
|
|
985
951
|
for (var i = 0; i < list.length; i++) {
|
|
986
952
|
if (i < 26)
|
|
987
|
-
res[i] = __assign$
|
|
953
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { MACD9: null, OSC: null });
|
|
988
954
|
else if (i === 26) {
|
|
989
955
|
var MACD9 = DIF.slice(26, 34)
|
|
990
956
|
.map(function (item) { return ((item === null || item === void 0 ? void 0 : item.DIF) ? item["DIF"] : 0); })
|
|
991
957
|
.reduce(function (accumulator, currentValue) { return accumulator + currentValue; });
|
|
992
958
|
var OSC = DIF[i]["DIF"] - MACD9;
|
|
993
|
-
res[26] = __assign$
|
|
959
|
+
res[26] = __assign$4(__assign$4({}, list[i]), { MACD9: MACD9, OSC: OSC });
|
|
994
960
|
beforeMACD9 = MACD9;
|
|
995
961
|
}
|
|
996
962
|
else {
|
|
997
963
|
var MACD9 = beforeMACD9 + ((DIF[i]["DIF"] - beforeMACD9) * 2) / 10;
|
|
998
964
|
var OSC = DIF[i]["DIF"] - MACD9;
|
|
999
|
-
res[i] = __assign$
|
|
965
|
+
res[i] = __assign$4(__assign$4({}, list[i]), { MACD9: MACD9, OSC: OSC });
|
|
1000
966
|
beforeMACD9 = MACD9;
|
|
1001
967
|
}
|
|
1002
968
|
}
|
|
@@ -1006,8 +972,8 @@
|
|
|
1006
972
|
return MACD;
|
|
1007
973
|
}());
|
|
1008
974
|
|
|
1009
|
-
var __assign$
|
|
1010
|
-
__assign$
|
|
975
|
+
var __assign$3 = (undefined && undefined.__assign) || function () {
|
|
976
|
+
__assign$3 = Object.assign || function(t) {
|
|
1011
977
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
1012
978
|
s = arguments[i];
|
|
1013
979
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
@@ -1015,7 +981,7 @@
|
|
|
1015
981
|
}
|
|
1016
982
|
return t;
|
|
1017
983
|
};
|
|
1018
|
-
return __assign$
|
|
984
|
+
return __assign$3.apply(this, arguments);
|
|
1019
985
|
};
|
|
1020
986
|
var Rsi = /** @class */ (function () {
|
|
1021
987
|
function Rsi() {
|
|
@@ -1042,13 +1008,13 @@
|
|
|
1042
1008
|
var res = [];
|
|
1043
1009
|
// 前5筆
|
|
1044
1010
|
for (var i = 0; i < 5; i++) {
|
|
1045
|
-
res[i] = __assign$
|
|
1011
|
+
res[i] = __assign$3(__assign$3({}, list[i]), { rsi6: null });
|
|
1046
1012
|
}
|
|
1047
1013
|
// 第6筆Rsi
|
|
1048
1014
|
var beforeUpAvg = this.getStartUpAvg(list, 6);
|
|
1049
1015
|
var beforeDownAvg = this.getStartDownAvg(list, 6);
|
|
1050
1016
|
var firstRsi6 = this.getRsi(beforeUpAvg, beforeDownAvg);
|
|
1051
|
-
res[5] = __assign$
|
|
1017
|
+
res[5] = __assign$3(__assign$3({}, list[5]), { rsi6: firstRsi6 });
|
|
1052
1018
|
// else
|
|
1053
1019
|
for (var i = 6; i < list.length; i++) {
|
|
1054
1020
|
var minusU = 0;
|
|
@@ -1063,7 +1029,7 @@
|
|
|
1063
1029
|
beforeUpAvg = (beforeUpAvg * 5) / 6 + minusU / 6;
|
|
1064
1030
|
beforeDownAvg = (beforeDownAvg * 5) / 6 + Math.abs(minusD) / 6;
|
|
1065
1031
|
var rsi6 = this.getRsi(beforeUpAvg, beforeDownAvg);
|
|
1066
|
-
res[i] = __assign$
|
|
1032
|
+
res[i] = __assign$3(__assign$3({}, list[i]), { rsi6: Math.round(rsi6 * 100) / 100 });
|
|
1067
1033
|
}
|
|
1068
1034
|
return res;
|
|
1069
1035
|
}
|
|
@@ -1076,13 +1042,13 @@
|
|
|
1076
1042
|
var res = [];
|
|
1077
1043
|
// 前11筆
|
|
1078
1044
|
for (var i = 0; i < 11; i++) {
|
|
1079
|
-
res[i] = __assign$
|
|
1045
|
+
res[i] = __assign$3(__assign$3({}, list[i]), { rsi12: null });
|
|
1080
1046
|
}
|
|
1081
1047
|
// 第12筆Rsi
|
|
1082
1048
|
var beforeUpAvg = this.getStartUpAvg(list, 12);
|
|
1083
1049
|
var beforeDownAvg = this.getStartDownAvg(list, 12);
|
|
1084
1050
|
var firstRsi12 = this.getRsi(beforeUpAvg, beforeDownAvg);
|
|
1085
|
-
res[11] = __assign$
|
|
1051
|
+
res[11] = __assign$3(__assign$3({}, list[11]), { rsi12: firstRsi12 });
|
|
1086
1052
|
// else
|
|
1087
1053
|
for (var i = 12; i < list.length; i++) {
|
|
1088
1054
|
var minusU = 0;
|
|
@@ -1097,7 +1063,7 @@
|
|
|
1097
1063
|
beforeUpAvg = (beforeUpAvg * 11) / 12 + minusU / 12;
|
|
1098
1064
|
beforeDownAvg = (beforeDownAvg * 11) / 12 + Math.abs(minusD) / 12;
|
|
1099
1065
|
var rsi12 = this.getRsi(beforeUpAvg, beforeDownAvg);
|
|
1100
|
-
res[i] = __assign$
|
|
1066
|
+
res[i] = __assign$3(__assign$3({}, list[i]), { rsi12: Math.round(rsi12 * 100) / 100 });
|
|
1101
1067
|
}
|
|
1102
1068
|
return res;
|
|
1103
1069
|
}
|
|
@@ -1149,8 +1115,8 @@
|
|
|
1149
1115
|
return Rsi;
|
|
1150
1116
|
}());
|
|
1151
1117
|
|
|
1152
|
-
var __assign$
|
|
1153
|
-
__assign$
|
|
1118
|
+
var __assign$2 = (undefined && undefined.__assign) || function () {
|
|
1119
|
+
__assign$2 = Object.assign || function(t) {
|
|
1154
1120
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
1155
1121
|
s = arguments[i];
|
|
1156
1122
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
@@ -1158,7 +1124,7 @@
|
|
|
1158
1124
|
}
|
|
1159
1125
|
return t;
|
|
1160
1126
|
};
|
|
1161
|
-
return __assign$
|
|
1127
|
+
return __assign$2.apply(this, arguments);
|
|
1162
1128
|
};
|
|
1163
1129
|
var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {
|
|
1164
1130
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
@@ -1228,7 +1194,7 @@
|
|
|
1228
1194
|
else {
|
|
1229
1195
|
obv = currentVolume;
|
|
1230
1196
|
}
|
|
1231
|
-
res[i] = __assign$
|
|
1197
|
+
res[i] = __assign$2(__assign$2({}, list[i]), { obv: obv });
|
|
1232
1198
|
}
|
|
1233
1199
|
return res;
|
|
1234
1200
|
}
|
|
@@ -1263,7 +1229,7 @@
|
|
|
1263
1229
|
var ema = this.getStartEma(list.slice(0, period), period);
|
|
1264
1230
|
for (var i = 0; i < list.length; i++) {
|
|
1265
1231
|
if (i < period) {
|
|
1266
|
-
res.push(
|
|
1232
|
+
res.push(null);
|
|
1267
1233
|
continue;
|
|
1268
1234
|
}
|
|
1269
1235
|
ema = (list[i] * 2 + (period - 1) * ema) / (period + 1);
|
|
@@ -1330,8 +1296,8 @@
|
|
|
1330
1296
|
}
|
|
1331
1297
|
}
|
|
1332
1298
|
|
|
1333
|
-
var __assign = (undefined && undefined.__assign) || function () {
|
|
1334
|
-
__assign = Object.assign || function(t) {
|
|
1299
|
+
var __assign$1 = (undefined && undefined.__assign) || function () {
|
|
1300
|
+
__assign$1 = Object.assign || function(t) {
|
|
1335
1301
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
1336
1302
|
s = arguments[i];
|
|
1337
1303
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
@@ -1339,7 +1305,7 @@
|
|
|
1339
1305
|
}
|
|
1340
1306
|
return t;
|
|
1341
1307
|
};
|
|
1342
|
-
return __assign.apply(this, arguments);
|
|
1308
|
+
return __assign$1.apply(this, arguments);
|
|
1343
1309
|
};
|
|
1344
1310
|
var Williams = /** @class */ (function () {
|
|
1345
1311
|
function Williams() {
|
|
@@ -1366,7 +1332,7 @@
|
|
|
1366
1332
|
var res = [];
|
|
1367
1333
|
for (var i = 0; i < list.length; i++) {
|
|
1368
1334
|
if (i < 9)
|
|
1369
|
-
res[i] = __assign(__assign({}, list[i]), { williams9:
|
|
1335
|
+
res[i] = __assign$1(__assign$1({}, list[i]), { williams9: null });
|
|
1370
1336
|
else {
|
|
1371
1337
|
var maxList = list.slice(i - 8, i).map(function (item) { return item["h"]; });
|
|
1372
1338
|
var minList = list.slice(i - 8, i).map(function (item) { return item["l"]; });
|
|
@@ -1374,7 +1340,7 @@
|
|
|
1374
1340
|
var min = Math.min.apply(Math, minList);
|
|
1375
1341
|
var close_1 = list[i]["c"];
|
|
1376
1342
|
var williams9 = ((max - close_1) / (max - min)) * -100;
|
|
1377
|
-
res[i] = __assign(__assign({}, list[i]), { williams9: Math.round(williams9 * 100) / 100 });
|
|
1343
|
+
res[i] = __assign$1(__assign$1({}, list[i]), { williams9: Math.round(williams9 * 100) / 100 });
|
|
1378
1344
|
}
|
|
1379
1345
|
}
|
|
1380
1346
|
return res;
|
|
@@ -1388,7 +1354,7 @@
|
|
|
1388
1354
|
var res = [];
|
|
1389
1355
|
for (var i = 0; i < list.length; i++) {
|
|
1390
1356
|
if (i < 18)
|
|
1391
|
-
res[i] = __assign(__assign({}, list[i]), {
|
|
1357
|
+
res[i] = __assign$1(__assign$1({}, list[i]), { williams18: null });
|
|
1392
1358
|
else {
|
|
1393
1359
|
var maxList = list.slice(i - 17, i).map(function (item) { return item["h"]; });
|
|
1394
1360
|
var minList = list.slice(i - 17, i).map(function (item) { return item["l"]; });
|
|
@@ -1396,7 +1362,7 @@
|
|
|
1396
1362
|
var min = Math.min.apply(Math, minList);
|
|
1397
1363
|
var close_2 = list[i]["c"];
|
|
1398
1364
|
var williams18 = ((max - close_2) / (max - min)) * -100;
|
|
1399
|
-
res[i] = __assign(__assign({}, list[i]), { williams18: Math.round(williams18 * 100) / 100 });
|
|
1365
|
+
res[i] = __assign$1(__assign$1({}, list[i]), { williams18: Math.round(williams18 * 100) / 100 });
|
|
1400
1366
|
}
|
|
1401
1367
|
}
|
|
1402
1368
|
return res;
|
|
@@ -1405,6 +1371,105 @@
|
|
|
1405
1371
|
return Williams;
|
|
1406
1372
|
}());
|
|
1407
1373
|
|
|
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
|
+
|
|
1408
1473
|
function add(a, b) {
|
|
1409
1474
|
return a + b;
|
|
1410
1475
|
}
|
|
@@ -1413,6 +1478,7 @@
|
|
|
1413
1478
|
return a - b;
|
|
1414
1479
|
}
|
|
1415
1480
|
|
|
1481
|
+
exports.Boll = Boll;
|
|
1416
1482
|
exports.Ema = Ema;
|
|
1417
1483
|
exports.Gold = Gold;
|
|
1418
1484
|
exports.Kd = Kd;
|