oakscriptjs 0.11.0 → 0.11.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/cjs/array/index.d.ts +8 -2
- package/dist/cjs/array/index.d.ts.map +1 -1
- package/dist/cjs/array/index.js +2 -1
- package/dist/cjs/array/index.js.map +2 -2
- package/dist/cjs/box/index.js +6 -6
- package/dist/cjs/box/index.js.map +2 -2
- package/dist/cjs/callsite/index.js +1 -1
- package/dist/cjs/callsite/index.js.map +2 -2
- package/dist/cjs/drawing/registry.d.ts +15 -6
- package/dist/cjs/drawing/registry.d.ts.map +1 -1
- package/dist/cjs/drawing/registry.js +16 -2
- package/dist/cjs/drawing/registry.js.map +2 -2
- package/dist/cjs/index.d.ts +3 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +6 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/input.d.ts +9 -1
- package/dist/cjs/input.d.ts.map +1 -1
- package/dist/cjs/input.js +16 -0
- package/dist/cjs/input.js.map +2 -2
- package/dist/cjs/label/index.js +3 -3
- package/dist/cjs/label/index.js.map +2 -2
- package/dist/cjs/line/index.d.ts +10 -27
- package/dist/cjs/line/index.d.ts.map +1 -1
- package/dist/cjs/line/index.js +10 -27
- package/dist/cjs/line/index.js.map +2 -2
- package/dist/cjs/linefill/index.d.ts +3 -0
- package/dist/cjs/linefill/index.d.ts.map +1 -1
- package/dist/cjs/linefill/index.js +15 -1
- package/dist/cjs/linefill/index.js.map +3 -3
- package/dist/cjs/runtime/adapters/SimpleInputAdapter.js +1 -1
- package/dist/cjs/runtime/adapters/SimpleInputAdapter.js.map +2 -2
- package/dist/cjs/runtime/index.d.ts +1 -1
- package/dist/cjs/runtime/index.d.ts.map +1 -1
- package/dist/cjs/runtime/index.js +1 -0
- package/dist/cjs/runtime/index.js.map +2 -2
- package/dist/cjs/runtime/inputs.d.ts +9 -0
- package/dist/cjs/runtime/inputs.d.ts.map +1 -1
- package/dist/cjs/runtime/inputs.js +8 -0
- package/dist/cjs/runtime/inputs.js.map +2 -2
- package/dist/cjs/runtime/types.d.ts +1 -1
- package/dist/cjs/runtime/types.d.ts.map +1 -1
- package/dist/cjs/runtime/types.js.map +1 -1
- package/dist/cjs/script/index.d.ts +65 -12
- package/dist/cjs/script/index.d.ts.map +1 -1
- package/dist/cjs/script/index.js +168 -19
- package/dist/cjs/script/index.js.map +3 -3
- package/dist/cjs/security/other.d.ts +92 -0
- package/dist/cjs/security/other.d.ts.map +1 -0
- package/dist/cjs/security/other.js +164 -0
- package/dist/cjs/security/other.js.map +7 -0
- package/dist/cjs/session/bars.d.ts +10 -1
- package/dist/cjs/session/bars.d.ts.map +1 -1
- package/dist/cjs/session/bars.js +16 -2
- package/dist/cjs/session/bars.js.map +2 -2
- package/dist/cjs/session/calendar.d.ts +4 -1
- package/dist/cjs/session/calendar.d.ts.map +1 -1
- package/dist/cjs/session/calendar.js +11 -7
- package/dist/cjs/session/calendar.js.map +2 -2
- package/dist/cjs/session/context.d.ts +2 -1
- package/dist/cjs/session/context.d.ts.map +1 -1
- package/dist/cjs/session/context.js +2 -1
- package/dist/cjs/session/context.js.map +2 -2
- package/dist/cjs/str/floatingdecimal.d.ts +31 -0
- package/dist/cjs/str/floatingdecimal.d.ts.map +1 -0
- package/dist/cjs/str/floatingdecimal.js +298 -0
- package/dist/cjs/str/floatingdecimal.js.map +7 -0
- package/dist/cjs/str/index.d.ts +4 -3
- package/dist/cjs/str/index.d.ts.map +1 -1
- package/dist/cjs/str/index.js +1 -1
- package/dist/cjs/str/index.js.map +2 -2
- package/dist/cjs/str/numberformat.d.ts +6 -4
- package/dist/cjs/str/numberformat.d.ts.map +1 -1
- package/dist/cjs/str/numberformat.js +3 -2
- package/dist/cjs/str/numberformat.js.map +2 -2
- package/dist/cjs/ta/index.d.ts +34 -17
- package/dist/cjs/ta/index.d.ts.map +1 -1
- package/dist/cjs/ta/index.js +132 -116
- package/dist/cjs/ta/index.js.map +2 -2
- package/dist/cjs/ta/limits.d.ts +11 -0
- package/dist/cjs/ta/limits.d.ts.map +1 -1
- package/dist/cjs/ta/limits.js +15 -1
- package/dist/cjs/ta/limits.js.map +2 -2
- package/dist/cjs/ta/running-sum.js +1 -1
- package/dist/cjs/ta/running-sum.js.map +2 -2
- package/dist/cjs/ta-series.d.ts +1 -1
- package/dist/cjs/ta-series.d.ts.map +1 -1
- package/dist/cjs/ta-series.js +1 -1
- package/dist/cjs/ta-series.js.map +2 -2
- package/dist/cjs/table/index.d.ts +3 -1
- package/dist/cjs/table/index.d.ts.map +1 -1
- package/dist/cjs/table/index.js +1 -0
- package/dist/cjs/table/index.js.map +3 -3
- package/dist/cjs/time/session.d.ts +9 -0
- package/dist/cjs/time/session.d.ts.map +1 -1
- package/dist/cjs/time/session.js +42 -14
- package/dist/cjs/time/session.js.map +3 -3
- package/dist/cjs/time/timezone.d.ts +6 -1
- package/dist/cjs/time/timezone.d.ts.map +1 -1
- package/dist/cjs/time/timezone.js +2 -2
- package/dist/cjs/time/timezone.js.map +2 -2
- package/dist/cjs/types/metadata.d.ts +1 -1
- package/dist/cjs/types/metadata.d.ts.map +1 -1
- package/dist/cjs/types/metadata.js.map +1 -1
- package/dist/esm/array/index.d.ts +8 -2
- package/dist/esm/array/index.d.ts.map +1 -1
- package/dist/esm/array/index.js +12 -3
- package/dist/esm/array/index.js.map +1 -1
- package/dist/esm/box/index.js +6 -6
- package/dist/esm/box/index.js.map +1 -1
- package/dist/esm/callsite/index.js +1 -1
- package/dist/esm/callsite/index.js.map +1 -1
- package/dist/esm/drawing/registry.d.ts +15 -6
- package/dist/esm/drawing/registry.d.ts.map +1 -1
- package/dist/esm/drawing/registry.js +30 -7
- package/dist/esm/drawing/registry.js.map +1 -1
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input.d.ts +9 -1
- package/dist/esm/input.d.ts.map +1 -1
- package/dist/esm/input.js +16 -0
- package/dist/esm/input.js.map +1 -1
- package/dist/esm/label/index.js +3 -3
- package/dist/esm/label/index.js.map +1 -1
- package/dist/esm/line/index.d.ts +10 -27
- package/dist/esm/line/index.d.ts.map +1 -1
- package/dist/esm/line/index.js +20 -64
- package/dist/esm/line/index.js.map +1 -1
- package/dist/esm/linefill/index.d.ts +3 -0
- package/dist/esm/linefill/index.d.ts.map +1 -1
- package/dist/esm/linefill/index.js +20 -1
- package/dist/esm/linefill/index.js.map +1 -1
- package/dist/esm/runtime/adapters/SimpleInputAdapter.js +1 -1
- package/dist/esm/runtime/adapters/SimpleInputAdapter.js.map +1 -1
- package/dist/esm/runtime/index.d.ts +1 -1
- package/dist/esm/runtime/index.d.ts.map +1 -1
- package/dist/esm/runtime/index.js +1 -1
- package/dist/esm/runtime/index.js.map +1 -1
- package/dist/esm/runtime/inputs.d.ts +9 -0
- package/dist/esm/runtime/inputs.d.ts.map +1 -1
- package/dist/esm/runtime/inputs.js +15 -0
- package/dist/esm/runtime/inputs.js.map +1 -1
- package/dist/esm/runtime/types.d.ts +1 -1
- package/dist/esm/runtime/types.d.ts.map +1 -1
- package/dist/esm/script/index.d.ts +65 -12
- package/dist/esm/script/index.d.ts.map +1 -1
- package/dist/esm/script/index.js +217 -29
- package/dist/esm/script/index.js.map +1 -1
- package/dist/esm/security/other.d.ts +92 -0
- package/dist/esm/security/other.d.ts.map +1 -0
- package/dist/esm/security/other.js +211 -0
- package/dist/esm/security/other.js.map +1 -0
- package/dist/esm/session/bars.d.ts +10 -1
- package/dist/esm/session/bars.d.ts.map +1 -1
- package/dist/esm/session/bars.js +26 -1
- package/dist/esm/session/bars.js.map +1 -1
- package/dist/esm/session/calendar.d.ts +4 -1
- package/dist/esm/session/calendar.d.ts.map +1 -1
- package/dist/esm/session/calendar.js +19 -7
- package/dist/esm/session/calendar.js.map +1 -1
- package/dist/esm/session/context.d.ts +2 -1
- package/dist/esm/session/context.d.ts.map +1 -1
- package/dist/esm/session/context.js +5 -3
- package/dist/esm/session/context.js.map +1 -1
- package/dist/esm/str/floatingdecimal.d.ts +31 -0
- package/dist/esm/str/floatingdecimal.d.ts.map +1 -0
- package/dist/esm/str/floatingdecimal.js +272 -0
- package/dist/esm/str/floatingdecimal.js.map +1 -0
- package/dist/esm/str/index.d.ts +4 -3
- package/dist/esm/str/index.d.ts.map +1 -1
- package/dist/esm/str/index.js +6 -5
- package/dist/esm/str/index.js.map +1 -1
- package/dist/esm/str/numberformat.d.ts +6 -4
- package/dist/esm/str/numberformat.d.ts.map +1 -1
- package/dist/esm/str/numberformat.js +9 -5
- package/dist/esm/str/numberformat.js.map +1 -1
- package/dist/esm/ta/index.d.ts +34 -17
- package/dist/esm/ta/index.d.ts.map +1 -1
- package/dist/esm/ta/index.js +155 -185
- package/dist/esm/ta/index.js.map +1 -1
- package/dist/esm/ta/limits.d.ts +11 -0
- package/dist/esm/ta/limits.d.ts.map +1 -1
- package/dist/esm/ta/limits.js +27 -2
- package/dist/esm/ta/limits.js.map +1 -1
- package/dist/esm/ta/running-sum.js +1 -1
- package/dist/esm/ta/running-sum.js.map +1 -1
- package/dist/esm/ta-series.d.ts +1 -1
- package/dist/esm/ta-series.d.ts.map +1 -1
- package/dist/esm/ta-series.js +2 -1
- package/dist/esm/ta-series.js.map +1 -1
- package/dist/esm/table/index.d.ts +3 -1
- package/dist/esm/table/index.d.ts.map +1 -1
- package/dist/esm/table/index.js +6 -1
- package/dist/esm/table/index.js.map +1 -1
- package/dist/esm/time/session.d.ts +9 -0
- package/dist/esm/time/session.d.ts.map +1 -1
- package/dist/esm/time/session.js +53 -15
- package/dist/esm/time/session.js.map +1 -1
- package/dist/esm/time/timezone.d.ts +6 -1
- package/dist/esm/time/timezone.d.ts.map +1 -1
- package/dist/esm/time/timezone.js +8 -2
- package/dist/esm/time/timezone.js.map +1 -1
- package/dist/esm/types/metadata.d.ts +1 -1
- package/dist/esm/types/metadata.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/array/index.ts +11 -3
- package/src/box/index.ts +6 -6
- package/src/callsite/index.ts +1 -1
- package/src/drawing/registry.ts +30 -7
- package/src/index.ts +11 -1
- package/src/input.ts +18 -1
- package/src/label/index.ts +3 -3
- package/src/line/index.ts +20 -68
- package/src/linefill/index.ts +20 -1
- package/src/runtime/adapters/SimpleInputAdapter.ts +1 -1
- package/src/runtime/index.ts +1 -0
- package/src/runtime/inputs.ts +16 -0
- package/src/runtime/types.ts +1 -1
- package/src/script/index.ts +292 -30
- package/src/security/other.ts +269 -0
- package/src/session/bars.ts +24 -1
- package/src/session/calendar.ts +23 -7
- package/src/session/context.ts +5 -3
- package/src/str/floatingdecimal.ts +268 -0
- package/src/str/index.ts +6 -5
- package/src/str/numberformat.ts +11 -6
- package/src/ta/index.ts +157 -183
- package/src/ta/limits.ts +28 -1
- package/src/ta/running-sum.ts +1 -1
- package/src/ta-series.ts +3 -2
- package/src/table/index.ts +4 -1
- package/src/time/session.ts +58 -16
- package/src/time/timezone.ts +9 -2
- package/src/types/metadata.ts +1 -1
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decimal digits of a double as PineScript's plain `str.tostring` produces them.
|
|
3
|
+
*
|
|
4
|
+
* PineScript formats a number without a format with the digits of the classic binary to decimal conversion of the
|
|
5
|
+
* JVM (the one `Double.toString` used before Java 19), then rounds them to 10 decimals half to even, with two
|
|
6
|
+
* flags of the conversion deciding a tie on the last digit: digits that were rounded up are not rounded up again,
|
|
7
|
+
* digits that were cut on a '5' are. These digits are not always the shortest ones: 78195689105219552 keeps all
|
|
8
|
+
* its digits (the shortest form is 78195689105219550), and 1990736.000001111 has 16 digits where rounding the exact
|
|
9
|
+
* value would give 1990736.0000011111 (#174).
|
|
10
|
+
*/
|
|
11
|
+
const EXP_SHIFT = 52;
|
|
12
|
+
const MAX_SMALL_BIN_EXP = 62;
|
|
13
|
+
const MIN_SMALL_BIN_EXP = -21;
|
|
14
|
+
// approximately ceil(log2(5^i))
|
|
15
|
+
const N_5_BITS = [0, 3, 5, 7, 10, 12, 14, 17, 19, 21, 24, 26, 28, 31, 33, 35, 38, 40, 42, 45, 47, 49, 52, 54, 56, 59, 61];
|
|
16
|
+
// number of decimal digits of 2^i minus one, for i < 64
|
|
17
|
+
const INSIGNIFICANT_DIGITS = [
|
|
18
|
+
0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10,
|
|
19
|
+
11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19,
|
|
20
|
+
];
|
|
21
|
+
const LONG_5_POW_LENGTH = 27;
|
|
22
|
+
const view = new DataView(new ArrayBuffer(8));
|
|
23
|
+
const int32 = (v) => BigInt.asIntN(32, v);
|
|
24
|
+
const int64 = (v) => BigInt.asIntN(64, v);
|
|
25
|
+
function trailingZeros(v) {
|
|
26
|
+
let n = 0;
|
|
27
|
+
while ((v & 1n) === 0n) {
|
|
28
|
+
v >>= 1n;
|
|
29
|
+
n++;
|
|
30
|
+
}
|
|
31
|
+
return n;
|
|
32
|
+
}
|
|
33
|
+
/** floor(log10(x)) estimate of the conversion (it can be one too high). */
|
|
34
|
+
function estimateDecExp(fractBits, binExp) {
|
|
35
|
+
view.setBigUint64(0, (1023n << 52n) | (fractBits & 0xfffffffffffffn));
|
|
36
|
+
const d2 = view.getFloat64(0);
|
|
37
|
+
const d = (d2 - 1.5) * 0.289529654 + 0.176091259 + binExp * 0.301029995663981;
|
|
38
|
+
// the conversion truncates toward zero and corrects negative non-integers down
|
|
39
|
+
const r = Math.trunc(d);
|
|
40
|
+
return d < 0 && r !== d ? r - 1 : r;
|
|
41
|
+
}
|
|
42
|
+
/** Digits of a positive finite double, as the JVM converter gives them. */
|
|
43
|
+
export function convertDouble(x) {
|
|
44
|
+
view.setFloat64(0, Math.abs(x));
|
|
45
|
+
const bits = view.getBigUint64(0);
|
|
46
|
+
let fractBits = bits & 0xfffffffffffffn;
|
|
47
|
+
let binExp = Number((bits >> 52n) & 0x7ffn);
|
|
48
|
+
if (binExp === 0 && fractBits === 0n)
|
|
49
|
+
return { digits: '0', decExponent: 1, roundedUp: false, exact: false };
|
|
50
|
+
let nSignificantBits;
|
|
51
|
+
if (binExp === 0) {
|
|
52
|
+
const leadingZeros = 64 - fractBits.toString(2).length;
|
|
53
|
+
const shift = leadingZeros - (63 - EXP_SHIFT);
|
|
54
|
+
fractBits <<= BigInt(shift);
|
|
55
|
+
binExp = 1 - shift;
|
|
56
|
+
nSignificantBits = 64 - leadingZeros;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
fractBits |= 1n << 52n;
|
|
60
|
+
nSignificantBits = EXP_SHIFT + 1;
|
|
61
|
+
}
|
|
62
|
+
binExp -= 1023;
|
|
63
|
+
const tailZeros = trailingZeros(fractBits);
|
|
64
|
+
const nFractBits = EXP_SHIFT + 1 - tailZeros;
|
|
65
|
+
const nTinyBits = Math.max(0, nFractBits - binExp - 1);
|
|
66
|
+
// an integer that fits in a long: its digits, the low ones rounded away when they are not significant
|
|
67
|
+
if (binExp <= MAX_SMALL_BIN_EXP &&
|
|
68
|
+
binExp >= MIN_SMALL_BIN_EXP &&
|
|
69
|
+
nTinyBits < LONG_5_POW_LENGTH &&
|
|
70
|
+
nFractBits + N_5_BITS[nTinyBits] < 64 &&
|
|
71
|
+
nTinyBits === 0) {
|
|
72
|
+
const p2 = binExp - nSignificantBits - 1;
|
|
73
|
+
const insignificant = binExp > nSignificantBits && p2 > 1 && p2 < INSIGNIFICANT_DIGITS.length ? INSIGNIFICANT_DIGITS[p2] : 0;
|
|
74
|
+
let lvalue = binExp >= EXP_SHIFT ? fractBits << BigInt(binExp - EXP_SHIFT) : fractBits >> BigInt(EXP_SHIFT - binExp);
|
|
75
|
+
if (insignificant !== 0) {
|
|
76
|
+
const pow10 = 10n ** BigInt(insignificant);
|
|
77
|
+
const residue = lvalue % pow10;
|
|
78
|
+
lvalue /= pow10;
|
|
79
|
+
if (residue >= pow10 >> 1n)
|
|
80
|
+
lvalue++;
|
|
81
|
+
}
|
|
82
|
+
const s = lvalue.toString();
|
|
83
|
+
return { digits: s.replace(/0+$/, ''), decExponent: insignificant + s.length, roundedUp: false, exact: false };
|
|
84
|
+
}
|
|
85
|
+
let decExp = estimateDecExp(fractBits, binExp);
|
|
86
|
+
const B5 = Math.max(0, -decExp);
|
|
87
|
+
let B2 = B5 + nTinyBits + binExp;
|
|
88
|
+
const S5 = Math.max(0, decExp);
|
|
89
|
+
let S2 = S5 + nTinyBits;
|
|
90
|
+
const M5 = B5;
|
|
91
|
+
let M2 = B2 - nSignificantBits;
|
|
92
|
+
fractBits >>= BigInt(tailZeros);
|
|
93
|
+
B2 -= nFractBits - 1;
|
|
94
|
+
const common2factor = Math.min(B2, S2);
|
|
95
|
+
B2 -= common2factor;
|
|
96
|
+
S2 -= common2factor;
|
|
97
|
+
M2 -= common2factor;
|
|
98
|
+
// an exact power of two: the next smaller double is half as far
|
|
99
|
+
if (nFractBits === 1)
|
|
100
|
+
M2 -= 1;
|
|
101
|
+
if (M2 < 0) {
|
|
102
|
+
B2 -= M2;
|
|
103
|
+
S2 -= M2;
|
|
104
|
+
M2 = 0;
|
|
105
|
+
}
|
|
106
|
+
const digits = [];
|
|
107
|
+
let low;
|
|
108
|
+
let high;
|
|
109
|
+
let lowDigitDifference;
|
|
110
|
+
let exact;
|
|
111
|
+
const Bbits = nFractBits + B2 + (B5 < N_5_BITS.length ? N_5_BITS[B5] : B5 * 3);
|
|
112
|
+
const tenSbits = S2 + 1 + (S5 + 1 < N_5_BITS.length ? N_5_BITS[S5 + 1] : (S5 + 1) * 3);
|
|
113
|
+
// two digits at least in the exponent form
|
|
114
|
+
const minTwo = decExp < -3 || decExp >= 8;
|
|
115
|
+
if (Bbits < 64 && tenSbits < 64) {
|
|
116
|
+
// int or long arithmetic, with its overflows
|
|
117
|
+
const wrap = Bbits < 32 && tenSbits < 32 ? int32 : int64;
|
|
118
|
+
let b = wrap((fractBits * 5n ** BigInt(B5)) << BigInt(B2));
|
|
119
|
+
const s = wrap(5n ** BigInt(S5) << BigInt(S2));
|
|
120
|
+
let m = wrap(5n ** BigInt(M5) << BigInt(M2));
|
|
121
|
+
const tens = wrap(s * 10n);
|
|
122
|
+
let q = Number(b / s);
|
|
123
|
+
b = wrap(10n * (b % s));
|
|
124
|
+
m = wrap(m * 10n);
|
|
125
|
+
low = b < m;
|
|
126
|
+
high = wrap(b + m) > tens;
|
|
127
|
+
if (q === 0 && !high)
|
|
128
|
+
decExp--;
|
|
129
|
+
else
|
|
130
|
+
digits.push(q);
|
|
131
|
+
if (minTwo)
|
|
132
|
+
high = low = false;
|
|
133
|
+
while (!low && !high) {
|
|
134
|
+
q = Number(b / s);
|
|
135
|
+
b = wrap(10n * (b % s));
|
|
136
|
+
m = wrap(m * 10n);
|
|
137
|
+
if (m > 0n) {
|
|
138
|
+
low = b < m;
|
|
139
|
+
high = wrap(b + m) > tens;
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
low = true;
|
|
143
|
+
high = true;
|
|
144
|
+
}
|
|
145
|
+
digits.push(q);
|
|
146
|
+
}
|
|
147
|
+
lowDigitDifference = wrap((b << 1n) - tens);
|
|
148
|
+
exact = b === 0n;
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
let b = (fractBits * 5n ** BigInt(B5)) << BigInt(B2);
|
|
152
|
+
const s = 5n ** BigInt(S5) << BigInt(S2);
|
|
153
|
+
let m = 5n ** BigInt(M5 + 1) << BigInt(M2 + 1);
|
|
154
|
+
const tens = s * 10n;
|
|
155
|
+
let q = Number(b / s);
|
|
156
|
+
b = (b % s) * 10n;
|
|
157
|
+
low = b < m;
|
|
158
|
+
high = b + m >= tens;
|
|
159
|
+
if (q === 0 && !high)
|
|
160
|
+
decExp--;
|
|
161
|
+
else
|
|
162
|
+
digits.push(q);
|
|
163
|
+
if (minTwo)
|
|
164
|
+
high = low = false;
|
|
165
|
+
while (!low && !high) {
|
|
166
|
+
q = Number(b / s);
|
|
167
|
+
b = (b % s) * 10n;
|
|
168
|
+
m *= 10n;
|
|
169
|
+
low = b < m;
|
|
170
|
+
high = b + m >= tens;
|
|
171
|
+
digits.push(q);
|
|
172
|
+
}
|
|
173
|
+
lowDigitDifference = high && low ? (b << 1n) - tens : 0n;
|
|
174
|
+
exact = b === 0n;
|
|
175
|
+
}
|
|
176
|
+
let decExponent = decExp + 1;
|
|
177
|
+
let roundedUp = false;
|
|
178
|
+
const roundup = () => {
|
|
179
|
+
let i = digits.length - 1;
|
|
180
|
+
while (digits[i] === 9 && i > 0)
|
|
181
|
+
digits[i--] = 0;
|
|
182
|
+
if (digits[i] === 9) {
|
|
183
|
+
decExponent += 1;
|
|
184
|
+
digits[0] = 1;
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
digits[i] += 1;
|
|
188
|
+
roundedUp = true;
|
|
189
|
+
};
|
|
190
|
+
if (high) {
|
|
191
|
+
if (!low)
|
|
192
|
+
roundup();
|
|
193
|
+
else if (lowDigitDifference === 0n) {
|
|
194
|
+
if (digits[digits.length - 1] % 2 !== 0)
|
|
195
|
+
roundup();
|
|
196
|
+
}
|
|
197
|
+
else if (lowDigitDifference > 0n)
|
|
198
|
+
roundup();
|
|
199
|
+
}
|
|
200
|
+
const text = digits.join('').replace(/0+$/, '');
|
|
201
|
+
return { digits: text || '0', decExponent, roundedUp, exact };
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* `|x|` with at most `maxFrac` decimals, as the JVM's decimal formatter rounds the converted digits (half to even;
|
|
205
|
+
* a tie on the last converted digit is decided by the conversion flags). Returns the digits and the position of the
|
|
206
|
+
* decimal point (value = 0.digits × 10^intLen); "" for zero.
|
|
207
|
+
*/
|
|
208
|
+
export function javaFixedDigits(x, maxFrac) {
|
|
209
|
+
if (x === 0)
|
|
210
|
+
return { digits: '', intLen: 0 };
|
|
211
|
+
const c = convertDouble(x);
|
|
212
|
+
const digits = [...c.digits].map(Number);
|
|
213
|
+
let decimalAt = c.decExponent;
|
|
214
|
+
// the formatter reads the conversion's text, which ends in ".0" when no digit follows the point ("5.0E-11",
|
|
215
|
+
// "120.0"): that zero is a digit for the tie test below (5e-11 to 10 decimals gives 0)
|
|
216
|
+
const n = digits.length;
|
|
217
|
+
if (decimalAt > 0 && decimalAt < 8) {
|
|
218
|
+
if (n <= decimalAt)
|
|
219
|
+
digits.push(...Array(decimalAt - n + 1).fill(0));
|
|
220
|
+
}
|
|
221
|
+
else if (decimalAt <= -3 || decimalAt >= 8) {
|
|
222
|
+
if (n === 1)
|
|
223
|
+
digits.push(0);
|
|
224
|
+
}
|
|
225
|
+
let count = digits.length;
|
|
226
|
+
const shouldRoundUp = (keep) => {
|
|
227
|
+
if (keep >= count)
|
|
228
|
+
return false;
|
|
229
|
+
if (digits[keep] > 5)
|
|
230
|
+
return true;
|
|
231
|
+
if (digits[keep] !== 5)
|
|
232
|
+
return false;
|
|
233
|
+
if (keep === count - 1) {
|
|
234
|
+
if (c.exact)
|
|
235
|
+
return keep > 0 && digits[keep - 1] % 2 !== 0;
|
|
236
|
+
return !c.roundedUp;
|
|
237
|
+
}
|
|
238
|
+
for (let i = keep + 1; i < count; i++)
|
|
239
|
+
if (digits[i] !== 0)
|
|
240
|
+
return true;
|
|
241
|
+
return false;
|
|
242
|
+
};
|
|
243
|
+
if (-decimalAt > maxFrac)
|
|
244
|
+
return { digits: '', intLen: 0 };
|
|
245
|
+
if (-decimalAt === maxFrac) {
|
|
246
|
+
return shouldRoundUp(0) ? { digits: '1', intLen: decimalAt + 1 } : { digits: '', intLen: 0 };
|
|
247
|
+
}
|
|
248
|
+
while (count > 1 && digits[count - 1] === 0)
|
|
249
|
+
count--;
|
|
250
|
+
let keep = maxFrac + decimalAt;
|
|
251
|
+
if (keep >= 0 && keep < count) {
|
|
252
|
+
if (shouldRoundUp(keep)) {
|
|
253
|
+
do {
|
|
254
|
+
keep--;
|
|
255
|
+
if (keep < 0) {
|
|
256
|
+
digits[0] = 1;
|
|
257
|
+
decimalAt++;
|
|
258
|
+
keep = 0;
|
|
259
|
+
break;
|
|
260
|
+
}
|
|
261
|
+
digits[keep] += 1;
|
|
262
|
+
} while (digits[keep] > 9);
|
|
263
|
+
keep++;
|
|
264
|
+
}
|
|
265
|
+
count = keep;
|
|
266
|
+
while (count > 1 && digits[count - 1] === 0)
|
|
267
|
+
count--;
|
|
268
|
+
}
|
|
269
|
+
const text = digits.slice(0, count).join('').replace(/0+$/, '');
|
|
270
|
+
return { digits: text, intLen: text ? decimalAt : 0 };
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=floatingdecimal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floatingdecimal.js","sourceRoot":"","sources":["../../../src/str/floatingdecimal.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/str/index.d.ts
CHANGED
|
@@ -37,9 +37,10 @@ export declare function length(str: simple_string): int;
|
|
|
37
37
|
*
|
|
38
38
|
* @remarks
|
|
39
39
|
* As in PineScript:
|
|
40
|
-
* - without format, numbers show up to 10 decimals ("0.3333333333")
|
|
41
|
-
*
|
|
42
|
-
*
|
|
40
|
+
* - without format, numbers show up to 10 decimals ("0.3333333333"): the digits of the JVM's binary to decimal
|
|
41
|
+
* conversion, rounded half to even, a tie on the last converted digit decided by the conversion
|
|
42
|
+
* (82325.10000000005 gives "82325.1", with the format "#.##########" "82325.1000000001"; 1791662400001 / 900000
|
|
43
|
+
* gives "1990736.000001111"; 78195689105219552 keeps its 17 digits); 1e21 and more use "1E21"
|
|
43
44
|
* - patterns round half away from zero on the shortest decimal form: 1.005 with "#.##" gives "1.01";
|
|
44
45
|
* at most 16 decimals from 1e-3 up (0.0012345678901234567 with 20 '#' decimals gives "0.0012345678901235")
|
|
45
46
|
* - "pos;neg" patterns: a negative number takes the text of the negative subpattern ("#.##;(#.##)": "(3.5)")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/str/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAErF;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,GAAG,CAE9C;AAED
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/str/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/str/index.js
CHANGED
|
@@ -41,9 +41,10 @@ export function length(str) {
|
|
|
41
41
|
*
|
|
42
42
|
* @remarks
|
|
43
43
|
* As in PineScript:
|
|
44
|
-
* - without format, numbers show up to 10 decimals ("0.3333333333")
|
|
45
|
-
*
|
|
46
|
-
*
|
|
44
|
+
* - without format, numbers show up to 10 decimals ("0.3333333333"): the digits of the JVM's binary to decimal
|
|
45
|
+
* conversion, rounded half to even, a tie on the last converted digit decided by the conversion
|
|
46
|
+
* (82325.10000000005 gives "82325.1", with the format "#.##########" "82325.1000000001"; 1791662400001 / 900000
|
|
47
|
+
* gives "1990736.000001111"; 78195689105219552 keeps its 17 digits); 1e21 and more use "1E21"
|
|
47
48
|
* - patterns round half away from zero on the shortest decimal form: 1.005 with "#.##" gives "1.01";
|
|
48
49
|
* at most 16 decimals from 1e-3 up (0.0012345678901234567 with 20 '#' decimals gives "0.0012345678901235")
|
|
49
50
|
* - "pos;neg" patterns: a negative number takes the text of the negative subpattern ("#.##;(#.##)": "(3.5)")
|
|
@@ -87,8 +88,8 @@ export function tostring(value, format, mintick, pricescale) {
|
|
|
87
88
|
if (Math.abs(value) >= 1e21 && Number.isFinite(value)) {
|
|
88
89
|
return String(value).replace('e+', 'E').replace(/\.0+E/, 'E');
|
|
89
90
|
}
|
|
90
|
-
// without a format the
|
|
91
|
-
return formatNumber(value, '#.##########', '
|
|
91
|
+
// without a format: the digits of the JVM conversion, 10 decimals half to even (#171, #174)
|
|
92
|
+
return formatNumber(value, '#.##########', 'halfEvenConverted');
|
|
92
93
|
}
|
|
93
94
|
switch (format) {
|
|
94
95
|
case 'percent':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/str/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,MAAM,CAAC,GAAkB;IACvC,OAAO,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/str/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,12 @@
|
|
|
6
6
|
* PineScript rules:
|
|
7
7
|
* - `str.tostring` with a format rounds half away from zero on the shortest decimal form of the number
|
|
8
8
|
* (`1.005` with "#.##" gives "1.01", `2.5` with "#" gives "3")
|
|
9
|
-
* - `str.tostring` without a format rounds the
|
|
10
|
-
*
|
|
9
|
+
* - `str.tostring` without a format rounds the digits of the JVM's binary to decimal conversion to 10 decimals,
|
|
10
|
+
* half to even, the conversion flags deciding a tie (see `floatingdecimal.ts`): 12.34500000005 gives "12.345"
|
|
11
|
+
* ("12.3450000001" with the format "#.##########"), 1791662400001 / 900000 gives "1990736.000001111"
|
|
11
12
|
* - `str.format` rounds half to even on the exact binary value (`0.25` with "#.#" gives "0.2")
|
|
12
|
-
* - a negative number that rounds to zero loses its sign
|
|
13
|
+
* - a negative number that rounds to zero loses its sign, except with "%" ("#.#%": -0.0004 gives "-0%");
|
|
14
|
+
* "#.00" writes `.50` (no leading zero),
|
|
13
15
|
* but "#.##" writes `0.5` (a pattern without any '0' shows one integer digit)
|
|
14
16
|
* - with an exponent, the value is first rounded to the fraction digits ("0.00E0": 0.125 gives "1.30E-1")
|
|
15
17
|
* - a pattern without digit characters (`format.price` is "price") formats like "#" after its text,
|
|
@@ -19,7 +21,7 @@
|
|
|
19
21
|
* - at most 16 decimals when |x| >= 1e-3 (the shortest digits of a double never have more there):
|
|
20
22
|
* 0.1 with 20 '#' decimals gives "0.1" in both rounding modes
|
|
21
23
|
*/
|
|
22
|
-
export type Rounding = 'halfUpShortest' | 'halfUpExact' | 'halfEvenExact';
|
|
24
|
+
export type Rounding = 'halfUpShortest' | 'halfUpExact' | 'halfEvenExact' | 'halfEvenConverted';
|
|
23
25
|
/** Formats a number with a DecimalFormat pattern. */
|
|
24
26
|
export declare function formatNumber(value: number, pattern: string, mode: Rounding): string;
|
|
25
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numberformat.d.ts","sourceRoot":"","sources":["../../../src/str/numberformat.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"numberformat.d.ts","sourceRoot":"","sources":["../../../src/str/numberformat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,MAAM,MAAM,QAAQ,GAAG,gBAAgB,GAAG,aAAa,GAAG,eAAe,GAAG,mBAAmB,CAAC;AA8KhG,qDAAqD;AACrD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CA8BnF;AASD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMhF"}
|
|
@@ -6,10 +6,12 @@
|
|
|
6
6
|
* PineScript rules:
|
|
7
7
|
* - `str.tostring` with a format rounds half away from zero on the shortest decimal form of the number
|
|
8
8
|
* (`1.005` with "#.##" gives "1.01", `2.5` with "#" gives "3")
|
|
9
|
-
* - `str.tostring` without a format rounds the
|
|
10
|
-
*
|
|
9
|
+
* - `str.tostring` without a format rounds the digits of the JVM's binary to decimal conversion to 10 decimals,
|
|
10
|
+
* half to even, the conversion flags deciding a tie (see `floatingdecimal.ts`): 12.34500000005 gives "12.345"
|
|
11
|
+
* ("12.3450000001" with the format "#.##########"), 1791662400001 / 900000 gives "1990736.000001111"
|
|
11
12
|
* - `str.format` rounds half to even on the exact binary value (`0.25` with "#.#" gives "0.2")
|
|
12
|
-
* - a negative number that rounds to zero loses its sign
|
|
13
|
+
* - a negative number that rounds to zero loses its sign, except with "%" ("#.#%": -0.0004 gives "-0%");
|
|
14
|
+
* "#.00" writes `.50` (no leading zero),
|
|
13
15
|
* but "#.##" writes `0.5` (a pattern without any '0' shows one integer digit)
|
|
14
16
|
* - with an exponent, the value is first rounded to the fraction digits ("0.00E0": 0.125 gives "1.30E-1")
|
|
15
17
|
* - a pattern without digit characters (`format.price` is "price") formats like "#" after its text,
|
|
@@ -19,6 +21,7 @@
|
|
|
19
21
|
* - at most 16 decimals when |x| >= 1e-3 (the shortest digits of a double never have more there):
|
|
20
22
|
* 0.1 with 20 '#' decimals gives "0.1" in both rounding modes
|
|
21
23
|
*/
|
|
24
|
+
import { javaFixedDigits } from './floatingdecimal.js';
|
|
22
25
|
const patterns = new Map();
|
|
23
26
|
/** Index of the first ';' outside quotes, or -1. */
|
|
24
27
|
function subpatternSplit(pattern) {
|
|
@@ -208,11 +211,12 @@ export function formatNumber(value, pattern, mode) {
|
|
|
208
211
|
else {
|
|
209
212
|
// 16 decimals at most from 1e-3 up (the shortest digits of a double have no more there)
|
|
210
213
|
const frac = !p.hasDigits ? 0 : Math.abs(x) >= 1e-3 ? Math.min(p.maxFrac, 16) : p.maxFrac;
|
|
211
|
-
const rounded = roundDigits(toDigits(x), frac, mode);
|
|
214
|
+
const rounded = mode === 'halfEvenConverted' ? javaFixedDigits(x, frac) : roundDigits(toDigits(x), frac, mode);
|
|
212
215
|
isZero = rounded.digits === '';
|
|
213
216
|
body = p.hasDigits ? layout(rounded, p) : layout(rounded, { ...p, minInt: 0, maxFrac: 0, minFrac: 0 });
|
|
214
217
|
}
|
|
215
|
-
|
|
218
|
+
// a negative number that rounds to zero keeps its sign with a percent pattern ("-0%", #180)
|
|
219
|
+
return affixes(p, x < 0 && (!isZero || !p.hasDigits || p.percent), body);
|
|
216
220
|
}
|
|
217
221
|
/** `body` with the text of the positive pattern, or of the negative one ("-" + prefix without "pos;neg"). */
|
|
218
222
|
function affixes(p, negative, body) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numberformat.js","sourceRoot":"","sources":["../../../src/str/numberformat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"numberformat.js","sourceRoot":"","sources":["../../../src/str/numberformat.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/ta/index.d.ts
CHANGED
|
@@ -79,6 +79,12 @@ export declare function ema(source: Source, length: simple_int): series_float;
|
|
|
79
79
|
* ```
|
|
80
80
|
*/
|
|
81
81
|
export declare function rsi(source: Source, length: simple_int): series_float;
|
|
82
|
+
/**
|
|
83
|
+
* PineScript v4 `rsi(x, y)` with two series (#180): `x` and `y` are the averages of the upward and downward changes,
|
|
84
|
+
* already computed. As in PineScript: 100 when `y` is within 1e-10 of zero (also with an na `x`), else 0 when `x` is,
|
|
85
|
+
* else `100 - 100 / (1 + x / y)`, na when that divides by zero (`x == -y`). Versions 5 and 6 have the length form only.
|
|
86
|
+
*/
|
|
87
|
+
export declare function rsi(x: Source, y: Source): series_float;
|
|
82
88
|
/**
|
|
83
89
|
* Moving Average Convergence Divergence - trend-following momentum indicator showing relationship
|
|
84
90
|
* between two moving averages.
|
|
@@ -682,8 +688,8 @@ export declare function correlation(source1: Source, source2: Source, length: si
|
|
|
682
688
|
*
|
|
683
689
|
* PineScript rules:
|
|
684
690
|
* - percentrank = count(source[k] <= source, k = 1..length) * 100 / length (in this order: the PineScript bits)
|
|
685
|
-
* - a value from bar `length` on
|
|
686
|
-
*
|
|
691
|
+
* - a value from bar `length` on; an `na` value in the window counts as not `<=` the current value, and an `na`
|
|
692
|
+
* current value gives 0 (#177)
|
|
687
693
|
* - the comparison uses the 1e-10 tolerance
|
|
688
694
|
*
|
|
689
695
|
* @example
|
|
@@ -1313,31 +1319,42 @@ export declare function percentile_nearest_rank(source: Source, length: simple_i
|
|
|
1313
1319
|
*/
|
|
1314
1320
|
export declare function rci(source: Source, length: simple_int): series_float;
|
|
1315
1321
|
/**
|
|
1316
|
-
* Pivot Point Levels
|
|
1322
|
+
* Pivot Point Levels (PineScript `ta.pivot_point_levels`).
|
|
1317
1323
|
*
|
|
1318
|
-
*
|
|
1319
|
-
* Returns an array containing: [P, R1, S1, R2, S2, R3, S3, R4, S4, R5, S5]
|
|
1324
|
+
* Returns 11 series: [P, R1, S1, R2, S2, R3, S3, R4, S4, R5, S5] (one value per bar in each).
|
|
1320
1325
|
*
|
|
1321
1326
|
* @param type - Calculation type: "Traditional", "Fibonacci", "Woodie", "Classic", "DM", "Camarilla"
|
|
1322
|
-
* @param anchor - Condition that
|
|
1323
|
-
* @param developing -
|
|
1324
|
-
*
|
|
1325
|
-
* @param
|
|
1326
|
-
* @param
|
|
1327
|
-
* @param
|
|
1328
|
-
* @
|
|
1327
|
+
* @param anchor - Condition that starts a new period (`timeframe.change("W")`...)
|
|
1328
|
+
* @param developing - false: the levels of the previous period, constant until the next anchor; true: the levels of
|
|
1329
|
+
* the current period so far, recalculated on each bar
|
|
1330
|
+
* @param high - High price series
|
|
1331
|
+
* @param low - Low price series
|
|
1332
|
+
* @param close - Close price series
|
|
1333
|
+
* @param open - Open price series (Woodie and DM)
|
|
1334
|
+
* @returns 11 series of levels
|
|
1329
1335
|
*
|
|
1330
1336
|
* @example
|
|
1331
1337
|
* ```typescript
|
|
1332
1338
|
* const weekChange = [false, false, false, false, true, false, ...]; // Weekly anchor
|
|
1333
|
-
* const
|
|
1334
|
-
* //
|
|
1339
|
+
* const levels = ta.pivot_point_levels("Traditional", weekChange, false, high, low, close, open);
|
|
1340
|
+
* // levels[0]![i] is P on bar i, levels[5]![i] is R3
|
|
1335
1341
|
* ```
|
|
1336
1342
|
*
|
|
1337
1343
|
* @remarks
|
|
1338
|
-
*
|
|
1339
|
-
* -
|
|
1340
|
-
*
|
|
1344
|
+
* As in PineScript (#177):
|
|
1345
|
+
* - a period runs from an anchor bar to the bar before the next anchor; the bars before the first anchor are a
|
|
1346
|
+
* period too (from bar 0). The fixed levels use the high and low of the previous period and the close of the bar
|
|
1347
|
+
* before the anchor (na with an anchor on bar 0), and are na until the first anchor; the developing levels use
|
|
1348
|
+
* the current period's high and low and the bar's close, from bar 0
|
|
1349
|
+
* - Traditional: R3 = P * 2 + (H - 2 * L), S3 = P * 2 - (2 * H - L), R4 = P * 3 + (H - 3 * L), S4 = P * 3 - (3 * H - L),
|
|
1350
|
+
* R5 = P * 4 + (H - 4 * L), S5 = P * 4 - (4 * H - L)
|
|
1351
|
+
* - Fibonacci: P +- 0.382 / 0.618 / 1 * (H - L); R4 to S5 na
|
|
1352
|
+
* - Classic: R3 / S3 = P +- 2 * (H - L), R4 / S4 = P +- 3 * (H - L); R5 / S5 na
|
|
1353
|
+
* - Woodie: P = (H + L + 2 * open of the current period) / 4, R3 = H + 2 * (P - L), S3 = L - 2 * (H - P), R4 / S4 =
|
|
1354
|
+
* R3 + (H - L) / S3 - (H - L); R5 / S5 na. `developing` true throws (RE10128)
|
|
1355
|
+
* - DM: x = H + 2 * L + C (C < open of the period), 2 * H + L + C (C > O) or H + L + 2 * C; P = x / 4,
|
|
1356
|
+
* R1 = x / 2 - L, S1 = x / 2 - H; the other levels na
|
|
1357
|
+
* - Camarilla: C +- (H - L) * 1.1 / 12, / 6, / 4, / 2 for R1 to S4, R5 = (H / L) * C, S5 = 2 * C - R5
|
|
1341
1358
|
*/
|
|
1342
1359
|
export declare function pivot_point_levels(type: series_float | string, anchor: series_bool, developing?: series_bool | boolean, high?: Source, low?: Source, close?: Source, open?: Source): series_float[];
|
|
1343
1360
|
/**
|