oakscriptjs 0.7.0 → 0.7.1
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/index.cjs +61 -35
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +61 -35
- package/dist/math/index.d.ts.map +1 -1
- package/dist/script/index.cjs +60 -34
- package/dist/script/index.mjs +60 -34
- package/dist/ta/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -196,19 +196,32 @@ __export(ta_exports, {
|
|
|
196
196
|
function sma(source, length2) {
|
|
197
197
|
const result = [];
|
|
198
198
|
const len = Math.floor(length2);
|
|
199
|
+
const window = [];
|
|
199
200
|
for (let i = 0; i < source.length; i++) {
|
|
200
|
-
|
|
201
|
+
const v = source[i];
|
|
202
|
+
if (v !== void 0 && v !== null && !Number.isNaN(v)) {
|
|
203
|
+
window.push(v);
|
|
204
|
+
if (window.length > len) window.shift();
|
|
205
|
+
}
|
|
206
|
+
if (window.length < len) {
|
|
201
207
|
result.push(NaN);
|
|
202
208
|
} else {
|
|
203
209
|
let sum4 = 0;
|
|
204
|
-
for (
|
|
205
|
-
sum4 += source[i - j];
|
|
206
|
-
}
|
|
210
|
+
for (const x of window) sum4 += x;
|
|
207
211
|
result.push(sum4 / len);
|
|
208
212
|
}
|
|
209
213
|
}
|
|
210
214
|
return result;
|
|
211
215
|
}
|
|
216
|
+
function strictWindowMean(source, length2) {
|
|
217
|
+
const len = Math.floor(length2);
|
|
218
|
+
return Array.from({ length: source.length }, (_, i) => {
|
|
219
|
+
if (i < len - 1) return NaN;
|
|
220
|
+
let sum4 = 0;
|
|
221
|
+
for (let j = 0; j < len; j++) sum4 += source[i - j];
|
|
222
|
+
return sum4 / len;
|
|
223
|
+
});
|
|
224
|
+
}
|
|
212
225
|
function ema(source, length2) {
|
|
213
226
|
const result = [];
|
|
214
227
|
const len = Math.floor(length2);
|
|
@@ -238,8 +251,10 @@ function ema(source, length2) {
|
|
|
238
251
|
const val = source[i];
|
|
239
252
|
if (val !== void 0 && !isNaN(val)) {
|
|
240
253
|
emaValue = (val - emaValue) * multiplier + emaValue;
|
|
254
|
+
result.push(emaValue);
|
|
255
|
+
} else {
|
|
256
|
+
result.push(NaN);
|
|
241
257
|
}
|
|
242
|
-
result.push(emaValue);
|
|
243
258
|
}
|
|
244
259
|
}
|
|
245
260
|
return result;
|
|
@@ -489,19 +504,25 @@ function rma(source, length2) {
|
|
|
489
504
|
function wma(source, length2) {
|
|
490
505
|
const result = [];
|
|
491
506
|
const len = Math.floor(length2);
|
|
507
|
+
const filled = [];
|
|
508
|
+
let last2 = NaN;
|
|
492
509
|
for (let i = 0; i < source.length; i++) {
|
|
493
|
-
|
|
510
|
+
const v = source[i];
|
|
511
|
+
const isNa = v === void 0 || v === null || Number.isNaN(v);
|
|
512
|
+
if (!isNa) last2 = v;
|
|
513
|
+
filled.push(last2);
|
|
514
|
+
if (isNa || i < len - 1) {
|
|
494
515
|
result.push(NaN);
|
|
495
|
-
|
|
496
|
-
let sum4 = 0;
|
|
497
|
-
let weightSum = 0;
|
|
498
|
-
for (let j = 0; j < len; j++) {
|
|
499
|
-
const weight = len - j;
|
|
500
|
-
sum4 += source[i - j] * weight;
|
|
501
|
-
weightSum += weight;
|
|
502
|
-
}
|
|
503
|
-
result.push(sum4 / weightSum);
|
|
516
|
+
continue;
|
|
504
517
|
}
|
|
518
|
+
let sum4 = 0;
|
|
519
|
+
let weightSum = 0;
|
|
520
|
+
for (let j = 0; j < len; j++) {
|
|
521
|
+
const weight = len - j;
|
|
522
|
+
sum4 += filled[i - j] * weight;
|
|
523
|
+
weightSum += weight;
|
|
524
|
+
}
|
|
525
|
+
result.push(sum4 / weightSum);
|
|
505
526
|
}
|
|
506
527
|
return result;
|
|
507
528
|
}
|
|
@@ -610,7 +631,7 @@ function mom(source, length2) {
|
|
|
610
631
|
}
|
|
611
632
|
function dev(source, length2) {
|
|
612
633
|
const result = [];
|
|
613
|
-
const meanValues =
|
|
634
|
+
const meanValues = strictWindowMean(source, length2);
|
|
614
635
|
for (let i = 0; i < source.length; i++) {
|
|
615
636
|
if (i < length2 - 1 || isNaN(meanValues[i])) {
|
|
616
637
|
result.push(NaN);
|
|
@@ -628,23 +649,23 @@ function dev(source, length2) {
|
|
|
628
649
|
}
|
|
629
650
|
function variance(source, length2, biased = true) {
|
|
630
651
|
const result = [];
|
|
631
|
-
const
|
|
652
|
+
const len = Math.floor(length2);
|
|
653
|
+
const window = [];
|
|
632
654
|
for (let i = 0; i < source.length; i++) {
|
|
633
|
-
|
|
655
|
+
const v = source[i];
|
|
656
|
+
if (v !== void 0 && v !== null && !Number.isNaN(v)) {
|
|
657
|
+
window.push(v);
|
|
658
|
+
if (window.length > len) window.shift();
|
|
659
|
+
}
|
|
660
|
+
const divisor = biased ? len : len - 1;
|
|
661
|
+
if (window.length < len || divisor <= 0) {
|
|
634
662
|
result.push(NaN);
|
|
635
|
-
|
|
636
|
-
let sumSquares = 0;
|
|
637
|
-
let count = 0;
|
|
638
|
-
for (let j = 0; j < length2; j++) {
|
|
639
|
-
if (!isNaN(source[i - j])) {
|
|
640
|
-
const diff2 = source[i - j] - meanValues[i];
|
|
641
|
-
sumSquares += diff2 * diff2;
|
|
642
|
-
count++;
|
|
643
|
-
}
|
|
644
|
-
}
|
|
645
|
-
const divisor = biased ? count : count - 1;
|
|
646
|
-
result.push(divisor > 0 ? sumSquares / divisor : NaN);
|
|
663
|
+
continue;
|
|
647
664
|
}
|
|
665
|
+
const mean = window.reduce((a, x) => a + x, 0) / len;
|
|
666
|
+
let sumSquares = 0;
|
|
667
|
+
for (const x of window) sumSquares += (x - mean) * (x - mean);
|
|
668
|
+
result.push(sumSquares / divisor);
|
|
648
669
|
}
|
|
649
670
|
return result;
|
|
650
671
|
}
|
|
@@ -2621,14 +2642,19 @@ function avg(...values2) {
|
|
|
2621
2642
|
function sum(source, length2) {
|
|
2622
2643
|
const sourceArray = source instanceof Series ? source.toArray() : source;
|
|
2623
2644
|
const result = [];
|
|
2645
|
+
const len = Math.floor(length2);
|
|
2646
|
+
const window = [];
|
|
2624
2647
|
for (let i = 0; i < sourceArray.length; i++) {
|
|
2625
|
-
|
|
2648
|
+
const v = sourceArray[i];
|
|
2649
|
+
if (v !== void 0 && v !== null && !Number.isNaN(v)) {
|
|
2650
|
+
window.push(v);
|
|
2651
|
+
if (window.length > len) window.shift();
|
|
2652
|
+
}
|
|
2653
|
+
if (window.length < len) {
|
|
2626
2654
|
result.push(NaN);
|
|
2627
2655
|
} else {
|
|
2628
2656
|
let total = 0;
|
|
2629
|
-
for (
|
|
2630
|
-
total += sourceArray[i - j];
|
|
2631
|
-
}
|
|
2657
|
+
for (const x of window) total += x;
|
|
2632
2658
|
result.push(total);
|
|
2633
2659
|
}
|
|
2634
2660
|
}
|
|
@@ -7838,7 +7864,7 @@ var SimpleInputAdapter = class {
|
|
|
7838
7864
|
};
|
|
7839
7865
|
|
|
7840
7866
|
// src/index.ts
|
|
7841
|
-
var VERSION = "0.7.
|
|
7867
|
+
var VERSION = "0.7.1";
|
|
7842
7868
|
var info2 = {
|
|
7843
7869
|
name: "OakScriptJS",
|
|
7844
7870
|
version: VERSION,
|
package/dist/index.d.ts
CHANGED
|
@@ -37,7 +37,7 @@ export { input_int, input_float, input_bool, input_string, input_source, input_t
|
|
|
37
37
|
export type { OakScriptContext, ChartAdapter, InputAdapter, SeriesHandle, SeriesOptions, InputConfig, InputOptions, OhlcvData, PlotConfig, HLineConfig, FillConfig, } from './runtime/types';
|
|
38
38
|
export { LightweightChartsAdapter } from './runtime/adapters/LightweightChartsAdapter';
|
|
39
39
|
export { SimpleInputAdapter } from './runtime/adapters/SimpleInputAdapter';
|
|
40
|
-
export declare const VERSION = "0.7.
|
|
40
|
+
export declare const VERSION = "0.7.1";
|
|
41
41
|
export declare const info: {
|
|
42
42
|
name: string;
|
|
43
43
|
version: string;
|
package/dist/index.mjs
CHANGED
|
@@ -88,19 +88,32 @@ __export(ta_exports, {
|
|
|
88
88
|
function sma(source, length2) {
|
|
89
89
|
const result = [];
|
|
90
90
|
const len = Math.floor(length2);
|
|
91
|
+
const window = [];
|
|
91
92
|
for (let i = 0; i < source.length; i++) {
|
|
92
|
-
|
|
93
|
+
const v = source[i];
|
|
94
|
+
if (v !== void 0 && v !== null && !Number.isNaN(v)) {
|
|
95
|
+
window.push(v);
|
|
96
|
+
if (window.length > len) window.shift();
|
|
97
|
+
}
|
|
98
|
+
if (window.length < len) {
|
|
93
99
|
result.push(NaN);
|
|
94
100
|
} else {
|
|
95
101
|
let sum4 = 0;
|
|
96
|
-
for (
|
|
97
|
-
sum4 += source[i - j];
|
|
98
|
-
}
|
|
102
|
+
for (const x of window) sum4 += x;
|
|
99
103
|
result.push(sum4 / len);
|
|
100
104
|
}
|
|
101
105
|
}
|
|
102
106
|
return result;
|
|
103
107
|
}
|
|
108
|
+
function strictWindowMean(source, length2) {
|
|
109
|
+
const len = Math.floor(length2);
|
|
110
|
+
return Array.from({ length: source.length }, (_, i) => {
|
|
111
|
+
if (i < len - 1) return NaN;
|
|
112
|
+
let sum4 = 0;
|
|
113
|
+
for (let j = 0; j < len; j++) sum4 += source[i - j];
|
|
114
|
+
return sum4 / len;
|
|
115
|
+
});
|
|
116
|
+
}
|
|
104
117
|
function ema(source, length2) {
|
|
105
118
|
const result = [];
|
|
106
119
|
const len = Math.floor(length2);
|
|
@@ -130,8 +143,10 @@ function ema(source, length2) {
|
|
|
130
143
|
const val = source[i];
|
|
131
144
|
if (val !== void 0 && !isNaN(val)) {
|
|
132
145
|
emaValue = (val - emaValue) * multiplier + emaValue;
|
|
146
|
+
result.push(emaValue);
|
|
147
|
+
} else {
|
|
148
|
+
result.push(NaN);
|
|
133
149
|
}
|
|
134
|
-
result.push(emaValue);
|
|
135
150
|
}
|
|
136
151
|
}
|
|
137
152
|
return result;
|
|
@@ -381,19 +396,25 @@ function rma(source, length2) {
|
|
|
381
396
|
function wma(source, length2) {
|
|
382
397
|
const result = [];
|
|
383
398
|
const len = Math.floor(length2);
|
|
399
|
+
const filled = [];
|
|
400
|
+
let last2 = NaN;
|
|
384
401
|
for (let i = 0; i < source.length; i++) {
|
|
385
|
-
|
|
402
|
+
const v = source[i];
|
|
403
|
+
const isNa = v === void 0 || v === null || Number.isNaN(v);
|
|
404
|
+
if (!isNa) last2 = v;
|
|
405
|
+
filled.push(last2);
|
|
406
|
+
if (isNa || i < len - 1) {
|
|
386
407
|
result.push(NaN);
|
|
387
|
-
|
|
388
|
-
let sum4 = 0;
|
|
389
|
-
let weightSum = 0;
|
|
390
|
-
for (let j = 0; j < len; j++) {
|
|
391
|
-
const weight = len - j;
|
|
392
|
-
sum4 += source[i - j] * weight;
|
|
393
|
-
weightSum += weight;
|
|
394
|
-
}
|
|
395
|
-
result.push(sum4 / weightSum);
|
|
408
|
+
continue;
|
|
396
409
|
}
|
|
410
|
+
let sum4 = 0;
|
|
411
|
+
let weightSum = 0;
|
|
412
|
+
for (let j = 0; j < len; j++) {
|
|
413
|
+
const weight = len - j;
|
|
414
|
+
sum4 += filled[i - j] * weight;
|
|
415
|
+
weightSum += weight;
|
|
416
|
+
}
|
|
417
|
+
result.push(sum4 / weightSum);
|
|
397
418
|
}
|
|
398
419
|
return result;
|
|
399
420
|
}
|
|
@@ -502,7 +523,7 @@ function mom(source, length2) {
|
|
|
502
523
|
}
|
|
503
524
|
function dev(source, length2) {
|
|
504
525
|
const result = [];
|
|
505
|
-
const meanValues =
|
|
526
|
+
const meanValues = strictWindowMean(source, length2);
|
|
506
527
|
for (let i = 0; i < source.length; i++) {
|
|
507
528
|
if (i < length2 - 1 || isNaN(meanValues[i])) {
|
|
508
529
|
result.push(NaN);
|
|
@@ -520,23 +541,23 @@ function dev(source, length2) {
|
|
|
520
541
|
}
|
|
521
542
|
function variance(source, length2, biased = true) {
|
|
522
543
|
const result = [];
|
|
523
|
-
const
|
|
544
|
+
const len = Math.floor(length2);
|
|
545
|
+
const window = [];
|
|
524
546
|
for (let i = 0; i < source.length; i++) {
|
|
525
|
-
|
|
547
|
+
const v = source[i];
|
|
548
|
+
if (v !== void 0 && v !== null && !Number.isNaN(v)) {
|
|
549
|
+
window.push(v);
|
|
550
|
+
if (window.length > len) window.shift();
|
|
551
|
+
}
|
|
552
|
+
const divisor = biased ? len : len - 1;
|
|
553
|
+
if (window.length < len || divisor <= 0) {
|
|
526
554
|
result.push(NaN);
|
|
527
|
-
|
|
528
|
-
let sumSquares = 0;
|
|
529
|
-
let count = 0;
|
|
530
|
-
for (let j = 0; j < length2; j++) {
|
|
531
|
-
if (!isNaN(source[i - j])) {
|
|
532
|
-
const diff2 = source[i - j] - meanValues[i];
|
|
533
|
-
sumSquares += diff2 * diff2;
|
|
534
|
-
count++;
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
const divisor = biased ? count : count - 1;
|
|
538
|
-
result.push(divisor > 0 ? sumSquares / divisor : NaN);
|
|
555
|
+
continue;
|
|
539
556
|
}
|
|
557
|
+
const mean = window.reduce((a, x) => a + x, 0) / len;
|
|
558
|
+
let sumSquares = 0;
|
|
559
|
+
for (const x of window) sumSquares += (x - mean) * (x - mean);
|
|
560
|
+
result.push(sumSquares / divisor);
|
|
540
561
|
}
|
|
541
562
|
return result;
|
|
542
563
|
}
|
|
@@ -2513,14 +2534,19 @@ function avg(...values2) {
|
|
|
2513
2534
|
function sum(source, length2) {
|
|
2514
2535
|
const sourceArray = source instanceof Series ? source.toArray() : source;
|
|
2515
2536
|
const result = [];
|
|
2537
|
+
const len = Math.floor(length2);
|
|
2538
|
+
const window = [];
|
|
2516
2539
|
for (let i = 0; i < sourceArray.length; i++) {
|
|
2517
|
-
|
|
2540
|
+
const v = sourceArray[i];
|
|
2541
|
+
if (v !== void 0 && v !== null && !Number.isNaN(v)) {
|
|
2542
|
+
window.push(v);
|
|
2543
|
+
if (window.length > len) window.shift();
|
|
2544
|
+
}
|
|
2545
|
+
if (window.length < len) {
|
|
2518
2546
|
result.push(NaN);
|
|
2519
2547
|
} else {
|
|
2520
2548
|
let total = 0;
|
|
2521
|
-
for (
|
|
2522
|
-
total += sourceArray[i - j];
|
|
2523
|
-
}
|
|
2549
|
+
for (const x of window) total += x;
|
|
2524
2550
|
result.push(total);
|
|
2525
2551
|
}
|
|
2526
2552
|
}
|
|
@@ -7730,7 +7756,7 @@ var SimpleInputAdapter = class {
|
|
|
7730
7756
|
};
|
|
7731
7757
|
|
|
7732
7758
|
// src/index.ts
|
|
7733
|
-
var VERSION = "0.7.
|
|
7759
|
+
var VERSION = "0.7.1";
|
|
7734
7760
|
var info2 = {
|
|
7735
7761
|
name: "OakScriptJS",
|
|
7736
7762
|
version: VERSION,
|
package/dist/math/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/math/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAsB3C,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;AAC3C,wBAAgB,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC;AAyCzC,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;AAC5C,wBAAgB,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC;AAyCxC,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;AAC7C,wBAAgB,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC;AA2CzC,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC;AAC9D,wBAAgB,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC;AAqD5D,wBAAgB,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,GAAG,KAAK,GAAG,MAAM,CA4BjE;AAwBD,wBAAgB,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,GAAG,KAAK,GAAG,MAAM,CA4BjE;AAuBD,wBAAgB,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,GAAG,KAAK,GAAG,MAAM,CA6BjE;AAuBD,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC;AAChE,wBAAgB,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/math/index.ts"],"names":[],"mappings":"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"}
|
package/dist/script/index.cjs
CHANGED
|
@@ -706,19 +706,32 @@ __export(ta_series_exports, {
|
|
|
706
706
|
function sma(source, length2) {
|
|
707
707
|
const result = [];
|
|
708
708
|
const len = Math.floor(length2);
|
|
709
|
+
const window = [];
|
|
709
710
|
for (let i = 0; i < source.length; i++) {
|
|
710
|
-
|
|
711
|
+
const v = source[i];
|
|
712
|
+
if (v !== void 0 && v !== null && !Number.isNaN(v)) {
|
|
713
|
+
window.push(v);
|
|
714
|
+
if (window.length > len) window.shift();
|
|
715
|
+
}
|
|
716
|
+
if (window.length < len) {
|
|
711
717
|
result.push(NaN);
|
|
712
718
|
} else {
|
|
713
719
|
let sum2 = 0;
|
|
714
|
-
for (
|
|
715
|
-
sum2 += source[i - j];
|
|
716
|
-
}
|
|
720
|
+
for (const x of window) sum2 += x;
|
|
717
721
|
result.push(sum2 / len);
|
|
718
722
|
}
|
|
719
723
|
}
|
|
720
724
|
return result;
|
|
721
725
|
}
|
|
726
|
+
function strictWindowMean(source, length2) {
|
|
727
|
+
const len = Math.floor(length2);
|
|
728
|
+
return Array.from({ length: source.length }, (_, i) => {
|
|
729
|
+
if (i < len - 1) return NaN;
|
|
730
|
+
let sum2 = 0;
|
|
731
|
+
for (let j = 0; j < len; j++) sum2 += source[i - j];
|
|
732
|
+
return sum2 / len;
|
|
733
|
+
});
|
|
734
|
+
}
|
|
722
735
|
function ema(source, length2) {
|
|
723
736
|
const result = [];
|
|
724
737
|
const len = Math.floor(length2);
|
|
@@ -748,8 +761,10 @@ function ema(source, length2) {
|
|
|
748
761
|
const val = source[i];
|
|
749
762
|
if (val !== void 0 && !isNaN(val)) {
|
|
750
763
|
emaValue = (val - emaValue) * multiplier + emaValue;
|
|
764
|
+
result.push(emaValue);
|
|
765
|
+
} else {
|
|
766
|
+
result.push(NaN);
|
|
751
767
|
}
|
|
752
|
-
result.push(emaValue);
|
|
753
768
|
}
|
|
754
769
|
}
|
|
755
770
|
return result;
|
|
@@ -999,19 +1014,25 @@ function rma(source, length2) {
|
|
|
999
1014
|
function wma(source, length2) {
|
|
1000
1015
|
const result = [];
|
|
1001
1016
|
const len = Math.floor(length2);
|
|
1017
|
+
const filled = [];
|
|
1018
|
+
let last = NaN;
|
|
1002
1019
|
for (let i = 0; i < source.length; i++) {
|
|
1003
|
-
|
|
1020
|
+
const v = source[i];
|
|
1021
|
+
const isNa = v === void 0 || v === null || Number.isNaN(v);
|
|
1022
|
+
if (!isNa) last = v;
|
|
1023
|
+
filled.push(last);
|
|
1024
|
+
if (isNa || i < len - 1) {
|
|
1004
1025
|
result.push(NaN);
|
|
1005
|
-
|
|
1006
|
-
let sum2 = 0;
|
|
1007
|
-
let weightSum = 0;
|
|
1008
|
-
for (let j = 0; j < len; j++) {
|
|
1009
|
-
const weight = len - j;
|
|
1010
|
-
sum2 += source[i - j] * weight;
|
|
1011
|
-
weightSum += weight;
|
|
1012
|
-
}
|
|
1013
|
-
result.push(sum2 / weightSum);
|
|
1026
|
+
continue;
|
|
1014
1027
|
}
|
|
1028
|
+
let sum2 = 0;
|
|
1029
|
+
let weightSum = 0;
|
|
1030
|
+
for (let j = 0; j < len; j++) {
|
|
1031
|
+
const weight = len - j;
|
|
1032
|
+
sum2 += filled[i - j] * weight;
|
|
1033
|
+
weightSum += weight;
|
|
1034
|
+
}
|
|
1035
|
+
result.push(sum2 / weightSum);
|
|
1015
1036
|
}
|
|
1016
1037
|
return result;
|
|
1017
1038
|
}
|
|
@@ -1120,7 +1141,7 @@ function mom(source, length2) {
|
|
|
1120
1141
|
}
|
|
1121
1142
|
function dev(source, length2) {
|
|
1122
1143
|
const result = [];
|
|
1123
|
-
const meanValues =
|
|
1144
|
+
const meanValues = strictWindowMean(source, length2);
|
|
1124
1145
|
for (let i = 0; i < source.length; i++) {
|
|
1125
1146
|
if (i < length2 - 1 || isNaN(meanValues[i])) {
|
|
1126
1147
|
result.push(NaN);
|
|
@@ -1138,23 +1159,23 @@ function dev(source, length2) {
|
|
|
1138
1159
|
}
|
|
1139
1160
|
function variance(source, length2, biased = true) {
|
|
1140
1161
|
const result = [];
|
|
1141
|
-
const
|
|
1162
|
+
const len = Math.floor(length2);
|
|
1163
|
+
const window = [];
|
|
1142
1164
|
for (let i = 0; i < source.length; i++) {
|
|
1143
|
-
|
|
1165
|
+
const v = source[i];
|
|
1166
|
+
if (v !== void 0 && v !== null && !Number.isNaN(v)) {
|
|
1167
|
+
window.push(v);
|
|
1168
|
+
if (window.length > len) window.shift();
|
|
1169
|
+
}
|
|
1170
|
+
const divisor = biased ? len : len - 1;
|
|
1171
|
+
if (window.length < len || divisor <= 0) {
|
|
1144
1172
|
result.push(NaN);
|
|
1145
|
-
|
|
1146
|
-
let sumSquares = 0;
|
|
1147
|
-
let count = 0;
|
|
1148
|
-
for (let j = 0; j < length2; j++) {
|
|
1149
|
-
if (!isNaN(source[i - j])) {
|
|
1150
|
-
const diff = source[i - j] - meanValues[i];
|
|
1151
|
-
sumSquares += diff * diff;
|
|
1152
|
-
count++;
|
|
1153
|
-
}
|
|
1154
|
-
}
|
|
1155
|
-
const divisor = biased ? count : count - 1;
|
|
1156
|
-
result.push(divisor > 0 ? sumSquares / divisor : NaN);
|
|
1173
|
+
continue;
|
|
1157
1174
|
}
|
|
1175
|
+
const mean = window.reduce((a, x) => a + x, 0) / len;
|
|
1176
|
+
let sumSquares = 0;
|
|
1177
|
+
for (const x of window) sumSquares += (x - mean) * (x - mean);
|
|
1178
|
+
result.push(sumSquares / divisor);
|
|
1158
1179
|
}
|
|
1159
1180
|
return result;
|
|
1160
1181
|
}
|
|
@@ -5072,14 +5093,19 @@ function avg(...values) {
|
|
|
5072
5093
|
function sum(source, length2) {
|
|
5073
5094
|
const sourceArray = source instanceof Series ? source.toArray() : source;
|
|
5074
5095
|
const result = [];
|
|
5096
|
+
const len = Math.floor(length2);
|
|
5097
|
+
const window = [];
|
|
5075
5098
|
for (let i = 0; i < sourceArray.length; i++) {
|
|
5076
|
-
|
|
5099
|
+
const v = sourceArray[i];
|
|
5100
|
+
if (v !== void 0 && v !== null && !Number.isNaN(v)) {
|
|
5101
|
+
window.push(v);
|
|
5102
|
+
if (window.length > len) window.shift();
|
|
5103
|
+
}
|
|
5104
|
+
if (window.length < len) {
|
|
5077
5105
|
result.push(NaN);
|
|
5078
5106
|
} else {
|
|
5079
5107
|
let total = 0;
|
|
5080
|
-
for (
|
|
5081
|
-
total += sourceArray[i - j];
|
|
5082
|
-
}
|
|
5108
|
+
for (const x of window) total += x;
|
|
5083
5109
|
result.push(total);
|
|
5084
5110
|
}
|
|
5085
5111
|
}
|
package/dist/script/index.mjs
CHANGED
|
@@ -629,19 +629,32 @@ __export(ta_series_exports, {
|
|
|
629
629
|
function sma(source, length2) {
|
|
630
630
|
const result = [];
|
|
631
631
|
const len = Math.floor(length2);
|
|
632
|
+
const window = [];
|
|
632
633
|
for (let i = 0; i < source.length; i++) {
|
|
633
|
-
|
|
634
|
+
const v = source[i];
|
|
635
|
+
if (v !== void 0 && v !== null && !Number.isNaN(v)) {
|
|
636
|
+
window.push(v);
|
|
637
|
+
if (window.length > len) window.shift();
|
|
638
|
+
}
|
|
639
|
+
if (window.length < len) {
|
|
634
640
|
result.push(NaN);
|
|
635
641
|
} else {
|
|
636
642
|
let sum2 = 0;
|
|
637
|
-
for (
|
|
638
|
-
sum2 += source[i - j];
|
|
639
|
-
}
|
|
643
|
+
for (const x of window) sum2 += x;
|
|
640
644
|
result.push(sum2 / len);
|
|
641
645
|
}
|
|
642
646
|
}
|
|
643
647
|
return result;
|
|
644
648
|
}
|
|
649
|
+
function strictWindowMean(source, length2) {
|
|
650
|
+
const len = Math.floor(length2);
|
|
651
|
+
return Array.from({ length: source.length }, (_, i) => {
|
|
652
|
+
if (i < len - 1) return NaN;
|
|
653
|
+
let sum2 = 0;
|
|
654
|
+
for (let j = 0; j < len; j++) sum2 += source[i - j];
|
|
655
|
+
return sum2 / len;
|
|
656
|
+
});
|
|
657
|
+
}
|
|
645
658
|
function ema(source, length2) {
|
|
646
659
|
const result = [];
|
|
647
660
|
const len = Math.floor(length2);
|
|
@@ -671,8 +684,10 @@ function ema(source, length2) {
|
|
|
671
684
|
const val = source[i];
|
|
672
685
|
if (val !== void 0 && !isNaN(val)) {
|
|
673
686
|
emaValue = (val - emaValue) * multiplier + emaValue;
|
|
687
|
+
result.push(emaValue);
|
|
688
|
+
} else {
|
|
689
|
+
result.push(NaN);
|
|
674
690
|
}
|
|
675
|
-
result.push(emaValue);
|
|
676
691
|
}
|
|
677
692
|
}
|
|
678
693
|
return result;
|
|
@@ -922,19 +937,25 @@ function rma(source, length2) {
|
|
|
922
937
|
function wma(source, length2) {
|
|
923
938
|
const result = [];
|
|
924
939
|
const len = Math.floor(length2);
|
|
940
|
+
const filled = [];
|
|
941
|
+
let last = NaN;
|
|
925
942
|
for (let i = 0; i < source.length; i++) {
|
|
926
|
-
|
|
943
|
+
const v = source[i];
|
|
944
|
+
const isNa = v === void 0 || v === null || Number.isNaN(v);
|
|
945
|
+
if (!isNa) last = v;
|
|
946
|
+
filled.push(last);
|
|
947
|
+
if (isNa || i < len - 1) {
|
|
927
948
|
result.push(NaN);
|
|
928
|
-
|
|
929
|
-
let sum2 = 0;
|
|
930
|
-
let weightSum = 0;
|
|
931
|
-
for (let j = 0; j < len; j++) {
|
|
932
|
-
const weight = len - j;
|
|
933
|
-
sum2 += source[i - j] * weight;
|
|
934
|
-
weightSum += weight;
|
|
935
|
-
}
|
|
936
|
-
result.push(sum2 / weightSum);
|
|
949
|
+
continue;
|
|
937
950
|
}
|
|
951
|
+
let sum2 = 0;
|
|
952
|
+
let weightSum = 0;
|
|
953
|
+
for (let j = 0; j < len; j++) {
|
|
954
|
+
const weight = len - j;
|
|
955
|
+
sum2 += filled[i - j] * weight;
|
|
956
|
+
weightSum += weight;
|
|
957
|
+
}
|
|
958
|
+
result.push(sum2 / weightSum);
|
|
938
959
|
}
|
|
939
960
|
return result;
|
|
940
961
|
}
|
|
@@ -1043,7 +1064,7 @@ function mom(source, length2) {
|
|
|
1043
1064
|
}
|
|
1044
1065
|
function dev(source, length2) {
|
|
1045
1066
|
const result = [];
|
|
1046
|
-
const meanValues =
|
|
1067
|
+
const meanValues = strictWindowMean(source, length2);
|
|
1047
1068
|
for (let i = 0; i < source.length; i++) {
|
|
1048
1069
|
if (i < length2 - 1 || isNaN(meanValues[i])) {
|
|
1049
1070
|
result.push(NaN);
|
|
@@ -1061,23 +1082,23 @@ function dev(source, length2) {
|
|
|
1061
1082
|
}
|
|
1062
1083
|
function variance(source, length2, biased = true) {
|
|
1063
1084
|
const result = [];
|
|
1064
|
-
const
|
|
1085
|
+
const len = Math.floor(length2);
|
|
1086
|
+
const window = [];
|
|
1065
1087
|
for (let i = 0; i < source.length; i++) {
|
|
1066
|
-
|
|
1088
|
+
const v = source[i];
|
|
1089
|
+
if (v !== void 0 && v !== null && !Number.isNaN(v)) {
|
|
1090
|
+
window.push(v);
|
|
1091
|
+
if (window.length > len) window.shift();
|
|
1092
|
+
}
|
|
1093
|
+
const divisor = biased ? len : len - 1;
|
|
1094
|
+
if (window.length < len || divisor <= 0) {
|
|
1067
1095
|
result.push(NaN);
|
|
1068
|
-
|
|
1069
|
-
let sumSquares = 0;
|
|
1070
|
-
let count = 0;
|
|
1071
|
-
for (let j = 0; j < length2; j++) {
|
|
1072
|
-
if (!isNaN(source[i - j])) {
|
|
1073
|
-
const diff = source[i - j] - meanValues[i];
|
|
1074
|
-
sumSquares += diff * diff;
|
|
1075
|
-
count++;
|
|
1076
|
-
}
|
|
1077
|
-
}
|
|
1078
|
-
const divisor = biased ? count : count - 1;
|
|
1079
|
-
result.push(divisor > 0 ? sumSquares / divisor : NaN);
|
|
1096
|
+
continue;
|
|
1080
1097
|
}
|
|
1098
|
+
const mean = window.reduce((a, x) => a + x, 0) / len;
|
|
1099
|
+
let sumSquares = 0;
|
|
1100
|
+
for (const x of window) sumSquares += (x - mean) * (x - mean);
|
|
1101
|
+
result.push(sumSquares / divisor);
|
|
1081
1102
|
}
|
|
1082
1103
|
return result;
|
|
1083
1104
|
}
|
|
@@ -4995,14 +5016,19 @@ function avg(...values) {
|
|
|
4995
5016
|
function sum(source, length2) {
|
|
4996
5017
|
const sourceArray = source instanceof Series ? source.toArray() : source;
|
|
4997
5018
|
const result = [];
|
|
5019
|
+
const len = Math.floor(length2);
|
|
5020
|
+
const window = [];
|
|
4998
5021
|
for (let i = 0; i < sourceArray.length; i++) {
|
|
4999
|
-
|
|
5022
|
+
const v = sourceArray[i];
|
|
5023
|
+
if (v !== void 0 && v !== null && !Number.isNaN(v)) {
|
|
5024
|
+
window.push(v);
|
|
5025
|
+
if (window.length > len) window.shift();
|
|
5026
|
+
}
|
|
5027
|
+
if (window.length < len) {
|
|
5000
5028
|
result.push(NaN);
|
|
5001
5029
|
} else {
|
|
5002
5030
|
let total = 0;
|
|
5003
|
-
for (
|
|
5004
|
-
total += sourceArray[i - j];
|
|
5005
|
-
}
|
|
5031
|
+
for (const x of window) total += x;
|
|
5006
5032
|
result.push(total);
|
|
5007
5033
|
}
|
|
5008
5034
|
}
|
package/dist/ta/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ta/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAO,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAsB1H,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ta/index.ts"],"names":[],"mappings":"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"}
|