@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.
Files changed (42) hide show
  1. package/dist/cjs/index.d.ts +1 -0
  2. package/dist/cjs/index.js +3 -1
  3. package/dist/cjs/stockSkills/boll.d.ts +58 -0
  4. package/dist/cjs/stockSkills/boll.js +101 -0
  5. package/dist/cjs/stockSkills/boll.test.d.ts +1 -0
  6. package/dist/cjs/stockSkills/boll.test.js +36 -0
  7. package/dist/cjs/stockSkills/ema.d.ts +2 -2
  8. package/dist/cjs/stockSkills/ema.js +1 -1
  9. package/dist/cjs/stockSkills/kd.d.ts +22 -22
  10. package/dist/cjs/stockSkills/kd.js +10 -10
  11. package/dist/cjs/stockSkills/ma.d.ts +13 -23
  12. package/dist/cjs/stockSkills/ma.js +9 -43
  13. package/dist/cjs/stockSkills/ma.test.js +3 -20
  14. package/dist/cjs/stockSkills/macd.d.ts +34 -34
  15. package/dist/cjs/stockSkills/macd.js +15 -15
  16. package/dist/cjs/stockSkills/macd.test.js +2 -0
  17. package/dist/cjs/stockSkills/rsi.d.ts +4 -4
  18. package/dist/cjs/stockSkills/rsi.js +2 -2
  19. package/dist/cjs/stockSkills/williams.d.ts +4 -4
  20. package/dist/cjs/stockSkills/williams.js +2 -2
  21. package/dist/esm/index.d.ts +1 -0
  22. package/dist/esm/index.js +1 -0
  23. package/dist/esm/stockSkills/boll.d.ts +58 -0
  24. package/dist/esm/stockSkills/boll.js +99 -0
  25. package/dist/esm/stockSkills/boll.test.d.ts +1 -0
  26. package/dist/esm/stockSkills/boll.test.js +34 -0
  27. package/dist/esm/stockSkills/ema.d.ts +2 -2
  28. package/dist/esm/stockSkills/ema.js +1 -1
  29. package/dist/esm/stockSkills/kd.d.ts +22 -22
  30. package/dist/esm/stockSkills/kd.js +10 -10
  31. package/dist/esm/stockSkills/ma.d.ts +13 -23
  32. package/dist/esm/stockSkills/ma.js +9 -43
  33. package/dist/esm/stockSkills/ma.test.js +3 -20
  34. package/dist/esm/stockSkills/macd.d.ts +34 -34
  35. package/dist/esm/stockSkills/macd.js +15 -15
  36. package/dist/esm/stockSkills/macd.test.js +2 -0
  37. package/dist/esm/stockSkills/rsi.d.ts +4 -4
  38. package/dist/esm/stockSkills/rsi.js +2 -2
  39. package/dist/esm/stockSkills/williams.d.ts +4 -4
  40. package/dist/esm/stockSkills/williams.js +2 -2
  41. package/dist/umd/index.js +180 -114
  42. 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$6 = (undefined && undefined.__assign) || function () {
178
- __assign$6 = Object.assign || function(t) {
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$6.apply(this, arguments);
186
+ return __assign$7.apply(this, arguments);
187
187
  };
188
188
  function addDetail(obj, list, detail) {
189
189
  if (detail)
190
- return __assign$6(__assign$6({}, obj), { detail: list });
190
+ return __assign$7(__assign$7({}, obj), { detail: list });
191
191
  else
192
- return __assign$6({}, obj);
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$5 = (undefined && undefined.__assign) || function () {
464
- __assign$5 = Object.assign || function(t) {
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$5.apply(this, arguments);
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: undefined,
485
- k: undefined,
486
- d: undefined,
487
- "k-d": undefined,
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: undefined,
501
- k: undefined,
502
- d: undefined,
503
- "k-d": undefined,
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$5(__assign$5({}, list[i]), { rsv: undefined });
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$5(__assign$5({}, list[i]), { rsv: rsv });
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$5(__assign$5({}, list[i]), { rsv: undefined, k: undefined, d: undefined, "k-d": undefined });
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$5(__assign$5({}, list[i]), { rsv: rsv, k: k, d: d, "k-d": k_d });
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$4 = (undefined && undefined.__assign) || function () {
587
- __assign$4 = Object.assign || function(t) {
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$4.apply(this, arguments);
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], responseBoll[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$4(__assign$4({}, list[i]), { ma5: undefined });
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$4(__assign$4({}, list[i]), { ma5: ma5 });
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$4(__assign$4({}, list[i]), { ma10: undefined });
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$4(__assign$4({}, list[i]), { ma10: ma10 });
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$4(__assign$4({}, list[i]), { ma20: undefined });
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$4(__assign$4({}, list[i]), { ma20: ma20 });
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$4(__assign$4({}, list[i]), { ma60: undefined });
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$4(__assign$4({}, list[i]), { ma60: ma60 });
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, "getMaSelf", {
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$4(__assign$4({}, list[i]), { maSelf: undefined });
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 maSelf = Math.round((sum / self) * 100) / 100;
738
- res[i] = __assign$4(__assign$4({}, list[i]), { maSelf: maSelf });
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$3 = (undefined && undefined.__assign) || function () {
781
- __assign$3 = Object.assign || function(t) {
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$3.apply(this, arguments);
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: undefined,
802
- ema26: undefined,
767
+ ema12: null,
768
+ ema26: null,
803
769
  dif: [],
804
- macd: undefined,
805
- osc: undefined,
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 = undefined;
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 = undefined;
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 = undefined;
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 = undefined;
851
- var osc = undefined;
816
+ var macd = null;
817
+ var osc = null;
852
818
  if (preList.dif.length === 9) {
853
- if (preList.macd === undefined) {
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$3(__assign$3({}, list[i]), { EMA12: undefined });
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$3(__assign$3({}, list[i]), { EMA12: beforeEMA12 });
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$3(__assign$3({}, list[i]), { EMA26: undefined });
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$3(__assign$3({}, list[i]), { EMA26: beforeEMA26 });
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$3(__assign$3({}, list[i]), { DIF: undefined });
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$3(__assign$3({}, list[i]), { DIF: DIF });
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$3(__assign$3({}, list[i]), { MACD9: undefined, OSC: undefined });
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$3(__assign$3({}, list[i]), { MACD9: MACD9, OSC: OSC });
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$3(__assign$3({}, list[i]), { MACD9: MACD9, OSC: OSC });
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$2 = (undefined && undefined.__assign) || function () {
1010
- __assign$2 = Object.assign || function(t) {
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$2.apply(this, arguments);
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$2(__assign$2({}, list[i]), { rsi6: undefined });
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$2(__assign$2({}, list[5]), { rsi6: firstRsi6 });
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$2(__assign$2({}, list[i]), { rsi6: Math.round(rsi6 * 100) / 100 });
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$2(__assign$2({}, list[i]), { rsi12: undefined });
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$2(__assign$2({}, list[11]), { rsi12: firstRsi12 });
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$2(__assign$2({}, list[i]), { rsi12: Math.round(rsi12 * 100) / 100 });
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$1 = (undefined && undefined.__assign) || function () {
1153
- __assign$1 = Object.assign || function(t) {
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$1.apply(this, arguments);
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$1(__assign$1({}, list[i]), { obv: obv });
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(undefined);
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: undefined });
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]), { williams9: undefined });
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;