st-comp 0.0.146 → 0.0.147

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 (148) hide show
  1. package/components.d.ts +0 -3
  2. package/es/ChartLayout.cjs +1 -1
  3. package/es/ChartLayout.js +2 -2
  4. package/es/Dialog.cjs +1 -1
  5. package/es/Dialog.js +22 -26
  6. package/es/FactorWarning.cjs +1 -1
  7. package/es/FactorWarning.js +103 -112
  8. package/es/KlineBasic.cjs +1 -1
  9. package/es/KlineBasic.js +1426 -671
  10. package/es/KlineNew.cjs +3 -1
  11. package/es/KlineNew.js +2736 -314
  12. package/es/Pagination.cjs +1 -1
  13. package/es/Pagination.js +96 -102
  14. package/es/Table.cjs +1 -1
  15. package/es/Table.js +60 -66
  16. package/es/User.cjs +1 -1
  17. package/es/User.js +96 -103
  18. package/es/VarietySearch.cjs +1 -1
  19. package/es/VarietySearch.js +32 -41
  20. package/es/VirtualTable.cjs +1 -13
  21. package/es/VirtualTable.js +1 -2801
  22. package/es/_initCloneObject-7493ecd5.cjs +1 -0
  23. package/es/{_initCloneObject-14b53c6f.js → _initCloneObject-a8dcd058.js} +26 -26
  24. package/es/{base-ec05f348.cjs → base-00ce90ec.cjs} +3 -3
  25. package/es/{base-437d17f3.js → base-674a354a.js} +63 -64
  26. package/es/config-provider-419ffbf2.js +120 -0
  27. package/es/config-provider-68414290.cjs +3 -0
  28. package/es/dropdown-127a8c0d.cjs +1 -0
  29. package/es/{dropdown-634b5e27.js → dropdown-ce30ada6.js} +30 -31
  30. package/es/el-button-7b9f5933.js +745 -0
  31. package/es/el-button-c00975e1.cjs +1 -0
  32. package/es/{el-checkbox-group-e8fece80.js → el-checkbox-group-0554b352.js} +10 -10
  33. package/es/el-checkbox-group-7a313d34.cjs +1 -0
  34. package/es/{el-empty-bacc6613.js → el-empty-39b3aed7.js} +5 -5
  35. package/es/{el-empty-19ea04f4.cjs → el-empty-87154b6d.cjs} +1 -1
  36. package/es/el-form-item-7867f64d.cjs +12 -0
  37. package/es/{el-form-item-af1855f0.js → el-form-item-fc6f80ab.js} +78 -79
  38. package/es/el-input-2ff1628c.cjs +1 -0
  39. package/es/{el-input-4961b99f.js → el-input-d249ac86.js} +82 -84
  40. package/es/{el-input-number-610fc8ba.js → el-input-number-2066fbb7.js} +35 -36
  41. package/es/el-input-number-d6801a5c.cjs +1 -0
  42. package/es/{el-message-c3b3ac96.js → el-message-9859835d.js} +79 -81
  43. package/es/el-message-ffcf690c.cjs +1 -0
  44. package/es/el-overlay-91784be2.cjs +1 -0
  45. package/es/el-overlay-f0757cc4.js +525 -0
  46. package/es/el-popover-4db657e2.cjs +1 -0
  47. package/es/{el-popover-0aa071f2.js → el-popover-b7b43c1f.js} +18 -18
  48. package/es/el-scrollbar-35bac6b3.js +2452 -0
  49. package/es/el-scrollbar-ec09bbd3.cjs +1 -0
  50. package/es/el-select-0785c35a.cjs +1 -0
  51. package/es/{el-select-9381b156.js → el-select-bcbb7e55.js} +329 -333
  52. package/es/el-table-column-2478adf8.cjs +14 -0
  53. package/es/{el-table-column-55bffba5.js → el-table-column-c1e1a206.js} +346 -350
  54. package/es/el-tag-13ee17b3.cjs +1 -0
  55. package/es/el-tag-73372c6c.js +359 -0
  56. package/es/index-07b61d12.cjs +1 -0
  57. package/es/{index-39ec9741.js → index-45de4a12.js} +7 -7
  58. package/es/index-65b719a4.cjs +1 -0
  59. package/es/index-8b5fbc11.js +66 -0
  60. package/es/index-8c85d7c5.js +858 -0
  61. package/es/index-a49f4743.cjs +2 -0
  62. package/es/{scroll-387fcfdb.js → scroll-cb696ed2.js} +1 -1
  63. package/es/{scroll-41224831.cjs → scroll-cca17da0.cjs} +1 -1
  64. package/es/style.css +1 -1
  65. package/es/{zh-cn-ab9a583d.cjs → zh-cn-37af467d.cjs} +1 -1
  66. package/es/{zh-cn-eb9c2820.js → zh-cn-ef7d7220.js} +2 -2
  67. package/lib/bundle.js +1 -1
  68. package/lib/bundle.umd.cjs +206 -206
  69. package/lib/{index-9b8ff62a.js → index-24f8572c.js} +31450 -33319
  70. package/lib/{python-a9c3d9e5.js → python-2143eee4.js} +1 -1
  71. package/lib/style.css +1 -1
  72. package/package.json +1 -1
  73. package/packages/KlineBasic/components/KlineSub/index.vue +17 -3
  74. package/packages/KlineBasic/index.vue +2 -1
  75. package/packages/KlineBasic/utils.js +20 -2
  76. package/packages/index.ts +0 -2
  77. package/src/pages/KlineBasic/api.js +1 -1
  78. package/src/router/routes.ts +0 -5
  79. package/es/Kline.cjs +0 -1
  80. package/es/Kline.js +0 -1901
  81. package/es/_initCloneObject-441db749.cjs +0 -1
  82. package/es/castArray-4251bbe4.js +0 -10
  83. package/es/castArray-a45823fe.cjs +0 -1
  84. package/es/config-provider-55482a43.js +0 -47
  85. package/es/config-provider-7cdfca4d.cjs +0 -1
  86. package/es/debounce-ac30be50.js +0 -83
  87. package/es/debounce-b2ff12bd.cjs +0 -1
  88. package/es/dropdown-d7c59a21.cjs +0 -1
  89. package/es/el-button-196807af.cjs +0 -1
  90. package/es/el-button-e1665717.js +0 -235
  91. package/es/el-checkbox-group-492b95cc.cjs +0 -1
  92. package/es/el-form-item-5bdffd07.cjs +0 -12
  93. package/es/el-input-23e2bac3.cjs +0 -1
  94. package/es/el-input-number-40a81eb5.cjs +0 -1
  95. package/es/el-menu-item-78b858f2.cjs +0 -1
  96. package/es/el-menu-item-7d04c11a.js +0 -771
  97. package/es/el-message-d4df8136.cjs +0 -1
  98. package/es/el-overlay-12dd9b35.js +0 -519
  99. package/es/el-overlay-bc0790a2.cjs +0 -1
  100. package/es/el-popover-8a77e015.cjs +0 -1
  101. package/es/el-popper-50100766.js +0 -2262
  102. package/es/el-popper-746070ba.cjs +0 -1
  103. package/es/el-scrollbar-562d0595.js +0 -201
  104. package/es/el-scrollbar-d1c3e7f7.cjs +0 -1
  105. package/es/el-select-b162dffc.cjs +0 -1
  106. package/es/el-table-column-6d761fce.cjs +0 -14
  107. package/es/el-tag-985d9aff.js +0 -279
  108. package/es/el-tag-c51a6490.cjs +0 -1
  109. package/es/index-09e01b1d.js +0 -81
  110. package/es/index-0cb48e01.js +0 -306
  111. package/es/index-3bf8d597.cjs +0 -1
  112. package/es/index-657047bb.js +0 -513
  113. package/es/index-8a0b1c53.cjs +0 -3
  114. package/es/index-a387515d.cjs +0 -1
  115. package/es/index-a902a0d9.js +0 -59
  116. package/es/index-deb8de52.cjs +0 -1
  117. package/es/index-eea0bcb3.cjs +0 -1
  118. package/es/index.esm-8d9a2abe.js +0 -2432
  119. package/es/index.esm-94a95a2a.cjs +0 -3
  120. package/es/raf-8fc301fd.cjs +0 -1
  121. package/es/raf-b128c7b7.js +0 -6
  122. package/es/typescript-7ae59c4c.js +0 -4
  123. package/es/typescript-b63f8e83.cjs +0 -1
  124. package/es/use-form-common-props-1b84d8f4.cjs +0 -2
  125. package/es/use-form-common-props-f377e500.js +0 -587
  126. package/es/vnode-7dfd4ed5.js +0 -14
  127. package/es/vnode-7fbc61e1.cjs +0 -1
  128. package/packages/Kline/components/Contextmenu/index.vue +0 -110
  129. package/packages/Kline/components/Tips/index.vue +0 -40
  130. package/packages/Kline/componentsNew/KlineSlide/index.vue +0 -155
  131. package/packages/Kline/componentsNew/KlineSub/index.vue +0 -297
  132. package/packages/Kline/componentsNew/KlineTips/index.vue +0 -66
  133. package/packages/Kline/componentsNew/KlineUtils/index.vue +0 -84
  134. package/packages/Kline/componentsNew/Tips/index.vue +0 -33
  135. package/packages/Kline/formatKlineData.ts +0 -109
  136. package/packages/Kline/images/buy.svg +0 -1
  137. package/packages/Kline/images/pen.png +0 -0
  138. package/packages/Kline/images/sell.svg +0 -1
  139. package/packages/Kline/images/t.svg +0 -1
  140. package/packages/Kline/index.ts +0 -16
  141. package/packages/Kline/index.vue +0 -891
  142. package/packages/Kline/option.ts +0 -539
  143. package/packages/Kline/type.d.ts +0 -219
  144. package/packages/Kline/utils.ts +0 -682
  145. package/src/pages/Kline/api.ts +0 -127
  146. package/src/pages/Kline/components/MultiCycleSingleVariety.vue +0 -701
  147. package/src/pages/Kline/components/SingleCycleSingleVariety.vue +0 -924
  148. package/src/pages/Kline/index.vue +0 -90
package/es/KlineNew.js CHANGED
@@ -1,73 +1,2495 @@
1
- import { defineComponent as R, openBlock as T, createElementBlock as L, Fragment as K, renderList as Z, normalizeStyle as H, toDisplayString as N, computed as $, createVNode as O, ref as j, onMounted as U, onUnmounted as Y, nextTick as J, createElementVNode as P, withCtx as Q, createBlock as W, createCommentVNode as X, watch as ee } from "vue";
2
- import { i as te, t as z } from "./index.esm-8d9a2abe.js";
3
- import { _ as q } from "./_plugin-vue_export-helper-dad06003.js";
4
- import { x as G } from "./index-8542fe24.js";
5
- import "./base-437d17f3.js";
6
- import "./el-tag-985d9aff.js";
7
- import { E as ae, a as ne } from "./el-select-9381b156.js";
8
- import "./el-scrollbar-562d0595.js";
9
- import "./el-popper-50100766.js";
10
- import * as B from "echarts";
11
- import "./index-39ec9741.js";
12
- import "./use-form-common-props-f377e500.js";
13
- import "./castArray-4251bbe4.js";
14
- import "./index-a902a0d9.js";
15
- import "./index-0cb48e01.js";
16
- import "./scroll-387fcfdb.js";
17
- import "./debounce-ac30be50.js";
18
- const oe = /* @__PURE__ */ R({
1
+ import { defineComponent as Ae, openBlock as Q, createElementBlock as oe, Fragment as _n, renderList as An, normalizeStyle as oi, toDisplayString as sn, computed as Ce, createVNode as ge, ref as Dn, onMounted as dn, onUnmounted as In, nextTick as ii, createElementVNode as mn, withCtx as ri, createBlock as ui, createCommentVNode as li, watch as pi } from "vue";
2
+ import { _ as Ne } from "./_plugin-vue_export-helper-dad06003.js";
3
+ import { x as Tn } from "./index-8542fe24.js";
4
+ import "./base-674a354a.js";
5
+ import "./el-tag-73372c6c.js";
6
+ import { E as si, a as mi } from "./el-select-bcbb7e55.js";
7
+ import "./el-scrollbar-35bac6b3.js";
8
+ import * as Ue from "echarts";
9
+ import "./index-45de4a12.js";
10
+ import "./index-8c85d7c5.js";
11
+ import "./index-8b5fbc11.js";
12
+ import "./scroll-cb696ed2.js";
13
+ var Fe = function() {
14
+ var n = typeof document < "u" && document.currentScript ? document.currentScript.src : void 0;
15
+ return typeof __filename < "u" && (n = n || __filename), function(N) {
16
+ N = N || {};
17
+ var e = typeof N < "u" ? N : {}, b, w;
18
+ e.ready = new Promise(function(t, i) {
19
+ b = t, w = i;
20
+ });
21
+ var h = {}, y;
22
+ for (y in e)
23
+ e.hasOwnProperty(y) && (h[y] = e[y]);
24
+ var f = function(t, i) {
25
+ throw i;
26
+ }, _ = !1, A = !1, E = !1, L = !1;
27
+ _ = typeof window == "object", A = typeof importScripts == "function", E = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string", L = !_ && !E && !A;
28
+ var u = "";
29
+ function l(t) {
30
+ return e.locateFile ? e.locateFile(t, u) : u + t;
31
+ }
32
+ var p, s, I, H;
33
+ E ? (A ? u = require("path").dirname(u) + "/" : u = __dirname + "/", p = function(i, r) {
34
+ return I || (I = require("fs")), H || (H = require("path")), i = H.normalize(i), I.readFileSync(i, r ? null : "utf8");
35
+ }, s = function(i) {
36
+ var r = p(i, !0);
37
+ return r.buffer || (r = new Uint8Array(r)), P(r.buffer), r;
38
+ }, process.argv.length > 1 && process.argv[1].replace(/\\/g, "/"), process.argv.slice(2), process.on("uncaughtException", function(t) {
39
+ if (!(t instanceof Me))
40
+ throw t;
41
+ }), process.on("unhandledRejection", se), f = function(t) {
42
+ process.exit(t);
43
+ }, e.inspect = function() {
44
+ return "[Emscripten Module object]";
45
+ }) : L ? (typeof read < "u" && (p = function(i) {
46
+ return read(i);
47
+ }), s = function(i) {
48
+ var r;
49
+ return typeof readbuffer == "function" ? new Uint8Array(readbuffer(i)) : (r = read(i, "binary"), P(typeof r == "object"), r);
50
+ }, typeof scriptArgs < "u" && scriptArgs, typeof quit == "function" && (f = function(t) {
51
+ quit(t);
52
+ }), typeof print < "u" && (typeof console > "u" && (console = {}), console.log = print, console.warn = console.error = typeof printErr < "u" ? printErr : print)) : (_ || A) && (A ? u = self.location.href : document.currentScript && (u = document.currentScript.src), n && (u = n), u.indexOf("blob:") !== 0 ? u = u.substr(
53
+ 0,
54
+ u.lastIndexOf("/") + 1
55
+ ) : u = "", p = function(i) {
56
+ var r = new XMLHttpRequest();
57
+ return r.open("GET", i, !1), r.send(null), r.responseText;
58
+ }, A && (s = function(i) {
59
+ var r = new XMLHttpRequest();
60
+ return r.open("GET", i, !1), r.responseType = "arraybuffer", r.send(null), new Uint8Array(r.response);
61
+ })), e.print || console.log.bind(console);
62
+ var V = e.printErr || console.warn.bind(console);
63
+ for (y in h)
64
+ h.hasOwnProperty(y) && (e[y] = h[y]);
65
+ h = null, e.arguments && e.arguments, e.thisProgram && e.thisProgram, e.quit && (f = e.quit);
66
+ var O = 16;
67
+ function x(t, i) {
68
+ return i || (i = O), Math.ceil(t / i) * i;
69
+ }
70
+ function Y(t, i) {
71
+ if (typeof WebAssembly.Function == "function") {
72
+ for (var r = { i: "i32", j: "i64", f: "f32", d: "f64" }, m = {
73
+ parameters: [],
74
+ results: i[0] == "v" ? [] : [r[i[0]]]
75
+ }, R = 1; R < i.length; ++R)
76
+ m.parameters.push(r[i[R]]);
77
+ return new WebAssembly.Function(m, t);
78
+ }
79
+ var D = [1, 0, 1, 96], c = i.slice(0, 1), d = i.slice(1), G = { i: 127, j: 126, f: 125, d: 124 };
80
+ D.push(d.length);
81
+ for (var R = 0; R < d.length; ++R)
82
+ D.push(G[d[R]]);
83
+ c == "v" ? D.push(0) : D = D.concat([1, G[c]]), D[1] = D.length - 2;
84
+ var S = new Uint8Array(
85
+ [0, 97, 115, 109, 1, 0, 0, 0].concat(D, [
86
+ 2,
87
+ 7,
88
+ 1,
89
+ 1,
90
+ 101,
91
+ 1,
92
+ 102,
93
+ 0,
94
+ 0,
95
+ 7,
96
+ 5,
97
+ 1,
98
+ 1,
99
+ 102,
100
+ 0,
101
+ 0
102
+ ])
103
+ ), v = new WebAssembly.Module(S), z = new WebAssembly.Instance(v, { e: { f: t } }), ue = z.exports.f;
104
+ return ue;
105
+ }
106
+ var U = [], C;
107
+ function M(t, i) {
108
+ var r = ie;
109
+ if (!C) {
110
+ C = /* @__PURE__ */ new WeakMap();
111
+ for (var m = 0; m < r.length; m++) {
112
+ var R = r.get(m);
113
+ R && C.set(R, m);
114
+ }
115
+ }
116
+ if (C.has(t))
117
+ return C.get(t);
118
+ var D;
119
+ if (U.length)
120
+ D = U.pop();
121
+ else {
122
+ D = r.length;
123
+ try {
124
+ r.grow(1);
125
+ } catch (d) {
126
+ throw d instanceof RangeError ? "Unable to grow wasm table. Set ALLOW_TABLE_GROWTH." : d;
127
+ }
128
+ }
129
+ try {
130
+ r.set(D, t);
131
+ } catch (d) {
132
+ if (!(d instanceof TypeError))
133
+ throw d;
134
+ var c = Y(t, i);
135
+ r.set(D, c);
136
+ }
137
+ return C.set(t, D), D;
138
+ }
139
+ function B(t, i) {
140
+ return M(t, i);
141
+ }
142
+ var j;
143
+ e.wasmBinary && (j = e.wasmBinary);
144
+ var J;
145
+ e.noExitRuntime && (J = e.noExitRuntime), typeof WebAssembly != "object" && se("no native wasm support detected");
146
+ var g, ie, T = !1;
147
+ function P(t, i) {
148
+ t || se("Assertion failed: " + i);
149
+ }
150
+ function $(t) {
151
+ var i = e["_" + t];
152
+ return P(
153
+ i,
154
+ "Cannot call unknown function " + t + ", make sure it is exported"
155
+ ), i;
156
+ }
157
+ function fo(t, i, r, m, R) {
158
+ var D = {
159
+ string: function(W) {
160
+ var Z = 0;
161
+ if (W != null && W !== 0) {
162
+ var k = (W.length << 2) + 1;
163
+ Z = Te(k), Ro(W, Z, k);
164
+ }
165
+ return Z;
166
+ },
167
+ array: function(W) {
168
+ var Z = Te(W.length);
169
+ return Eo(W, Z), Z;
170
+ }
171
+ };
172
+ function c(W) {
173
+ return i === "string" ? No(W) : i === "boolean" ? !!W : W;
174
+ }
175
+ var d = $(t), G = [], S = 0;
176
+ if (m)
177
+ for (var v = 0; v < m.length; v++) {
178
+ var z = D[r[v]];
179
+ z ? (S === 0 && (S = he()), G[v] = z(m[v])) : G[v] = m[v];
180
+ }
181
+ var ue = d.apply(null, G);
182
+ return ue = c(ue), S !== 0 && Oe(S), ue;
183
+ }
184
+ var Co = 1;
185
+ function go(t, i) {
186
+ var r;
187
+ return i == Co ? r = Te(t.length) : r = Pe(t.length), t.subarray || t.slice ? pe.set(t, r) : pe.set(new Uint8Array(t), r), r;
188
+ }
189
+ var We = typeof TextDecoder < "u" ? new TextDecoder("utf8") : void 0;
190
+ function ke(t, i, r) {
191
+ for (var m = i + r, R = i; t[R] && !(R >= m); )
192
+ ++R;
193
+ if (R - i > 16 && t.subarray && We)
194
+ return We.decode(t.subarray(i, R));
195
+ for (var D = ""; i < R; ) {
196
+ var c = t[i++];
197
+ if (!(c & 128)) {
198
+ D += String.fromCharCode(c);
199
+ continue;
200
+ }
201
+ var d = t[i++] & 63;
202
+ if ((c & 224) == 192) {
203
+ D += String.fromCharCode((c & 31) << 6 | d);
204
+ continue;
205
+ }
206
+ var G = t[i++] & 63;
207
+ if ((c & 240) == 224 ? c = (c & 15) << 12 | d << 6 | G : c = (c & 7) << 18 | d << 12 | G << 6 | t[i++] & 63, c < 65536)
208
+ D += String.fromCharCode(c);
209
+ else {
210
+ var S = c - 65536;
211
+ D += String.fromCharCode(55296 | S >> 10, 56320 | S & 1023);
212
+ }
213
+ }
214
+ return D;
215
+ }
216
+ function No(t, i) {
217
+ return t ? ke(pe, t, i) : "";
218
+ }
219
+ function Lo(t, i, r, m) {
220
+ if (!(m > 0))
221
+ return 0;
222
+ for (var R = r, D = r + m - 1, c = 0; c < t.length; ++c) {
223
+ var d = t.charCodeAt(c);
224
+ if (d >= 55296 && d <= 57343) {
225
+ var G = t.charCodeAt(++c);
226
+ d = 65536 + ((d & 1023) << 10) | G & 1023;
227
+ }
228
+ if (d <= 127) {
229
+ if (r >= D)
230
+ break;
231
+ i[r++] = d;
232
+ } else if (d <= 2047) {
233
+ if (r + 1 >= D)
234
+ break;
235
+ i[r++] = 192 | d >> 6, i[r++] = 128 | d & 63;
236
+ } else if (d <= 65535) {
237
+ if (r + 2 >= D)
238
+ break;
239
+ i[r++] = 224 | d >> 12, i[r++] = 128 | d >> 6 & 63, i[r++] = 128 | d & 63;
240
+ } else {
241
+ if (r + 3 >= D)
242
+ break;
243
+ i[r++] = 240 | d >> 18, i[r++] = 128 | d >> 12 & 63, i[r++] = 128 | d >> 6 & 63, i[r++] = 128 | d & 63;
244
+ }
245
+ }
246
+ return i[r] = 0, r - R;
247
+ }
248
+ function Ro(t, i, r) {
249
+ return Lo(t, pe, i, r);
250
+ }
251
+ function Eo(t, i) {
252
+ Le.set(t, i);
253
+ }
254
+ var Xe = 65536, De, Le, pe;
255
+ function bo(t) {
256
+ De = t, e.HEAP8 = Le = new Int8Array(t), e.HEAP16 = new Int16Array(t), e.HEAP32 = new Int32Array(t), e.HEAPU8 = pe = new Uint8Array(t), e.HEAPU16 = new Uint16Array(t), e.HEAPU32 = new Uint32Array(t), e.HEAPF32 = new Float32Array(t), e.HEAPF64 = new Float64Array(t);
257
+ }
258
+ var So = 5247776;
259
+ e.___heap_base = 5247776;
260
+ var Re = e.INITIAL_MEMORY || 16777216;
261
+ e.wasmMemory ? g = e.wasmMemory : g = new WebAssembly.Memory({
262
+ initial: Re / Xe,
263
+ maximum: Re / Xe
264
+ }), g && (De = g.buffer), Re = De.byteLength, bo(De);
265
+ var ie = new WebAssembly.Table({ initial: 1, element: "anyfunc" }), Je = [], Ee = [], Po = [], Ye = [], be = !1;
266
+ function ho() {
267
+ if (e.preRun)
268
+ for (typeof e.preRun == "function" && (e.preRun = [e.preRun]); e.preRun.length; )
269
+ je(e.preRun.shift());
270
+ de(Je);
271
+ }
272
+ function Oo() {
273
+ be = !0, de(Ee);
274
+ }
275
+ function Mo() {
276
+ de(Po);
277
+ }
278
+ function Ho() {
279
+ if (e.postRun)
280
+ for (typeof e.postRun == "function" && (e.postRun = [e.postRun]); e.postRun.length; )
281
+ vo(e.postRun.shift());
282
+ de(Ye);
283
+ }
284
+ function je(t) {
285
+ Je.unshift(t);
286
+ }
287
+ function vo(t) {
288
+ Ye.unshift(t);
289
+ }
290
+ var re = 0, ce = null;
291
+ function qe(t) {
292
+ re++, e.monitorRunDependencies && e.monitorRunDependencies(re);
293
+ }
294
+ function ze(t) {
295
+ if (re--, e.monitorRunDependencies && e.monitorRunDependencies(re), re == 0 && ce) {
296
+ var i = ce;
297
+ ce = null, i();
298
+ }
299
+ }
300
+ e.preloadedImages = {}, e.preloadedAudios = {}, e.preloadedWasm = {}, je(Xo);
301
+ function se(t) {
302
+ e.onAbort && e.onAbort(t), t += "", V(t), T = !0, t = "abort(" + t + "). Build with -s ASSERTIONS=1 for more info.";
303
+ var i = new WebAssembly.RuntimeError(t);
304
+ throw w(i), i;
305
+ }
306
+ function $e(t, i) {
307
+ return String.prototype.startsWith ? t.startsWith(i) : t.indexOf(i) === 0;
308
+ }
309
+ var wo = "data:application/octet-stream;base64,";
310
+ function Ze(t) {
311
+ return $e(t, wo);
312
+ }
313
+ var Go = "file://";
314
+ function Qe(t) {
315
+ return $e(t, Go);
316
+ }
317
+ var q = "talib.wasm";
318
+ Ze(q) || (q = l(q));
319
+ function en() {
320
+ try {
321
+ if (j)
322
+ return new Uint8Array(j);
323
+ if (s)
324
+ return s(q);
325
+ throw "both async and sync fetching of the wasm failed";
326
+ } catch (t) {
327
+ se(t);
328
+ }
329
+ }
330
+ function Vo() {
331
+ return !j && (_ || A) && typeof fetch == "function" && !Qe(q) ? fetch(q, { credentials: "same-origin" }).then(function(t) {
332
+ if (!t.ok)
333
+ throw "failed to load wasm binary file at '" + q + "'";
334
+ return t.arrayBuffer();
335
+ }).catch(function() {
336
+ return en();
337
+ }) : Promise.resolve().then(en);
338
+ }
339
+ function xo() {
340
+ var t = { env: Se, wasi_snapshot_preview1: Se };
341
+ function i(c, d) {
342
+ var G = c.exports;
343
+ G = nn(G, 1024), e.asm = G, ze();
344
+ }
345
+ qe();
346
+ function r(c) {
347
+ i(c.instance);
348
+ }
349
+ function m(c) {
350
+ return Vo().then(function(d) {
351
+ return WebAssembly.instantiate(d, t);
352
+ }).then(c, function(d) {
353
+ V("failed to asynchronously prepare wasm: " + d), se(d);
354
+ });
355
+ }
356
+ function R() {
357
+ if (!j && typeof WebAssembly.instantiateStreaming == "function" && !Ze(q) && !Qe(q) && typeof fetch == "function")
358
+ fetch(q, { credentials: "same-origin" }).then(function(c) {
359
+ var d = WebAssembly.instantiateStreaming(c, t);
360
+ return d.then(r, function(G) {
361
+ return V("wasm streaming compile failed: " + G), V("falling back to ArrayBuffer instantiation"), m(r);
362
+ });
363
+ });
364
+ else
365
+ return m(r);
366
+ }
367
+ if (e.instantiateWasm)
368
+ try {
369
+ var D = e.instantiateWasm(t, i);
370
+ return D;
371
+ } catch (c) {
372
+ return V("Module.instantiateWasm callback failed with error: " + c), !1;
373
+ }
374
+ return R(), {};
375
+ }
376
+ function de(t) {
377
+ for (; t.length > 0; ) {
378
+ var i = t.shift();
379
+ if (typeof i == "function") {
380
+ i(e);
381
+ continue;
382
+ }
383
+ var r = i.func;
384
+ typeof r == "number" ? i.arg === void 0 ? ie.get(r)() : ie.get(r)(i.arg) : r(i.arg === void 0 ? null : i.arg);
385
+ }
386
+ }
387
+ function Uo(t, i, r) {
388
+ return r && r.length ? e["dynCall_" + t].apply(null, [i].concat(r)) : e["dynCall_" + t].call(null, i);
389
+ }
390
+ function Bo(t, i, r) {
391
+ return t.indexOf("j") != -1 ? Uo(t, i, r) : ie.get(i).apply(null, r);
392
+ }
393
+ var ee = { nextHandle: 1, loadedLibs: {}, loadedLibNames: {} };
394
+ function Ko(t) {
395
+ return function() {
396
+ var i = he();
397
+ try {
398
+ return Bo(
399
+ t,
400
+ arguments[0],
401
+ Array.prototype.slice.call(arguments, 1)
402
+ );
403
+ } catch (r) {
404
+ if (Oe(i), r !== r + 0 && r !== "longjmp")
405
+ throw r;
406
+ _setThrew(1, 0);
407
+ }
408
+ };
409
+ }
410
+ function Fo(t) {
411
+ if (be)
412
+ return Pe(t);
413
+ var i = e.___heap_base, r = i + t + 15 & -16;
414
+ return e.___heap_base = r, i;
415
+ }
416
+ function nn(t, i, r) {
417
+ var m = {};
418
+ for (var R in t) {
419
+ var D = t[R];
420
+ typeof D == "object" && (D = D.value), typeof D == "number" && (D += i), m[R] = D, r && (r["_" + R] = D);
421
+ }
422
+ return m;
423
+ }
424
+ function tn(t) {
425
+ var i = [
426
+ "setTempRet0",
427
+ "getTempRet0",
428
+ "stackAlloc",
429
+ "stackSave",
430
+ "stackRestore"
431
+ ];
432
+ return t.indexOf("dynCall_") == 0 || i.indexOf(t) != -1 ? t : "_" + t;
433
+ }
434
+ function Wo(t, i) {
435
+ var r = new Uint32Array(
436
+ new Uint8Array(t.subarray(0, 24)).buffer
437
+ );
438
+ P(r[0] == 1836278016, "need to see wasm magic number"), P(t[8] === 0, "need the dylink section to be first");
439
+ var m = 9;
440
+ function R() {
441
+ for (var k = 0, me = 1; ; ) {
442
+ var ne = t[m++];
443
+ if (k += (ne & 127) * me, me *= 128, !(ne & 128))
444
+ break;
445
+ }
446
+ return k;
447
+ }
448
+ R(), P(t[m] === 6), m++, P(t[m] === "d".charCodeAt(0)), m++, P(t[m] === "y".charCodeAt(0)), m++, P(t[m] === "l".charCodeAt(0)), m++, P(t[m] === "i".charCodeAt(0)), m++, P(t[m] === "n".charCodeAt(0)), m++, P(t[m] === "k".charCodeAt(0)), m++;
449
+ var D = R(), c = R(), d = R();
450
+ R();
451
+ for (var G = R(), S = [], v = 0; v < G; ++v) {
452
+ var z = R(), ue = t.subarray(m, m + z);
453
+ m += z;
454
+ var W = ke(ue, 0);
455
+ S.push(W);
456
+ }
457
+ function Z() {
458
+ c = Math.pow(2, c), c = Math.max(c, O);
459
+ var k = x(
460
+ Fo(D + c),
461
+ c
462
+ ), me = Se, ne = ie, ve = ne.length, Qo = ne;
463
+ ne.grow(d), P(ne === Qo);
464
+ for (var le = k; le < k + D; le++)
465
+ Le[le] = 0;
466
+ for (var le = ve; le < ve + d; le++)
467
+ ne.set(le, null);
468
+ var we = {}, Ge = function(K, X, te) {
469
+ te && (K = "orig$" + K);
470
+ var F = e.asm[K];
471
+ if (!F) {
472
+ var _e = tn(K);
473
+ F = e[_e], F || (F = we[_e]), !F && K.startsWith("invoke_") && (F = Ko(K.split("_")[1]));
474
+ }
475
+ return F;
476
+ };
477
+ for (var Ve in e)
478
+ Ve in me || (me[Ve] = e[Ve]);
479
+ var ei = {
480
+ get: function(K, X) {
481
+ switch (X) {
482
+ case "__memory_base":
483
+ return k;
484
+ case "__table_base":
485
+ return ve;
486
+ }
487
+ if (X in K)
488
+ return K[X];
489
+ if (X.startsWith("g$")) {
490
+ var te = X.substr(2);
491
+ return K[X] = function() {
492
+ return Ge(te);
493
+ };
494
+ }
495
+ if (X.startsWith("fp$")) {
496
+ var F = X.split("$");
497
+ P(F.length == 3);
498
+ var te = F[1], _e = F[2], ti = _e.indexOf("j") >= 0, xe = 0;
499
+ return K[X] = function() {
500
+ if (!xe) {
501
+ var ai = Ge(te, "function", ti);
502
+ xe = B(ai, _e);
503
+ }
504
+ return xe;
505
+ };
506
+ }
507
+ return K[X] = function() {
508
+ return Ge(X).apply(null, arguments);
509
+ };
510
+ }
511
+ }, un = new Proxy(me, ei), ln = {
512
+ global: { NaN: NaN, Infinity: 1 / 0 },
513
+ "global.Math": Math,
514
+ env: un,
515
+ wasi_snapshot_preview1: un
516
+ };
517
+ function pn(K, X) {
518
+ var te = nn(
519
+ K.exports,
520
+ k,
521
+ X
522
+ ), F = te.__post_instantiate;
523
+ return F && (be ? F() : Ee.push(F)), te;
524
+ }
525
+ if (i.loadAsync)
526
+ return WebAssembly.instantiate(t, ln).then(function(K) {
527
+ return pn(K.instance, we);
528
+ });
529
+ var ni = new WebAssembly.Instance(
530
+ new WebAssembly.Module(t),
531
+ ln
532
+ );
533
+ return pn(ni, we);
534
+ }
535
+ return i.loadAsync ? Promise.all(
536
+ S.map(function(k) {
537
+ return Ie(k, i);
538
+ })
539
+ ).then(function() {
540
+ return Z();
541
+ }) : (S.forEach(function(k) {
542
+ Ie(k, i);
543
+ }), Z());
544
+ }
545
+ function ko(t) {
546
+ return fetch(t, { credentials: "same-origin" }).then(function(i) {
547
+ if (!i.ok)
548
+ throw "failed to load binary file at '" + t + "'";
549
+ return i.arrayBuffer();
550
+ }).then(function(i) {
551
+ return new Uint8Array(i);
552
+ });
553
+ }
554
+ function Ie(t, i) {
555
+ t == "__self__" && !ee.loadedLibNames[t] && (ee.loadedLibs[-1] = {
556
+ refcount: 1 / 0,
557
+ name: "__self__",
558
+ module: e.asm,
559
+ global: !0
560
+ }, ee.loadedLibNames.__self__ = -1), i = i || { global: !0, nodelete: !0 };
561
+ var r = ee.loadedLibNames[t], m;
562
+ if (r)
563
+ return m = ee.loadedLibs[r], i.global && !m.global && (m.global = !0, m.module !== "loading" && d(m.module)), i.nodelete && m.refcount !== 1 / 0 && (m.refcount = 1 / 0), m.refcount++, i.loadAsync ? Promise.resolve(r) : r;
564
+ r = ee.nextHandle++, m = {
565
+ refcount: i.nodelete ? 1 / 0 : 1,
566
+ name: t,
567
+ module: "loading",
568
+ global: i.global
569
+ }, ee.loadedLibNames[t] = r, ee.loadedLibs[r] = m;
570
+ function R(S) {
571
+ if (i.fs) {
572
+ var v = i.fs.readFile(S, { encoding: "binary" });
573
+ return v instanceof Uint8Array || (v = new Uint8Array(lib_data)), i.loadAsync ? Promise.resolve(v) : v;
574
+ }
575
+ return i.loadAsync ? ko(S) : s(S);
576
+ }
577
+ function D(S) {
578
+ return Wo(S, i);
579
+ }
580
+ function c() {
581
+ if (e.preloadedWasm !== void 0 && e.preloadedWasm[t] !== void 0) {
582
+ var S = e.preloadedWasm[t];
583
+ return i.loadAsync ? Promise.resolve(S) : S;
584
+ }
585
+ return i.loadAsync ? R(t).then(function(v) {
586
+ return D(v);
587
+ }) : D(R(t));
588
+ }
589
+ function d(S) {
590
+ for (var v in S)
591
+ if (S.hasOwnProperty(v)) {
592
+ var z = tn(v);
593
+ e.hasOwnProperty(z) || (e[z] = S[v]);
594
+ }
595
+ }
596
+ function G(S) {
597
+ m.global && d(S), m.module = S;
598
+ }
599
+ return i.loadAsync ? c().then(function(S) {
600
+ return G(S), r;
601
+ }) : (G(c()), r);
602
+ }
603
+ function Xo() {
604
+ var t = [];
605
+ if (e.dynamicLibraries && (t = t.concat(e.dynamicLibraries)), !!t.length) {
606
+ if (!s) {
607
+ qe(), Promise.all(
608
+ t.map(function(i) {
609
+ return Ie(i, {
610
+ loadAsync: !0,
611
+ global: !0,
612
+ nodelete: !0
613
+ });
614
+ })
615
+ ).then(function() {
616
+ ze();
617
+ });
618
+ return;
619
+ }
620
+ t.forEach(function(i) {
621
+ Ie(i, { global: !0, nodelete: !0 });
622
+ });
623
+ }
624
+ }
625
+ function Jo(t, i, r) {
626
+ pe.copyWithin(t, i, i + r);
627
+ }
628
+ function Yo(t) {
629
+ se("OOM");
630
+ }
631
+ function jo(t) {
632
+ Yo();
633
+ }
634
+ function qo() {
635
+ return e.___heap_base;
636
+ }
637
+ Ee.push(
638
+ {
639
+ func: function() {
640
+ on();
641
+ }
642
+ },
643
+ {
644
+ func: function() {
645
+ an();
646
+ }
647
+ }
648
+ );
649
+ var Se = {
650
+ __indirect_function_table: ie,
651
+ __memory_base: 1024,
652
+ __stack_pointer: So,
653
+ __table_base: 1,
654
+ emscripten_memcpy_big: Jo,
655
+ emscripten_resize_heap: jo,
656
+ g$__heap_base: qo,
657
+ memory: g
658
+ };
659
+ xo();
660
+ var an = e.___wasm_call_ctors = function() {
661
+ return (an = e.___wasm_call_ctors = e.asm.__wasm_call_ctors).apply(null, arguments);
662
+ };
663
+ e._TA_ACCBANDS = function() {
664
+ return (e._TA_ACCBANDS = e.asm.TA_ACCBANDS).apply(null, arguments);
665
+ };
666
+ var Pe = e._malloc = function() {
667
+ return (Pe = e._malloc = e.asm.malloc).apply(
668
+ null,
669
+ arguments
670
+ );
671
+ };
672
+ e._free = function() {
673
+ return (e._free = e.asm.free).apply(
674
+ null,
675
+ arguments
676
+ );
677
+ }, e._TA_SMA = function() {
678
+ return (e._TA_SMA = e.asm.TA_SMA).apply(
679
+ null,
680
+ arguments
681
+ );
682
+ }, e._TA_ACOS = function() {
683
+ return (e._TA_ACOS = e.asm.TA_ACOS).apply(
684
+ null,
685
+ arguments
686
+ );
687
+ }, e._TA_AD = function() {
688
+ return (e._TA_AD = e.asm.TA_AD).apply(
689
+ null,
690
+ arguments
691
+ );
692
+ }, e._TA_ADD = function() {
693
+ return (e._TA_ADD = e.asm.TA_ADD).apply(
694
+ null,
695
+ arguments
696
+ );
697
+ }, e._TA_ADOSC = function() {
698
+ return (e._TA_ADOSC = e.asm.TA_ADOSC).apply(null, arguments);
699
+ }, e._TA_ADX = function() {
700
+ return (e._TA_ADX = e.asm.TA_ADX).apply(
701
+ null,
702
+ arguments
703
+ );
704
+ }, e._TA_ADXR = function() {
705
+ return (e._TA_ADXR = e.asm.TA_ADXR).apply(
706
+ null,
707
+ arguments
708
+ );
709
+ }, e._TA_APO = function() {
710
+ return (e._TA_APO = e.asm.TA_APO).apply(
711
+ null,
712
+ arguments
713
+ );
714
+ }, e._TA_MA = function() {
715
+ return (e._TA_MA = e.asm.TA_MA).apply(
716
+ null,
717
+ arguments
718
+ );
719
+ }, e._TA_AROON = function() {
720
+ return (e._TA_AROON = e.asm.TA_AROON).apply(null, arguments);
721
+ }, e._TA_AROONOSC = function() {
722
+ return (e._TA_AROONOSC = e.asm.TA_AROONOSC).apply(null, arguments);
723
+ }, e._TA_ASIN = function() {
724
+ return (e._TA_ASIN = e.asm.TA_ASIN).apply(
725
+ null,
726
+ arguments
727
+ );
728
+ }, e._TA_ATAN = function() {
729
+ return (e._TA_ATAN = e.asm.TA_ATAN).apply(
730
+ null,
731
+ arguments
732
+ );
733
+ }, e._TA_ATR = function() {
734
+ return (e._TA_ATR = e.asm.TA_ATR).apply(
735
+ null,
736
+ arguments
737
+ );
738
+ }, e._TA_TRANGE = function() {
739
+ return (e._TA_TRANGE = e.asm.TA_TRANGE).apply(null, arguments);
740
+ }, e._TA_AVGDEV = function() {
741
+ return (e._TA_AVGDEV = e.asm.TA_AVGDEV).apply(null, arguments);
742
+ }, e._TA_AVGPRICE = function() {
743
+ return (e._TA_AVGPRICE = e.asm.TA_AVGPRICE).apply(null, arguments);
744
+ }, e._TA_BBANDS = function() {
745
+ return (e._TA_BBANDS = e.asm.TA_BBANDS).apply(null, arguments);
746
+ }, e._TA_STDDEV = function() {
747
+ return (e._TA_STDDEV = e.asm.TA_STDDEV).apply(null, arguments);
748
+ }, e._TA_BETA = function() {
749
+ return (e._TA_BETA = e.asm.TA_BETA).apply(
750
+ null,
751
+ arguments
752
+ );
753
+ }, e._TA_BOP = function() {
754
+ return (e._TA_BOP = e.asm.TA_BOP).apply(
755
+ null,
756
+ arguments
757
+ );
758
+ }, e._TA_CCI = function() {
759
+ return (e._TA_CCI = e.asm.TA_CCI).apply(
760
+ null,
761
+ arguments
762
+ );
763
+ }, e._TA_CDL2CROWS = function() {
764
+ return (e._TA_CDL2CROWS = e.asm.TA_CDL2CROWS).apply(null, arguments);
765
+ }, e._TA_CDL3BLACKCROWS = function() {
766
+ return (e._TA_CDL3BLACKCROWS = e.asm.TA_CDL3BLACKCROWS).apply(null, arguments);
767
+ }, e._TA_CDL3INSIDE = function() {
768
+ return (e._TA_CDL3INSIDE = e.asm.TA_CDL3INSIDE).apply(null, arguments);
769
+ }, e._TA_CDL3LINESTRIKE = function() {
770
+ return (e._TA_CDL3LINESTRIKE = e.asm.TA_CDL3LINESTRIKE).apply(null, arguments);
771
+ }, e._TA_CDL3OUTSIDE = function() {
772
+ return (e._TA_CDL3OUTSIDE = e.asm.TA_CDL3OUTSIDE).apply(null, arguments);
773
+ }, e._TA_CDL3STARSINSOUTH = function() {
774
+ return (e._TA_CDL3STARSINSOUTH = e.asm.TA_CDL3STARSINSOUTH).apply(null, arguments);
775
+ }, e._TA_CDL3WHITESOLDIERS = function() {
776
+ return (e._TA_CDL3WHITESOLDIERS = e.asm.TA_CDL3WHITESOLDIERS).apply(null, arguments);
777
+ }, e._TA_CDLABANDONEDBABY = function() {
778
+ return (e._TA_CDLABANDONEDBABY = e.asm.TA_CDLABANDONEDBABY).apply(null, arguments);
779
+ }, e._TA_CDLADVANCEBLOCK = function() {
780
+ return (e._TA_CDLADVANCEBLOCK = e.asm.TA_CDLADVANCEBLOCK).apply(null, arguments);
781
+ }, e._TA_CDLBELTHOLD = function() {
782
+ return (e._TA_CDLBELTHOLD = e.asm.TA_CDLBELTHOLD).apply(null, arguments);
783
+ }, e._TA_CDLBREAKAWAY = function() {
784
+ return (e._TA_CDLBREAKAWAY = e.asm.TA_CDLBREAKAWAY).apply(null, arguments);
785
+ }, e._TA_CDLCLOSINGMARUBOZU = function() {
786
+ return (e._TA_CDLCLOSINGMARUBOZU = e.asm.TA_CDLCLOSINGMARUBOZU).apply(null, arguments);
787
+ }, e._TA_CDLCONCEALBABYSWALL = function() {
788
+ return (e._TA_CDLCONCEALBABYSWALL = e.asm.TA_CDLCONCEALBABYSWALL).apply(null, arguments);
789
+ }, e._TA_CDLCOUNTERATTACK = function() {
790
+ return (e._TA_CDLCOUNTERATTACK = e.asm.TA_CDLCOUNTERATTACK).apply(null, arguments);
791
+ }, e._TA_CDLDARKCLOUDCOVER = function() {
792
+ return (e._TA_CDLDARKCLOUDCOVER = e.asm.TA_CDLDARKCLOUDCOVER).apply(null, arguments);
793
+ }, e._TA_CDLDOJI = function() {
794
+ return (e._TA_CDLDOJI = e.asm.TA_CDLDOJI).apply(null, arguments);
795
+ }, e._TA_CDLDOJISTAR = function() {
796
+ return (e._TA_CDLDOJISTAR = e.asm.TA_CDLDOJISTAR).apply(null, arguments);
797
+ }, e._TA_CDLDRAGONFLYDOJI = function() {
798
+ return (e._TA_CDLDRAGONFLYDOJI = e.asm.TA_CDLDRAGONFLYDOJI).apply(null, arguments);
799
+ }, e._TA_CDLENGULFING = function() {
800
+ return (e._TA_CDLENGULFING = e.asm.TA_CDLENGULFING).apply(null, arguments);
801
+ }, e._TA_CDLEVENINGDOJISTAR = function() {
802
+ return (e._TA_CDLEVENINGDOJISTAR = e.asm.TA_CDLEVENINGDOJISTAR).apply(null, arguments);
803
+ }, e._TA_CDLEVENINGSTAR = function() {
804
+ return (e._TA_CDLEVENINGSTAR = e.asm.TA_CDLEVENINGSTAR).apply(null, arguments);
805
+ }, e._TA_CDLGAPSIDESIDEWHITE = function() {
806
+ return (e._TA_CDLGAPSIDESIDEWHITE = e.asm.TA_CDLGAPSIDESIDEWHITE).apply(null, arguments);
807
+ }, e._TA_CDLGRAVESTONEDOJI = function() {
808
+ return (e._TA_CDLGRAVESTONEDOJI = e.asm.TA_CDLGRAVESTONEDOJI).apply(null, arguments);
809
+ }, e._TA_CDLHAMMER = function() {
810
+ return (e._TA_CDLHAMMER = e.asm.TA_CDLHAMMER).apply(null, arguments);
811
+ }, e._TA_CDLHANGINGMAN = function() {
812
+ return (e._TA_CDLHANGINGMAN = e.asm.TA_CDLHANGINGMAN).apply(null, arguments);
813
+ }, e._TA_CDLHARAMI = function() {
814
+ return (e._TA_CDLHARAMI = e.asm.TA_CDLHARAMI).apply(null, arguments);
815
+ }, e._TA_CDLHARAMICROSS = function() {
816
+ return (e._TA_CDLHARAMICROSS = e.asm.TA_CDLHARAMICROSS).apply(null, arguments);
817
+ }, e._TA_CDLHIGHWAVE = function() {
818
+ return (e._TA_CDLHIGHWAVE = e.asm.TA_CDLHIGHWAVE).apply(null, arguments);
819
+ }, e._TA_CDLHIKKAKE = function() {
820
+ return (e._TA_CDLHIKKAKE = e.asm.TA_CDLHIKKAKE).apply(null, arguments);
821
+ }, e._TA_CDLHIKKAKEMOD = function() {
822
+ return (e._TA_CDLHIKKAKEMOD = e.asm.TA_CDLHIKKAKEMOD).apply(null, arguments);
823
+ }, e._TA_CDLHOMINGPIGEON = function() {
824
+ return (e._TA_CDLHOMINGPIGEON = e.asm.TA_CDLHOMINGPIGEON).apply(null, arguments);
825
+ }, e._TA_CDLIDENTICAL3CROWS = function() {
826
+ return (e._TA_CDLIDENTICAL3CROWS = e.asm.TA_CDLIDENTICAL3CROWS).apply(null, arguments);
827
+ }, e._TA_CDLINNECK = function() {
828
+ return (e._TA_CDLINNECK = e.asm.TA_CDLINNECK).apply(null, arguments);
829
+ }, e._TA_CDLINVERTEDHAMMER = function() {
830
+ return (e._TA_CDLINVERTEDHAMMER = e.asm.TA_CDLINVERTEDHAMMER).apply(null, arguments);
831
+ }, e._TA_CDLKICKING = function() {
832
+ return (e._TA_CDLKICKING = e.asm.TA_CDLKICKING).apply(null, arguments);
833
+ }, e._TA_CDLKICKINGBYLENGTH = function() {
834
+ return (e._TA_CDLKICKINGBYLENGTH = e.asm.TA_CDLKICKINGBYLENGTH).apply(null, arguments);
835
+ }, e._TA_CDLLADDERBOTTOM = function() {
836
+ return (e._TA_CDLLADDERBOTTOM = e.asm.TA_CDLLADDERBOTTOM).apply(null, arguments);
837
+ }, e._TA_CDLLONGLEGGEDDOJI = function() {
838
+ return (e._TA_CDLLONGLEGGEDDOJI = e.asm.TA_CDLLONGLEGGEDDOJI).apply(null, arguments);
839
+ }, e._TA_CDLLONGLINE = function() {
840
+ return (e._TA_CDLLONGLINE = e.asm.TA_CDLLONGLINE).apply(null, arguments);
841
+ }, e._TA_CDLMARUBOZU = function() {
842
+ return (e._TA_CDLMARUBOZU = e.asm.TA_CDLMARUBOZU).apply(null, arguments);
843
+ }, e._TA_CDLMATCHINGLOW = function() {
844
+ return (e._TA_CDLMATCHINGLOW = e.asm.TA_CDLMATCHINGLOW).apply(null, arguments);
845
+ }, e._TA_CDLMATHOLD = function() {
846
+ return (e._TA_CDLMATHOLD = e.asm.TA_CDLMATHOLD).apply(null, arguments);
847
+ }, e._TA_CDLMORNINGDOJISTAR = function() {
848
+ return (e._TA_CDLMORNINGDOJISTAR = e.asm.TA_CDLMORNINGDOJISTAR).apply(null, arguments);
849
+ }, e._TA_CDLMORNINGSTAR = function() {
850
+ return (e._TA_CDLMORNINGSTAR = e.asm.TA_CDLMORNINGSTAR).apply(null, arguments);
851
+ }, e._TA_CDLONNECK = function() {
852
+ return (e._TA_CDLONNECK = e.asm.TA_CDLONNECK).apply(null, arguments);
853
+ }, e._TA_CDLPIERCING = function() {
854
+ return (e._TA_CDLPIERCING = e.asm.TA_CDLPIERCING).apply(null, arguments);
855
+ }, e._TA_CDLRICKSHAWMAN = function() {
856
+ return (e._TA_CDLRICKSHAWMAN = e.asm.TA_CDLRICKSHAWMAN).apply(null, arguments);
857
+ }, e._TA_CDLRISEFALL3METHODS = function() {
858
+ return (e._TA_CDLRISEFALL3METHODS = e.asm.TA_CDLRISEFALL3METHODS).apply(null, arguments);
859
+ }, e._TA_CDLSEPARATINGLINES = function() {
860
+ return (e._TA_CDLSEPARATINGLINES = e.asm.TA_CDLSEPARATINGLINES).apply(null, arguments);
861
+ }, e._TA_CDLSHOOTINGSTAR = function() {
862
+ return (e._TA_CDLSHOOTINGSTAR = e.asm.TA_CDLSHOOTINGSTAR).apply(null, arguments);
863
+ }, e._TA_CDLSHORTLINE = function() {
864
+ return (e._TA_CDLSHORTLINE = e.asm.TA_CDLSHORTLINE).apply(null, arguments);
865
+ }, e._TA_CDLSPINNINGTOP = function() {
866
+ return (e._TA_CDLSPINNINGTOP = e.asm.TA_CDLSPINNINGTOP).apply(null, arguments);
867
+ }, e._TA_CDLSTALLEDPATTERN = function() {
868
+ return (e._TA_CDLSTALLEDPATTERN = e.asm.TA_CDLSTALLEDPATTERN).apply(null, arguments);
869
+ }, e._TA_CDLSTICKSANDWICH = function() {
870
+ return (e._TA_CDLSTICKSANDWICH = e.asm.TA_CDLSTICKSANDWICH).apply(null, arguments);
871
+ }, e._TA_CDLTAKURI = function() {
872
+ return (e._TA_CDLTAKURI = e.asm.TA_CDLTAKURI).apply(null, arguments);
873
+ }, e._TA_CDLTASUKIGAP = function() {
874
+ return (e._TA_CDLTASUKIGAP = e.asm.TA_CDLTASUKIGAP).apply(null, arguments);
875
+ }, e._TA_CDLTHRUSTING = function() {
876
+ return (e._TA_CDLTHRUSTING = e.asm.TA_CDLTHRUSTING).apply(null, arguments);
877
+ }, e._TA_CDLTRISTAR = function() {
878
+ return (e._TA_CDLTRISTAR = e.asm.TA_CDLTRISTAR).apply(null, arguments);
879
+ }, e._TA_CDLUNIQUE3RIVER = function() {
880
+ return (e._TA_CDLUNIQUE3RIVER = e.asm.TA_CDLUNIQUE3RIVER).apply(null, arguments);
881
+ }, e._TA_CDLUPSIDEGAP2CROWS = function() {
882
+ return (e._TA_CDLUPSIDEGAP2CROWS = e.asm.TA_CDLUPSIDEGAP2CROWS).apply(null, arguments);
883
+ }, e._TA_CDLXSIDEGAP3METHODS = function() {
884
+ return (e._TA_CDLXSIDEGAP3METHODS = e.asm.TA_CDLXSIDEGAP3METHODS).apply(null, arguments);
885
+ }, e._TA_CEIL = function() {
886
+ return (e._TA_CEIL = e.asm.TA_CEIL).apply(
887
+ null,
888
+ arguments
889
+ );
890
+ }, e._TA_CMO = function() {
891
+ return (e._TA_CMO = e.asm.TA_CMO).apply(
892
+ null,
893
+ arguments
894
+ );
895
+ }, e._TA_CORREL = function() {
896
+ return (e._TA_CORREL = e.asm.TA_CORREL).apply(null, arguments);
897
+ }, e._TA_COS = function() {
898
+ return (e._TA_COS = e.asm.TA_COS).apply(
899
+ null,
900
+ arguments
901
+ );
902
+ }, e._TA_COSH = function() {
903
+ return (e._TA_COSH = e.asm.TA_COSH).apply(
904
+ null,
905
+ arguments
906
+ );
907
+ }, e._TA_DEMA = function() {
908
+ return (e._TA_DEMA = e.asm.TA_DEMA).apply(
909
+ null,
910
+ arguments
911
+ );
912
+ }, e._TA_DIV = function() {
913
+ return (e._TA_DIV = e.asm.TA_DIV).apply(
914
+ null,
915
+ arguments
916
+ );
917
+ }, e._TA_DX = function() {
918
+ return (e._TA_DX = e.asm.TA_DX).apply(
919
+ null,
920
+ arguments
921
+ );
922
+ }, e._TA_EMA = function() {
923
+ return (e._TA_EMA = e.asm.TA_EMA).apply(
924
+ null,
925
+ arguments
926
+ );
927
+ }, e._TA_EXP = function() {
928
+ return (e._TA_EXP = e.asm.TA_EXP).apply(
929
+ null,
930
+ arguments
931
+ );
932
+ }, e._TA_FLOOR = function() {
933
+ return (e._TA_FLOOR = e.asm.TA_FLOOR).apply(null, arguments);
934
+ }, e._TA_HT_DCPERIOD = function() {
935
+ return (e._TA_HT_DCPERIOD = e.asm.TA_HT_DCPERIOD).apply(null, arguments);
936
+ }, e._TA_HT_DCPHASE = function() {
937
+ return (e._TA_HT_DCPHASE = e.asm.TA_HT_DCPHASE).apply(null, arguments);
938
+ }, e._TA_HT_PHASOR = function() {
939
+ return (e._TA_HT_PHASOR = e.asm.TA_HT_PHASOR).apply(null, arguments);
940
+ }, e._TA_HT_SINE = function() {
941
+ return (e._TA_HT_SINE = e.asm.TA_HT_SINE).apply(null, arguments);
942
+ }, e._TA_HT_TRENDLINE = function() {
943
+ return (e._TA_HT_TRENDLINE = e.asm.TA_HT_TRENDLINE).apply(null, arguments);
944
+ }, e._TA_HT_TRENDMODE = function() {
945
+ return (e._TA_HT_TRENDMODE = e.asm.TA_HT_TRENDMODE).apply(null, arguments);
946
+ }, e._TA_IMI = function() {
947
+ return (e._TA_IMI = e.asm.TA_IMI).apply(
948
+ null,
949
+ arguments
950
+ );
951
+ }, e._TA_KAMA = function() {
952
+ return (e._TA_KAMA = e.asm.TA_KAMA).apply(
953
+ null,
954
+ arguments
955
+ );
956
+ }, e._TA_LINEARREG = function() {
957
+ return (e._TA_LINEARREG = e.asm.TA_LINEARREG).apply(null, arguments);
958
+ }, e._TA_LINEARREG_ANGLE = function() {
959
+ return (e._TA_LINEARREG_ANGLE = e.asm.TA_LINEARREG_ANGLE).apply(null, arguments);
960
+ }, e._TA_LINEARREG_INTERCEPT = function() {
961
+ return (e._TA_LINEARREG_INTERCEPT = e.asm.TA_LINEARREG_INTERCEPT).apply(null, arguments);
962
+ }, e._TA_LINEARREG_SLOPE = function() {
963
+ return (e._TA_LINEARREG_SLOPE = e.asm.TA_LINEARREG_SLOPE).apply(null, arguments);
964
+ }, e._TA_LN = function() {
965
+ return (e._TA_LN = e.asm.TA_LN).apply(
966
+ null,
967
+ arguments
968
+ );
969
+ }, e._TA_LOG10 = function() {
970
+ return (e._TA_LOG10 = e.asm.TA_LOG10).apply(null, arguments);
971
+ }, e._TA_WMA = function() {
972
+ return (e._TA_WMA = e.asm.TA_WMA).apply(
973
+ null,
974
+ arguments
975
+ );
976
+ }, e._TA_TEMA = function() {
977
+ return (e._TA_TEMA = e.asm.TA_TEMA).apply(
978
+ null,
979
+ arguments
980
+ );
981
+ }, e._TA_TRIMA = function() {
982
+ return (e._TA_TRIMA = e.asm.TA_TRIMA).apply(null, arguments);
983
+ }, e._TA_MAMA = function() {
984
+ return (e._TA_MAMA = e.asm.TA_MAMA).apply(
985
+ null,
986
+ arguments
987
+ );
988
+ }, e._TA_T3 = function() {
989
+ return (e._TA_T3 = e.asm.TA_T3).apply(
990
+ null,
991
+ arguments
992
+ );
993
+ }, e._TA_MACD = function() {
994
+ return (e._TA_MACD = e.asm.TA_MACD).apply(
995
+ null,
996
+ arguments
997
+ );
998
+ }, e._TA_MACDEXT = function() {
999
+ return (e._TA_MACDEXT = e.asm.TA_MACDEXT).apply(null, arguments);
1000
+ }, e._TA_MACDFIX = function() {
1001
+ return (e._TA_MACDFIX = e.asm.TA_MACDFIX).apply(null, arguments);
1002
+ }, e._TA_MAVP = function() {
1003
+ return (e._TA_MAVP = e.asm.TA_MAVP).apply(
1004
+ null,
1005
+ arguments
1006
+ );
1007
+ }, e._TA_MAX = function() {
1008
+ return (e._TA_MAX = e.asm.TA_MAX).apply(
1009
+ null,
1010
+ arguments
1011
+ );
1012
+ }, e._TA_MAXINDEX = function() {
1013
+ return (e._TA_MAXINDEX = e.asm.TA_MAXINDEX).apply(null, arguments);
1014
+ }, e._TA_MEDPRICE = function() {
1015
+ return (e._TA_MEDPRICE = e.asm.TA_MEDPRICE).apply(null, arguments);
1016
+ }, e._TA_MFI = function() {
1017
+ return (e._TA_MFI = e.asm.TA_MFI).apply(
1018
+ null,
1019
+ arguments
1020
+ );
1021
+ }, e._TA_MIDPOINT = function() {
1022
+ return (e._TA_MIDPOINT = e.asm.TA_MIDPOINT).apply(null, arguments);
1023
+ }, e._TA_MIDPRICE = function() {
1024
+ return (e._TA_MIDPRICE = e.asm.TA_MIDPRICE).apply(null, arguments);
1025
+ }, e._TA_MIN = function() {
1026
+ return (e._TA_MIN = e.asm.TA_MIN).apply(
1027
+ null,
1028
+ arguments
1029
+ );
1030
+ }, e._TA_MININDEX = function() {
1031
+ return (e._TA_MININDEX = e.asm.TA_MININDEX).apply(null, arguments);
1032
+ }, e._TA_MINMAX = function() {
1033
+ return (e._TA_MINMAX = e.asm.TA_MINMAX).apply(null, arguments);
1034
+ }, e._TA_MINMAXINDEX = function() {
1035
+ return (e._TA_MINMAXINDEX = e.asm.TA_MINMAXINDEX).apply(null, arguments);
1036
+ }, e._TA_MINUS_DI = function() {
1037
+ return (e._TA_MINUS_DI = e.asm.TA_MINUS_DI).apply(null, arguments);
1038
+ }, e._TA_MINUS_DM = function() {
1039
+ return (e._TA_MINUS_DM = e.asm.TA_MINUS_DM).apply(null, arguments);
1040
+ }, e._TA_MOM = function() {
1041
+ return (e._TA_MOM = e.asm.TA_MOM).apply(
1042
+ null,
1043
+ arguments
1044
+ );
1045
+ }, e._TA_MULT = function() {
1046
+ return (e._TA_MULT = e.asm.TA_MULT).apply(
1047
+ null,
1048
+ arguments
1049
+ );
1050
+ }, e._TA_NATR = function() {
1051
+ return (e._TA_NATR = e.asm.TA_NATR).apply(
1052
+ null,
1053
+ arguments
1054
+ );
1055
+ }, e._TA_OBV = function() {
1056
+ return (e._TA_OBV = e.asm.TA_OBV).apply(
1057
+ null,
1058
+ arguments
1059
+ );
1060
+ }, e._TA_PLUS_DI = function() {
1061
+ return (e._TA_PLUS_DI = e.asm.TA_PLUS_DI).apply(null, arguments);
1062
+ }, e._TA_PLUS_DM = function() {
1063
+ return (e._TA_PLUS_DM = e.asm.TA_PLUS_DM).apply(null, arguments);
1064
+ }, e._TA_PPO = function() {
1065
+ return (e._TA_PPO = e.asm.TA_PPO).apply(
1066
+ null,
1067
+ arguments
1068
+ );
1069
+ }, e._TA_ROC = function() {
1070
+ return (e._TA_ROC = e.asm.TA_ROC).apply(
1071
+ null,
1072
+ arguments
1073
+ );
1074
+ }, e._TA_ROCP = function() {
1075
+ return (e._TA_ROCP = e.asm.TA_ROCP).apply(
1076
+ null,
1077
+ arguments
1078
+ );
1079
+ }, e._TA_ROCR = function() {
1080
+ return (e._TA_ROCR = e.asm.TA_ROCR).apply(
1081
+ null,
1082
+ arguments
1083
+ );
1084
+ }, e._TA_ROCR100 = function() {
1085
+ return (e._TA_ROCR100 = e.asm.TA_ROCR100).apply(null, arguments);
1086
+ }, e._TA_RSI = function() {
1087
+ return (e._TA_RSI = e.asm.TA_RSI).apply(
1088
+ null,
1089
+ arguments
1090
+ );
1091
+ }, e._TA_SAR = function() {
1092
+ return (e._TA_SAR = e.asm.TA_SAR).apply(
1093
+ null,
1094
+ arguments
1095
+ );
1096
+ }, e._TA_SAREXT = function() {
1097
+ return (e._TA_SAREXT = e.asm.TA_SAREXT).apply(null, arguments);
1098
+ }, e._TA_SIN = function() {
1099
+ return (e._TA_SIN = e.asm.TA_SIN).apply(
1100
+ null,
1101
+ arguments
1102
+ );
1103
+ }, e._TA_SINH = function() {
1104
+ return (e._TA_SINH = e.asm.TA_SINH).apply(
1105
+ null,
1106
+ arguments
1107
+ );
1108
+ }, e._TA_SQRT = function() {
1109
+ return (e._TA_SQRT = e.asm.TA_SQRT).apply(
1110
+ null,
1111
+ arguments
1112
+ );
1113
+ }, e._TA_STOCH = function() {
1114
+ return (e._TA_STOCH = e.asm.TA_STOCH).apply(null, arguments);
1115
+ }, e._TA_STOCHF = function() {
1116
+ return (e._TA_STOCHF = e.asm.TA_STOCHF).apply(null, arguments);
1117
+ }, e._TA_STOCHRSI = function() {
1118
+ return (e._TA_STOCHRSI = e.asm.TA_STOCHRSI).apply(null, arguments);
1119
+ }, e._TA_SUB = function() {
1120
+ return (e._TA_SUB = e.asm.TA_SUB).apply(
1121
+ null,
1122
+ arguments
1123
+ );
1124
+ }, e._TA_SUM = function() {
1125
+ return (e._TA_SUM = e.asm.TA_SUM).apply(
1126
+ null,
1127
+ arguments
1128
+ );
1129
+ }, e._TA_TAN = function() {
1130
+ return (e._TA_TAN = e.asm.TA_TAN).apply(
1131
+ null,
1132
+ arguments
1133
+ );
1134
+ }, e._TA_TANH = function() {
1135
+ return (e._TA_TANH = e.asm.TA_TANH).apply(
1136
+ null,
1137
+ arguments
1138
+ );
1139
+ }, e._TA_TRIX = function() {
1140
+ return (e._TA_TRIX = e.asm.TA_TRIX).apply(
1141
+ null,
1142
+ arguments
1143
+ );
1144
+ }, e._TA_TSF = function() {
1145
+ return (e._TA_TSF = e.asm.TA_TSF).apply(
1146
+ null,
1147
+ arguments
1148
+ );
1149
+ }, e._TA_TYPPRICE = function() {
1150
+ return (e._TA_TYPPRICE = e.asm.TA_TYPPRICE).apply(null, arguments);
1151
+ }, e._TA_ULTOSC = function() {
1152
+ return (e._TA_ULTOSC = e.asm.TA_ULTOSC).apply(null, arguments);
1153
+ }, e._TA_VAR = function() {
1154
+ return (e._TA_VAR = e.asm.TA_VAR).apply(
1155
+ null,
1156
+ arguments
1157
+ );
1158
+ }, e._TA_WCLPRICE = function() {
1159
+ return (e._TA_WCLPRICE = e.asm.TA_WCLPRICE).apply(null, arguments);
1160
+ }, e._TA_WILLR = function() {
1161
+ return (e._TA_WILLR = e.asm.TA_WILLR).apply(null, arguments);
1162
+ };
1163
+ var he = e.stackSave = function() {
1164
+ return (he = e.stackSave = e.asm.stackSave).apply(null, arguments);
1165
+ }, Oe = e.stackRestore = function() {
1166
+ return (Oe = e.stackRestore = e.asm.stackRestore).apply(null, arguments);
1167
+ }, Te = e.stackAlloc = function() {
1168
+ return (Te = e.stackAlloc = e.asm.stackAlloc).apply(null, arguments);
1169
+ }, on = e.___assign_got_enties = function() {
1170
+ return (on = e.___assign_got_enties = e.asm.__assign_got_enties).apply(null, arguments);
1171
+ };
1172
+ e._TA_Globals = 1448, e.___data_end = 4888;
1173
+ for (var zo in ["TA_Globals", "__data_end"])
1174
+ (function(t) {
1175
+ e["g$" + t] = function() {
1176
+ return e[t];
1177
+ };
1178
+ })(zo);
1179
+ e.ccall = fo, e.allocate = go;
1180
+ var ye;
1181
+ function Me(t) {
1182
+ this.name = "ExitStatus", this.message = "Program terminated with exit(" + t + ")", this.status = t;
1183
+ }
1184
+ ce = function t() {
1185
+ ye || He(), ye || (ce = t);
1186
+ };
1187
+ function $o(t) {
1188
+ var i = e._main;
1189
+ if (i) {
1190
+ var r = 0, m = 0;
1191
+ try {
1192
+ var R = i(r, m);
1193
+ Zo(R, !0);
1194
+ } catch (c) {
1195
+ if (c instanceof Me)
1196
+ return;
1197
+ if (c == "unwind") {
1198
+ J = !0;
1199
+ return;
1200
+ } else {
1201
+ var D = c;
1202
+ c && typeof c == "object" && c.stack && (D = [c, c.stack]), V("exception thrown: " + D), f(1, c);
1203
+ }
1204
+ } finally {
1205
+ }
1206
+ }
1207
+ }
1208
+ function He(t) {
1209
+ if (re > 0 || (ho(), re > 0))
1210
+ return;
1211
+ function i() {
1212
+ ye || (ye = !0, e.calledRun = !0, !T && (Oo(), Mo(), b(e), e.onRuntimeInitialized && e.onRuntimeInitialized(), rn && $o(), Ho()));
1213
+ }
1214
+ e.setStatus ? (e.setStatus("Running..."), setTimeout(function() {
1215
+ setTimeout(function() {
1216
+ e.setStatus("");
1217
+ }, 1), i();
1218
+ }, 1)) : i();
1219
+ }
1220
+ e.run = He;
1221
+ function Zo(t, i) {
1222
+ i && J && t === 0 || (J || (e.onExit && e.onExit(t), T = !0), f(t, new Me(t)));
1223
+ }
1224
+ if (e.preInit)
1225
+ for (typeof e.preInit == "function" && (e.preInit = [e.preInit]); e.preInit.length > 0; )
1226
+ e.preInit.pop()();
1227
+ var rn = !0;
1228
+ return e.noInitialRun && (rn = !1), J = !0, He(), N.ready;
1229
+ };
1230
+ }();
1231
+ const a = { ACCBANDS: { name: "ACCBANDS", camelCaseName: "accBands", group: "Overlap Studies", description: "Acceleration Bands", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 20, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "upperBand", type: "Double[]", plotHint: "limit_upper" }, { name: "middleBand", type: "Double[]", plotHint: "line" }, { name: "lowerBand", type: "Double[]", plotHint: "limit_lower" }] }, ACOS: { name: "ACOS", camelCaseName: "acos", group: "Math Transform", description: "Vector Trigonometric ACos", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, AD: { name: "AD", camelCaseName: "ad", group: "Volume Indicators", description: "Chaikin A/D Line", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }, { name: "volume", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, ADD: { name: "ADD", camelCaseName: "add", group: "Math Operators", description: "Vector Arithmetic Add", inputs: [{ name: "inReal0", type: "Double[]" }, { name: "inReal1", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, ADOSC: { name: "ADOSC", camelCaseName: "adOsc", group: "Volume Indicators", description: "Chaikin A/D Oscillator", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }, { name: "volume", type: "Double[]" }], options: [{ name: "fastPeriod", displayName: "Fast Period", defaultValue: 3, hint: "Number of period for the fast MA", type: "Integer", range: { min: 2, max: 1e5 } }, { name: "slowPeriod", displayName: "Slow Period", defaultValue: 10, hint: "Number of period for the slow MA", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, ADX: { name: "ADX", camelCaseName: "adx", group: "Momentum Indicators", description: "Average Directional Movement Index", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, ADXR: { name: "ADXR", camelCaseName: "adxr", group: "Momentum Indicators", description: "Average Directional Movement Index Rating", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, APO: { name: "APO", camelCaseName: "apo", group: "Momentum Indicators", description: "Absolute Price Oscillator", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "fastPeriod", displayName: "Fast Period", defaultValue: 12, hint: "Number of period for the fast MA", type: "Integer", range: { min: 2, max: 1e5 } }, { name: "slowPeriod", displayName: "Slow Period", defaultValue: 26, hint: "Number of period for the slow MA", type: "Integer", range: { min: 2, max: 1e5 } }, { name: "MAType", displayName: "MA Type", defaultValue: 0, hint: "Type of Moving Average", type: "MAType" }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, AROON: { name: "AROON", camelCaseName: "aroon", group: "Momentum Indicators", description: "Aroon", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "aroonDown", type: "Double[]", plotHint: "line_dash" }, { name: "aroonUp", type: "Double[]", plotHint: "line" }] }, AROONOSC: { name: "AROONOSC", camelCaseName: "aroonOsc", group: "Momentum Indicators", description: "Aroon Oscillator", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, ASIN: { name: "ASIN", camelCaseName: "asin", group: "Math Transform", description: "Vector Trigonometric ASin", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, ATAN: { name: "ATAN", camelCaseName: "atan", group: "Math Transform", description: "Vector Trigonometric ATan", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, ATR: { name: "ATR", camelCaseName: "atr", group: "Volatility Indicators", description: "Average True Range", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, AVGDEV: { name: "AVGDEV", camelCaseName: "avgDev", group: "Price Transform", description: "Average Deviation", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, AVGPRICE: { name: "AVGPRICE", camelCaseName: "avgPrice", group: "Price Transform", description: "Average Price", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, BBANDS: { name: "BBANDS", camelCaseName: "bbands", group: "Overlap Studies", description: "Bollinger Bands", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 5, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }, { name: "nbDevUp", displayName: "Deviations up", defaultValue: 2, hint: "Deviation multiplier for upper band", type: "Double", range: { min: -3e37, max: 3e37 } }, { name: "nbDevDn", displayName: "Deviations down", defaultValue: 2, hint: "Deviation multiplier for lower band", type: "Double", range: { min: -3e37, max: 3e37 } }, { name: "MAType", displayName: "MA Type", defaultValue: 0, hint: "Type of Moving Average", type: "MAType" }], outputs: [{ name: "upperBand", type: "Double[]", plotHint: "limit_upper" }, { name: "middleBand", type: "Double[]", plotHint: "line" }, { name: "lowerBand", type: "Double[]", plotHint: "limit_lower" }] }, BETA: { name: "BETA", camelCaseName: "beta", group: "Statistic Functions", description: "Beta", inputs: [{ name: "inReal0", type: "Double[]" }, { name: "inReal1", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 5, hint: "Number of period", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, BOP: { name: "BOP", camelCaseName: "bop", group: "Momentum Indicators", description: "Balance Of Power", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, CCI: { name: "CCI", camelCaseName: "cci", group: "Momentum Indicators", description: "Commodity Channel Index", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, CDL2CROWS: { name: "CDL2CROWS", camelCaseName: "cdl2Crows", group: "Pattern Recognition", description: "Two Crows", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDL3BLACKCROWS: { name: "CDL3BLACKCROWS", camelCaseName: "cdl3BlackCrows", group: "Pattern Recognition", description: "Three Black Crows", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDL3INSIDE: { name: "CDL3INSIDE", camelCaseName: "cdl3Inside", group: "Pattern Recognition", description: "Three Inside Up/Down", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDL3LINESTRIKE: { name: "CDL3LINESTRIKE", camelCaseName: "cdl3LineStrike", group: "Pattern Recognition", description: "Three-Line Strike ", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDL3OUTSIDE: { name: "CDL3OUTSIDE", camelCaseName: "cdl3Outside", group: "Pattern Recognition", description: "Three Outside Up/Down", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDL3STARSINSOUTH: { name: "CDL3STARSINSOUTH", camelCaseName: "cdl3StarsInSouth", group: "Pattern Recognition", description: "Three Stars In The South", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDL3WHITESOLDIERS: { name: "CDL3WHITESOLDIERS", camelCaseName: "cdl3WhiteSoldiers", group: "Pattern Recognition", description: "Three Advancing White Soldiers", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLABANDONEDBABY: { name: "CDLABANDONEDBABY", camelCaseName: "cdlAbandonedBaby", group: "Pattern Recognition", description: "Abandoned Baby", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "penetration", displayName: "Penetration", defaultValue: 0.3, hint: "Percentage of penetration of a candle within another candle", type: "Double", range: { min: 0, max: 3e37 } }], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLADVANCEBLOCK: { name: "CDLADVANCEBLOCK", camelCaseName: "cdlAdvanceBlock", group: "Pattern Recognition", description: "Advance Block", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLBELTHOLD: { name: "CDLBELTHOLD", camelCaseName: "cdlBeltHold", group: "Pattern Recognition", description: "Belt-hold", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLBREAKAWAY: { name: "CDLBREAKAWAY", camelCaseName: "cdlBreakaway", group: "Pattern Recognition", description: "Breakaway", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLCLOSINGMARUBOZU: { name: "CDLCLOSINGMARUBOZU", camelCaseName: "cdlClosingMarubozu", group: "Pattern Recognition", description: "Closing Marubozu", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLCONCEALBABYSWALL: { name: "CDLCONCEALBABYSWALL", camelCaseName: "cdlConcealBabysWall", group: "Pattern Recognition", description: "Concealing Baby Swallow", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLCOUNTERATTACK: { name: "CDLCOUNTERATTACK", camelCaseName: "cdlCounterAttack", group: "Pattern Recognition", description: "Counterattack", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLDARKCLOUDCOVER: { name: "CDLDARKCLOUDCOVER", camelCaseName: "cdlDarkCloudCover", group: "Pattern Recognition", description: "Dark Cloud Cover", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "penetration", displayName: "Penetration", defaultValue: 0.5, hint: "Percentage of penetration of a candle within another candle", type: "Double", range: { min: 0, max: 3e37 } }], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLDOJI: { name: "CDLDOJI", camelCaseName: "cdlDoji", group: "Pattern Recognition", description: "Doji", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLDOJISTAR: { name: "CDLDOJISTAR", camelCaseName: "cdlDojiStar", group: "Pattern Recognition", description: "Doji Star", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLDRAGONFLYDOJI: { name: "CDLDRAGONFLYDOJI", camelCaseName: "cdlDragonflyDoji", group: "Pattern Recognition", description: "Dragonfly Doji", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLENGULFING: { name: "CDLENGULFING", camelCaseName: "cdlEngulfing", group: "Pattern Recognition", description: "Engulfing Pattern", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLEVENINGDOJISTAR: { name: "CDLEVENINGDOJISTAR", camelCaseName: "cdlEveningDojiStar", group: "Pattern Recognition", description: "Evening Doji Star", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "penetration", displayName: "Penetration", defaultValue: 0.3, hint: "Percentage of penetration of a candle within another candle", type: "Double", range: { min: 0, max: 3e37 } }], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLEVENINGSTAR: { name: "CDLEVENINGSTAR", camelCaseName: "cdlEveningStar", group: "Pattern Recognition", description: "Evening Star", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "penetration", displayName: "Penetration", defaultValue: 0.3, hint: "Percentage of penetration of a candle within another candle", type: "Double", range: { min: 0, max: 3e37 } }], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLGAPSIDESIDEWHITE: { name: "CDLGAPSIDESIDEWHITE", camelCaseName: "cdlGapSideSideWhite", group: "Pattern Recognition", description: "Up/Down-gap side-by-side white lines", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLGRAVESTONEDOJI: { name: "CDLGRAVESTONEDOJI", camelCaseName: "cdlGravestoneDoji", group: "Pattern Recognition", description: "Gravestone Doji", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLHAMMER: { name: "CDLHAMMER", camelCaseName: "cdlHammer", group: "Pattern Recognition", description: "Hammer", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLHANGINGMAN: { name: "CDLHANGINGMAN", camelCaseName: "cdlHangingMan", group: "Pattern Recognition", description: "Hanging Man", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLHARAMI: { name: "CDLHARAMI", camelCaseName: "cdlHarami", group: "Pattern Recognition", description: "Harami Pattern", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLHARAMICROSS: { name: "CDLHARAMICROSS", camelCaseName: "cdlHaramiCross", group: "Pattern Recognition", description: "Harami Cross Pattern", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLHIGHWAVE: { name: "CDLHIGHWAVE", camelCaseName: "cdlHignWave", group: "Pattern Recognition", description: "High-Wave Candle", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLHIKKAKE: { name: "CDLHIKKAKE", camelCaseName: "cdlHikkake", group: "Pattern Recognition", description: "Hikkake Pattern", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLHIKKAKEMOD: { name: "CDLHIKKAKEMOD", camelCaseName: "cdlHikkakeMod", group: "Pattern Recognition", description: "Modified Hikkake Pattern", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLHOMINGPIGEON: { name: "CDLHOMINGPIGEON", camelCaseName: "cdlHomingPigeon", group: "Pattern Recognition", description: "Homing Pigeon", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLIDENTICAL3CROWS: { name: "CDLIDENTICAL3CROWS", camelCaseName: "cdlIdentical3Crows", group: "Pattern Recognition", description: "Identical Three Crows", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLINNECK: { name: "CDLINNECK", camelCaseName: "cdlInNeck", group: "Pattern Recognition", description: "In-Neck Pattern", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLINVERTEDHAMMER: { name: "CDLINVERTEDHAMMER", camelCaseName: "cdlInvertedHammer", group: "Pattern Recognition", description: "Inverted Hammer", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLKICKING: { name: "CDLKICKING", camelCaseName: "cdlKicking", group: "Pattern Recognition", description: "Kicking", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLKICKINGBYLENGTH: { name: "CDLKICKINGBYLENGTH", camelCaseName: "cdlKickingByLength", group: "Pattern Recognition", description: "Kicking - bull/bear determined by the longer marubozu", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLLADDERBOTTOM: { name: "CDLLADDERBOTTOM", camelCaseName: "cdlLadderBottom", group: "Pattern Recognition", description: "Ladder Bottom", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLLONGLEGGEDDOJI: { name: "CDLLONGLEGGEDDOJI", camelCaseName: "cdlLongLeggedDoji", group: "Pattern Recognition", description: "Long Legged Doji", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLLONGLINE: { name: "CDLLONGLINE", camelCaseName: "cdlLongLine", group: "Pattern Recognition", description: "Long Line Candle", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLMARUBOZU: { name: "CDLMARUBOZU", camelCaseName: "cdlMarubozu", group: "Pattern Recognition", description: "Marubozu", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLMATCHINGLOW: { name: "CDLMATCHINGLOW", camelCaseName: "cdlMatchingLow", group: "Pattern Recognition", description: "Matching Low", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLMATHOLD: { name: "CDLMATHOLD", camelCaseName: "cdlMatHold", group: "Pattern Recognition", description: "Mat Hold", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "penetration", displayName: "Penetration", defaultValue: 0.5, hint: "Percentage of penetration of a candle within another candle", type: "Double", range: { min: 0, max: 3e37 } }], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLMORNINGDOJISTAR: { name: "CDLMORNINGDOJISTAR", camelCaseName: "cdlMorningDojiStar", group: "Pattern Recognition", description: "Morning Doji Star", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "penetration", displayName: "Penetration", defaultValue: 0.3, hint: "Percentage of penetration of a candle within another candle", type: "Double", range: { min: 0, max: 3e37 } }], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLMORNINGSTAR: { name: "CDLMORNINGSTAR", camelCaseName: "cdlMorningStar", group: "Pattern Recognition", description: "Morning Star", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "penetration", displayName: "Penetration", defaultValue: 0.3, hint: "Percentage of penetration of a candle within another candle", type: "Double", range: { min: 0, max: 3e37 } }], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLONNECK: { name: "CDLONNECK", camelCaseName: "cdlOnNeck", group: "Pattern Recognition", description: "On-Neck Pattern", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLPIERCING: { name: "CDLPIERCING", camelCaseName: "cdlPiercing", group: "Pattern Recognition", description: "Piercing Pattern", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLRICKSHAWMAN: { name: "CDLRICKSHAWMAN", camelCaseName: "cdlRickshawMan", group: "Pattern Recognition", description: "Rickshaw Man", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLRISEFALL3METHODS: { name: "CDLRISEFALL3METHODS", camelCaseName: "cdlRiseFall3Methods", group: "Pattern Recognition", description: "Rising/Falling Three Methods", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLSEPARATINGLINES: { name: "CDLSEPARATINGLINES", camelCaseName: "cdlSeperatingLines", group: "Pattern Recognition", description: "Separating Lines", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLSHOOTINGSTAR: { name: "CDLSHOOTINGSTAR", camelCaseName: "cdlShootingStar", group: "Pattern Recognition", description: "Shooting Star", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLSHORTLINE: { name: "CDLSHORTLINE", camelCaseName: "cdlShortLine", group: "Pattern Recognition", description: "Short Line Candle", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLSPINNINGTOP: { name: "CDLSPINNINGTOP", camelCaseName: "cdlSpinningTop", group: "Pattern Recognition", description: "Spinning Top", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLSTALLEDPATTERN: { name: "CDLSTALLEDPATTERN", camelCaseName: "cdlStalledPattern", group: "Pattern Recognition", description: "Stalled Pattern", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLSTICKSANDWICH: { name: "CDLSTICKSANDWICH", camelCaseName: "cdlStickSandwhich", group: "Pattern Recognition", description: "Stick Sandwich", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLTAKURI: { name: "CDLTAKURI", camelCaseName: "cdlTakuri", group: "Pattern Recognition", description: "Takuri (Dragonfly Doji with very long lower shadow)", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLTASUKIGAP: { name: "CDLTASUKIGAP", camelCaseName: "cdlTasukiGap", group: "Pattern Recognition", description: "Tasuki Gap", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLTHRUSTING: { name: "CDLTHRUSTING", camelCaseName: "cdlThrusting", group: "Pattern Recognition", description: "Thrusting Pattern", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLTRISTAR: { name: "CDLTRISTAR", camelCaseName: "cdlTristar", group: "Pattern Recognition", description: "Tristar Pattern", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLUNIQUE3RIVER: { name: "CDLUNIQUE3RIVER", camelCaseName: "cdlUnique3River", group: "Pattern Recognition", description: "Unique 3 River", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLUPSIDEGAP2CROWS: { name: "CDLUPSIDEGAP2CROWS", camelCaseName: "cdlUpsideGap2Crows", group: "Pattern Recognition", description: "Upside Gap Two Crows", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CDLXSIDEGAP3METHODS: { name: "CDLXSIDEGAP3METHODS", camelCaseName: "cdlXSideGap3Methods", group: "Pattern Recognition", description: "Upside/Downside Gap Three Methods", inputs: [{ name: "open", type: "Double[]" }, { name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, CEIL: { name: "CEIL", camelCaseName: "ceil", group: "Math Transform", description: "Vector Ceil", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, CMO: { name: "CMO", camelCaseName: "cmo", group: "Momentum Indicators", description: "Chande Momentum Oscillator", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, CORREL: { name: "CORREL", camelCaseName: "correl", group: "Statistic Functions", description: "Pearson's Correlation Coefficient (r)", inputs: [{ name: "inReal0", type: "Double[]" }, { name: "inReal1", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, COS: { name: "COS", camelCaseName: "cos", group: "Math Transform", description: "Vector Trigonometric Cos", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, COSH: { name: "COSH", camelCaseName: "cosh", group: "Math Transform", description: "Vector Trigonometric Cosh", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, DEMA: { name: "DEMA", camelCaseName: "dema", group: "Overlap Studies", description: "Double Exponential Moving Average", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, DIV: { name: "DIV", camelCaseName: "div", group: "Math Operators", description: "Vector Arithmetic Div", inputs: [{ name: "inReal0", type: "Double[]" }, { name: "inReal1", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, DX: { name: "DX", camelCaseName: "dx", group: "Momentum Indicators", description: "Directional Movement Index", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, EMA: { name: "EMA", camelCaseName: "ema", group: "Overlap Studies", description: "Exponential Moving Average", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, EXP: { name: "EXP", camelCaseName: "exp", group: "Math Transform", description: "Vector Arithmetic Exp", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, FLOOR: { name: "FLOOR", camelCaseName: "floor", group: "Math Transform", description: "Vector Floor", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, HT_DCPERIOD: { name: "HT_DCPERIOD", camelCaseName: "htDcPeriod", group: "Cycle Indicators", description: "Hilbert Transform - Dominant Cycle Period", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, HT_DCPHASE: { name: "HT_DCPHASE", camelCaseName: "htDcPhase", group: "Cycle Indicators", description: "Hilbert Transform - Dominant Cycle Phase", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, HT_PHASOR: { name: "HT_PHASOR", camelCaseName: "htPhasor", group: "Cycle Indicators", description: "Hilbert Transform - Phasor Components", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "inPhase", type: "Double[]", plotHint: "line" }, { name: "quadrature", type: "Double[]", plotHint: "line_dash" }] }, HT_SINE: { name: "HT_SINE", camelCaseName: "htSine", group: "Cycle Indicators", description: "Hilbert Transform - SineWave", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "sine", type: "Double[]", plotHint: "line" }, { name: "leadSine", type: "Double[]", plotHint: "line_dash" }] }, HT_TRENDLINE: { name: "HT_TRENDLINE", camelCaseName: "htTrendline", group: "Overlap Studies", description: "Hilbert Transform - Instantaneous Trendline", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, HT_TRENDMODE: { name: "HT_TRENDMODE", camelCaseName: "htTrendMode", group: "Cycle Indicators", description: "Hilbert Transform - Trend vs Cycle Mode", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, IMI: { name: "IMI", camelCaseName: "imi", group: "Momentum Indicators", description: "Intraday Momentum Index", inputs: [{ name: "open", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, KAMA: { name: "KAMA", camelCaseName: "kama", group: "Overlap Studies", description: "Kaufman Adaptive Moving Average", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, LINEARREG: { name: "LINEARREG", camelCaseName: "linearReg", group: "Statistic Functions", description: "Linear Regression", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, LINEARREG_ANGLE: { name: "LINEARREG_ANGLE", camelCaseName: "linearRegAngle", group: "Statistic Functions", description: "Linear Regression Angle", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, LINEARREG_INTERCEPT: { name: "LINEARREG_INTERCEPT", camelCaseName: "linearRegIntercept", group: "Statistic Functions", description: "Linear Regression Intercept", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, LINEARREG_SLOPE: { name: "LINEARREG_SLOPE", camelCaseName: "linearRegSlope", group: "Statistic Functions", description: "Linear Regression Slope", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, LN: { name: "LN", camelCaseName: "ln", group: "Math Transform", description: "Vector Log Natural", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, LOG10: { name: "LOG10", camelCaseName: "log10", group: "Math Transform", description: "Vector Log10", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, MA: { name: "MA", camelCaseName: "movingAverage", group: "Overlap Studies", description: "Moving average", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 1, max: 1e5 } }, { name: "MAType", displayName: "MA Type", defaultValue: 0, hint: "Type of Moving Average", type: "MAType" }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, MACD: { name: "MACD", camelCaseName: "macd", group: "Momentum Indicators", description: "Moving Average Convergence/Divergence", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "fastPeriod", displayName: "Fast Period", defaultValue: 12, hint: "Number of period for the fast MA", type: "Integer", range: { min: 2, max: 1e5 } }, { name: "slowPeriod", displayName: "Slow Period", defaultValue: 26, hint: "Number of period for the slow MA", type: "Integer", range: { min: 2, max: 1e5 } }, { name: "signalPeriod", displayName: "Signal Period", defaultValue: 9, hint: "Smoothing for the signal line (nb of period)", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "MACD", type: "Double[]", plotHint: "line" }, { name: "MACDSignal", type: "Double[]", plotHint: "line_dash" }, { name: "MACDHist", type: "Double[]", plotHint: "histogram" }] }, MACDEXT: { name: "MACDEXT", camelCaseName: "macdExt", group: "Momentum Indicators", description: "MACD with controllable MA type", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "fastPeriod", displayName: "Fast Period", defaultValue: 12, hint: "Number of period for the fast MA", type: "Integer", range: { min: 2, max: 1e5 } }, { name: "fastMAType", displayName: "Fast MA", defaultValue: 0, hint: "Type of Moving Average for fast MA", type: "MAType" }, { name: "slowPeriod", displayName: "Slow Period", defaultValue: 26, hint: "Number of period for the slow MA", type: "Integer", range: { min: 2, max: 1e5 } }, { name: "slowMAType", displayName: "Slow MA", defaultValue: 0, hint: "Type of Moving Average for slow MA", type: "MAType" }, { name: "signalPeriod", displayName: "Signal Period", defaultValue: 9, hint: "Smoothing for the signal line (nb of period)", type: "Integer", range: { min: 1, max: 1e5 } }, { name: "signalMAType", displayName: "Signal MA", defaultValue: 0, hint: "Type of Moving Average for signal line", type: "MAType" }], outputs: [{ name: "MACD", type: "Double[]", plotHint: "line" }, { name: "MACDSignal", type: "Double[]", plotHint: "line_dash" }, { name: "MACDHist", type: "Double[]", plotHint: "histogram" }] }, MACDFIX: { name: "MACDFIX", camelCaseName: "macdFix", group: "Momentum Indicators", description: "Moving Average Convergence/Divergence Fix 12/26", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "signalPeriod", displayName: "Signal Period", defaultValue: 9, hint: "Smoothing for the signal line (nb of period)", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "MACD", type: "Double[]", plotHint: "line" }, { name: "MACDSignal", type: "Double[]", plotHint: "line_dash" }, { name: "MACDHist", type: "Double[]", plotHint: "histogram" }] }, MAMA: { name: "MAMA", camelCaseName: "mama", group: "Overlap Studies", description: "MESA Adaptive Moving Average", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "fastLimit", displayName: "Fast Limit", defaultValue: 0.5, hint: "Upper limit use in the adaptive algorithm", type: "Double", range: { min: 0.01, max: 0.99 } }, { name: "slowLimit", displayName: "Slow Limit", defaultValue: 0.05, hint: "Lower limit use in the adaptive algorithm", type: "Double", range: { min: 0.01, max: 0.99 } }], outputs: [{ name: "MAMA", type: "Double[]", plotHint: "line" }, { name: "FAMA", type: "Double[]", plotHint: "line_dash" }] }, MAVP: { name: "MAVP", camelCaseName: "movingAverageVariablePeriod", group: "Overlap Studies", description: "Moving average with variable period", inputs: [{ name: "inReal", type: "Double[]" }, { name: "inPeriods", type: "Double[]" }], options: [{ name: "minPeriod", displayName: "Minimum Period", defaultValue: 2, hint: "Value less than minimum will be changed to Minimum period", type: "Integer", range: { min: 2, max: 1e5 } }, { name: "maxPeriod", displayName: "Maximum Period", defaultValue: 30, hint: "Value higher than maximum will be changed to Maximum period", type: "Integer", range: { min: 2, max: 1e5 } }, { name: "MAType", displayName: "MA Type", defaultValue: 0, hint: "Type of Moving Average", type: "MAType" }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, MAX: { name: "MAX", camelCaseName: "max", group: "Math Operators", description: "Highest value over a specified period", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, MAXINDEX: { name: "MAXINDEX", camelCaseName: "maxIndex", group: "Math Operators", description: "Index of highest value over a specified period", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, MEDPRICE: { name: "MEDPRICE", camelCaseName: "medPrice", group: "Price Transform", description: "Median Price", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, MFI: { name: "MFI", camelCaseName: "mfi", group: "Momentum Indicators", description: "Money Flow Index", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }, { name: "volume", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, MIDPOINT: { name: "MIDPOINT", camelCaseName: "midPoint", group: "Overlap Studies", description: "MidPoint over period", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, MIDPRICE: { name: "MIDPRICE", camelCaseName: "midPrice", group: "Overlap Studies", description: "Midpoint Price over period", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, MIN: { name: "MIN", camelCaseName: "min", group: "Math Operators", description: "Lowest value over a specified period", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, MININDEX: { name: "MININDEX", camelCaseName: "minIndex", group: "Math Operators", description: "Index of lowest value over a specified period", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Integer[]", plotHint: "line" }] }, MINMAX: { name: "MINMAX", camelCaseName: "minMax", group: "Math Operators", description: "Lowest and highest values over a specified period", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "min", type: "Double[]", plotHint: "line" }, { name: "max", type: "Double[]", plotHint: "line" }] }, MINMAXINDEX: { name: "MINMAXINDEX", camelCaseName: "minMaxIndex", group: "Math Operators", description: "Indexes of lowest and highest values over a specified period", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "minIdx", type: "Integer[]", plotHint: "line" }, { name: "maxIdx", type: "Integer[]", plotHint: "line" }] }, MINUS_DI: { name: "MINUS_DI", camelCaseName: "minusDI", group: "Momentum Indicators", description: "Minus Directional Indicator", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, MINUS_DM: { name: "MINUS_DM", camelCaseName: "minusDM", group: "Momentum Indicators", description: "Minus Directional Movement", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, MOM: { name: "MOM", camelCaseName: "mom", group: "Momentum Indicators", description: "Momentum", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 10, hint: "Number of period", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, MULT: { name: "MULT", camelCaseName: "mult", group: "Math Operators", description: "Vector Arithmetic Mult", inputs: [{ name: "inReal0", type: "Double[]" }, { name: "inReal1", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, NATR: { name: "NATR", camelCaseName: "natr", group: "Volatility Indicators", description: "Normalized Average True Range", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, OBV: { name: "OBV", camelCaseName: "obv", group: "Volume Indicators", description: "On Balance Volume", inputs: [{ name: "inReal", type: "Double[]" }, { name: "volume", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, PLUS_DI: { name: "PLUS_DI", camelCaseName: "plusDI", group: "Momentum Indicators", description: "Plus Directional Indicator", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, PLUS_DM: { name: "PLUS_DM", camelCaseName: "plusDM", group: "Momentum Indicators", description: "Plus Directional Movement", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, PPO: { name: "PPO", camelCaseName: "ppo", group: "Momentum Indicators", description: "Percentage Price Oscillator", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "fastPeriod", displayName: "Fast Period", defaultValue: 12, hint: "Number of period for the fast MA", type: "Integer", range: { min: 2, max: 1e5 } }, { name: "slowPeriod", displayName: "Slow Period", defaultValue: 26, hint: "Number of period for the slow MA", type: "Integer", range: { min: 2, max: 1e5 } }, { name: "MAType", displayName: "MA Type", defaultValue: 0, hint: "Type of Moving Average", type: "MAType" }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, ROC: { name: "ROC", camelCaseName: "roc", group: "Momentum Indicators", description: "Rate of change : ((price/prevPrice)-1)*100", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 10, hint: "Number of period", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, ROCP: { name: "ROCP", camelCaseName: "rocP", group: "Momentum Indicators", description: "Rate of change Percentage: (price-prevPrice)/prevPrice", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 10, hint: "Number of period", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, ROCR: { name: "ROCR", camelCaseName: "rocR", group: "Momentum Indicators", description: "Rate of change ratio: (price/prevPrice)", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 10, hint: "Number of period", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, ROCR100: { name: "ROCR100", camelCaseName: "rocR100", group: "Momentum Indicators", description: "Rate of change ratio 100 scale: (price/prevPrice)*100", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 10, hint: "Number of period", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, RSI: { name: "RSI", camelCaseName: "rsi", group: "Momentum Indicators", description: "Relative Strength Index", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, SAR: { name: "SAR", camelCaseName: "sar", group: "Overlap Studies", description: "Parabolic SAR", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }], options: [{ name: "acceleration", displayName: "Acceleration Factor", defaultValue: 0.02, hint: "Acceleration Factor used up to the Maximum value", type: "Double", range: { min: 0, max: 3e37 } }, { name: "maximum", displayName: "AF Maximum", defaultValue: 0.2, hint: "Acceleration Factor Maximum value", type: "Double", range: { min: 0, max: 3e37 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, SAREXT: { name: "SAREXT", camelCaseName: "sarExt", group: "Overlap Studies", description: "Parabolic SAR - Extended", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }], options: [{ name: "startValue", displayName: "Start Value", defaultValue: 0, hint: "Start value and direction. 0 for Auto, >0 for Long, <0 for Short", type: "Double", range: { min: -3e37, max: 3e37 } }, { name: "offsetOnReverse", displayName: "Offset on Reverse", defaultValue: 0, hint: "Percent offset added/removed to initial stop on short/long reversal", type: "Double", range: { min: 0, max: 3e37 } }, { name: "accelerationInitLong", displayName: "AF Init Long", defaultValue: 0.02, hint: "Acceleration Factor initial value for the Long direction", type: "Double", range: { min: 0, max: 3e37 } }, { name: "accelerationLong", displayName: "AF Long", defaultValue: 0.02, hint: "Acceleration Factor for the Long direction", type: "Double", range: { min: 0, max: 3e37 } }, { name: "accelerationMaxLong", displayName: "AF Max Long", defaultValue: 0.2, hint: "Acceleration Factor maximum value for the Long direction", type: "Double", range: { min: 0, max: 3e37 } }, { name: "accelerationInitShort", displayName: "AF Init Short", defaultValue: 0.02, hint: "Acceleration Factor initial value for the Short direction", type: "Double", range: { min: 0, max: 3e37 } }, { name: "accelerationShort", displayName: "AF Short", defaultValue: 0.02, hint: "Acceleration Factor for the Short direction", type: "Double", range: { min: 0, max: 3e37 } }, { name: "accelerationMaxShort", displayName: "AF Max Short", defaultValue: 0.2, hint: "Acceleration Factor maximum value for the Short direction", type: "Double", range: { min: 0, max: 3e37 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, SIN: { name: "SIN", camelCaseName: "sin", group: "Math Transform", description: "Vector Trigonometric Sin", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, SINH: { name: "SINH", camelCaseName: "sinh", group: "Math Transform", description: "Vector Trigonometric Sinh", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, SMA: { name: "SMA", camelCaseName: "sma", group: "Overlap Studies", description: "Simple Moving Average", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, SQRT: { name: "SQRT", camelCaseName: "sqrt", group: "Math Transform", description: "Vector Square Root", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, STDDEV: { name: "STDDEV", camelCaseName: "stdDev", group: "Statistic Functions", description: "Standard Deviation", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 5, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }, { name: "nbDev", displayName: "Deviations", defaultValue: 1, hint: "Nb of deviations", type: "Double", range: { min: -3e37, max: 3e37 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, STOCH: { name: "STOCH", camelCaseName: "stoch", group: "Momentum Indicators", description: "Stochastic", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "fastK_Period", displayName: "Fast-K Period", defaultValue: 5, hint: "Time period for building the Fast-K line", type: "Integer", range: { min: 1, max: 1e5 } }, { name: "slowK_Period", displayName: "Slow-K Period", defaultValue: 3, hint: "Smoothing for making the Slow-K line. Usually set to 3", type: "Integer", range: { min: 1, max: 1e5 } }, { name: "slowK_MAType", displayName: "Slow-K MA", defaultValue: 0, hint: "Type of Moving Average for Slow-K", type: "MAType" }, { name: "slowD_Period", displayName: "Slow-D Period", defaultValue: 3, hint: "Smoothing for making the Slow-D line", type: "Integer", range: { min: 1, max: 1e5 } }, { name: "slowD_MAType", displayName: "Slow-D MA", defaultValue: 0, hint: "Type of Moving Average for Slow-D", type: "MAType" }], outputs: [{ name: "slowK", type: "Double[]", plotHint: "line_dash" }, { name: "slowD", type: "Double[]", plotHint: "line_dash" }] }, STOCHF: { name: "STOCHF", camelCaseName: "stochF", group: "Momentum Indicators", description: "Stochastic Fast", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "fastK_Period", displayName: "Fast-K Period", defaultValue: 5, hint: "Time period for building the Fast-K line", type: "Integer", range: { min: 1, max: 1e5 } }, { name: "fastD_Period", displayName: "Fast-D Period", defaultValue: 3, hint: "Smoothing for making the Fast-D line. Usually set to 3", type: "Integer", range: { min: 1, max: 1e5 } }, { name: "fastD_MAType", displayName: "Fast-D MA", defaultValue: 0, hint: "Type of Moving Average for Fast-D", type: "MAType" }], outputs: [{ name: "fastK", type: "Double[]", plotHint: "line" }, { name: "fastD", type: "Double[]", plotHint: "line" }] }, STOCHRSI: { name: "STOCHRSI", camelCaseName: "stochRsi", group: "Momentum Indicators", description: "Stochastic Relative Strength Index", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }, { name: "fastK_Period", displayName: "Fast-K Period", defaultValue: 5, hint: "Time period for building the Fast-K line", type: "Integer", range: { min: 1, max: 1e5 } }, { name: "fastD_Period", displayName: "Fast-D Period", defaultValue: 3, hint: "Smoothing for making the Fast-D line. Usually set to 3", type: "Integer", range: { min: 1, max: 1e5 } }, { name: "fastD_MAType", displayName: "Fast-D MA", defaultValue: 0, hint: "Type of Moving Average for Fast-D", type: "MAType" }], outputs: [{ name: "fastK", type: "Double[]", plotHint: "line" }, { name: "fastD", type: "Double[]", plotHint: "line" }] }, SUB: { name: "SUB", camelCaseName: "sub", group: "Math Operators", description: "Vector Arithmetic Substraction", inputs: [{ name: "inReal0", type: "Double[]" }, { name: "inReal1", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, SUM: { name: "SUM", camelCaseName: "sum", group: "Math Operators", description: "Summation", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, T3: { name: "T3", camelCaseName: "t3", group: "Overlap Studies", description: "Triple Exponential Moving Average (T3)", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 5, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }, { name: "VFactor", displayName: "Volume Factor", defaultValue: 0.7, hint: "Volume Factor", type: "Double", range: { min: 0, max: 1 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, TAN: { name: "TAN", camelCaseName: "tan", group: "Math Transform", description: "Vector Trigonometric Tan", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, TANH: { name: "TANH", camelCaseName: "tanh", group: "Math Transform", description: "Vector Trigonometric Tanh", inputs: [{ name: "inReal", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, TEMA: { name: "TEMA", camelCaseName: "tema", group: "Overlap Studies", description: "Triple Exponential Moving Average", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, TRANGE: { name: "TRANGE", camelCaseName: "trueRange", group: "Volatility Indicators", description: "True Range", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, TRIMA: { name: "TRIMA", camelCaseName: "trima", group: "Overlap Studies", description: "Triangular Moving Average", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, TRIX: { name: "TRIX", camelCaseName: "trix", group: "Momentum Indicators", description: "1-day Rate-Of-Change (ROC) of a Triple Smooth EMA", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, TSF: { name: "TSF", camelCaseName: "tsf", group: "Statistic Functions", description: "Time Series Forecast", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, TYPPRICE: { name: "TYPPRICE", camelCaseName: "typPrice", group: "Price Transform", description: "Typical Price", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, ULTOSC: { name: "ULTOSC", camelCaseName: "ultOsc", group: "Momentum Indicators", description: "Ultimate Oscillator", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "timePeriod1", displayName: "First Period", defaultValue: 7, hint: "Number of bars for 1st period.", type: "Integer", range: { min: 1, max: 1e5 } }, { name: "timePeriod2", displayName: "Second Period", defaultValue: 14, hint: "Number of bars fro 2nd period", type: "Integer", range: { min: 1, max: 1e5 } }, { name: "timePeriod3", displayName: "Third Period", defaultValue: 28, hint: "Number of bars for 3rd period", type: "Integer", range: { min: 1, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, VAR: { name: "VAR", camelCaseName: "variance", group: "Statistic Functions", description: "Variance", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 5, hint: "Number of period", type: "Integer", range: { min: 1, max: 1e5 } }, { name: "nbDev", displayName: "Deviations", defaultValue: 1, hint: "Nb of deviations", type: "Double", range: { min: -3e37, max: 3e37 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, WCLPRICE: { name: "WCLPRICE", camelCaseName: "wclPrice", group: "Price Transform", description: "Weighted Close Price", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, WILLR: { name: "WILLR", camelCaseName: "willR", group: "Momentum Indicators", description: "Williams' %R", inputs: [{ name: "high", type: "Double[]" }, { name: "low", type: "Double[]" }, { name: "close", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 14, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] }, WMA: { name: "WMA", camelCaseName: "wma", group: "Overlap Studies", description: "Weighted Moving Average", inputs: [{ name: "inReal", type: "Double[]" }], options: [{ name: "timePeriod", displayName: "Time Period", defaultValue: 30, hint: "Number of period", type: "Integer", range: { min: 2, max: 1e5 } }], outputs: [{ name: "output", type: "Double[]", plotHint: "line" }] } };
1232
+ var Fe = Fe;
1233
+ let ae;
1234
+ function cn(n, N) {
1235
+ const e = n._malloc(N * 8);
1236
+ return n.HEAPF64.set(new Float64Array(N), e / 8), {
1237
+ data: n.HEAPF64.subarray(e / 8, e / 8 + N),
1238
+ offset: e
1239
+ };
1240
+ }
1241
+ const ci = {
1242
+ 0: "TA_SUCCESS",
1243
+ 1: "TA_LIB_NOT_INITIALIZE",
1244
+ 2: "TA_BAD_PARAM",
1245
+ 3: "TA_ALLOC_ERR",
1246
+ 4: "TA_GROUP_NOT_FOUND",
1247
+ 5: "TA_FUNC_NOT_FOUND",
1248
+ 6: "TA_INVALID_HANDLE",
1249
+ 7: "TA_INVALID_PARAM_HOLDER",
1250
+ 8: "TA_INVALID_PARAM_HOLDER_TYPE",
1251
+ 9: "TA_INVALID_PARAM_FUNCTION",
1252
+ 10: "TA_INPUT_NOT_ALL_INITIALIZE",
1253
+ 11: "TA_OUTPUT_NOT_ALL_INITIALIZE",
1254
+ 12: "TA_OUT_OF_RANGE_START_INDEX",
1255
+ 13: "TA_OUT_OF_RANGE_END_INDEX",
1256
+ 14: "TA_INVALID_LIST_TYPE",
1257
+ 15: "TA_BAD_OBJECT",
1258
+ 16: "TA_NOT_SUPPORTED",
1259
+ 5e3: "TA_INTERNAL_ERROR",
1260
+ 65535: "TA_UNKNOWN_ERR"
1261
+ };
1262
+ function o(n, N) {
1263
+ const e = `TA_${n.name}`;
1264
+ if (!ae)
1265
+ throw Error(`${n.name}() called before initialization.`);
1266
+ const b = 2 + n.inputs.length + n.options.length + 2 + n.outputs.length, w = new Array(b).fill("number");
1267
+ for (const { name: l } of n.inputs)
1268
+ if (!Array.isArray(N[l]))
1269
+ throw N[l] === void 0 ? Error(`Bad Param: "${l}" is required`) : Error(`Bad Param: "${l}" should be array of number`);
1270
+ for (const { name: l, defaultValue: p, range: s } of n.options)
1271
+ if (N[l] === void 0)
1272
+ N[l] = p;
1273
+ else if (s && (N[l] < s.min || N[l] > s.max))
1274
+ throw Error(`Bad Param: "${l}" out of range (min: ${s.min}, max: ${s.max})`);
1275
+ let { startIdx: h, endIdx: y } = N;
1276
+ h === void 0 && (h = 0);
1277
+ const f = n.inputs.map(({ name: l }) => N[l].length);
1278
+ y === void 0 && (y = Math.min(...f));
1279
+ const _ = [h, y], A = [];
1280
+ n.inputs.forEach(({ name: l }) => {
1281
+ const p = cn(ae, y - h), s = N[l];
1282
+ for (const I in s)
1283
+ p.data[I] = s[I];
1284
+ A.push(p), _.push(p.offset);
1285
+ }), n.options.forEach(({ name: l }) => _.push(N[l])), _.push(0), _.push(0);
1286
+ const E = n.outputs.map(({ name: l }) => {
1287
+ const p = cn(ae, y - h);
1288
+ return A.push(p), _.push(p.offset), { name: l, array: p };
1289
+ }), L = ae.ccall(e, "number", w, _);
1290
+ A.forEach((l) => ae._free(l.offset));
1291
+ const u = E.reduce((l, p) => (l[p.name] = Array.from(p.array.data), l), {});
1292
+ if (L === 0)
1293
+ return u;
1294
+ throw Error("[C_ERROR] " + ci[L]);
1295
+ }
1296
+ var Be;
1297
+ (function(n) {
1298
+ n[n.SMA = 0] = "SMA", n[n.EMA = 1] = "EMA", n[n.WMA = 2] = "WMA", n[n.DEMA = 3] = "DEMA", n[n.TEMA = 4] = "TEMA", n[n.TRIMA = 5] = "TRIMA", n[n.KAMA = 6] = "KAMA", n[n.MAMA = 7] = "MAMA", n[n.T3 = 8] = "T3";
1299
+ })(Be || (Be = {}));
1300
+ function yn(n) {
1301
+ return ae ? Promise.resolve(ae) : n && typeof n != "string" ? Promise.reject(new Error('Invalid argument, "init(wasmBinaryFilePath)" expects a string that specifies the location of wasm binary file')) : Fe({ locateFile: n ? () => n : void 0 }).then((e) => ae = e).catch((e) => {
1302
+ let b = "TA-Lib WASM runtime init fail.";
1303
+ throw e && e.message ? b += `
1304
+ Error:
1305
+ ` + e.message : b += "Unknown reason. Perhaps you specify the wrong file path to wasm binary?", new Error(b);
1306
+ });
1307
+ }
1308
+ let _i = a.ACCBANDS;
1309
+ function fn(n) {
1310
+ return o(_i, n);
1311
+ }
1312
+ const Ai = fn;
1313
+ let Di = a.ACOS;
1314
+ function Cn(n) {
1315
+ return o(Di, n);
1316
+ }
1317
+ const di = Cn;
1318
+ let Ii = a.AD;
1319
+ function gn(n) {
1320
+ return o(Ii, n);
1321
+ }
1322
+ const Ti = gn;
1323
+ let yi = a.ADD;
1324
+ function Nn(n) {
1325
+ return o(yi, n);
1326
+ }
1327
+ const fi = Nn;
1328
+ let Ci = a.ADOSC;
1329
+ function Ln(n) {
1330
+ return o(Ci, n);
1331
+ }
1332
+ const gi = Ln;
1333
+ let Ni = a.ADX;
1334
+ function Rn(n) {
1335
+ return o(Ni, n);
1336
+ }
1337
+ const Li = Rn;
1338
+ let Ri = a.ADXR;
1339
+ function En(n) {
1340
+ return o(Ri, n);
1341
+ }
1342
+ const Ei = En;
1343
+ let bi = a.APO;
1344
+ function bn(n) {
1345
+ return o(bi, n);
1346
+ }
1347
+ const Si = bn;
1348
+ let Pi = a.AROON;
1349
+ function Sn(n) {
1350
+ return o(Pi, n);
1351
+ }
1352
+ const hi = Sn;
1353
+ let Oi = a.AROONOSC;
1354
+ function Pn(n) {
1355
+ return o(Oi, n);
1356
+ }
1357
+ const Mi = Pn;
1358
+ let Hi = a.ASIN;
1359
+ function hn(n) {
1360
+ return o(Hi, n);
1361
+ }
1362
+ const vi = hn;
1363
+ let wi = a.ATAN;
1364
+ function On(n) {
1365
+ return o(wi, n);
1366
+ }
1367
+ const Gi = On;
1368
+ let Vi = a.ATR;
1369
+ function Mn(n) {
1370
+ return o(Vi, n);
1371
+ }
1372
+ const xi = Mn;
1373
+ let Ui = a.AVGDEV;
1374
+ function Hn(n) {
1375
+ return o(Ui, n);
1376
+ }
1377
+ const Bi = Hn;
1378
+ let Ki = a.AVGPRICE;
1379
+ function vn(n) {
1380
+ return o(Ki, n);
1381
+ }
1382
+ const Fi = vn;
1383
+ let Wi = a.BBANDS;
1384
+ function wn(n) {
1385
+ return o(Wi, n);
1386
+ }
1387
+ const ki = wn;
1388
+ let Xi = a.BETA;
1389
+ function Gn(n) {
1390
+ return o(Xi, n);
1391
+ }
1392
+ const Ji = Gn;
1393
+ let Yi = a.BOP;
1394
+ function Vn(n) {
1395
+ return o(Yi, n);
1396
+ }
1397
+ const ji = Vn;
1398
+ let qi = a.CCI;
1399
+ function xn(n) {
1400
+ return o(qi, n);
1401
+ }
1402
+ const zi = xn;
1403
+ let $i = a.CDL2CROWS;
1404
+ function Un(n) {
1405
+ return o($i, n);
1406
+ }
1407
+ const Zi = Un;
1408
+ let Qi = a.CDL3BLACKCROWS;
1409
+ function Bn(n) {
1410
+ return o(Qi, n);
1411
+ }
1412
+ const er = Bn;
1413
+ let nr = a.CDL3INSIDE;
1414
+ function Kn(n) {
1415
+ return o(nr, n);
1416
+ }
1417
+ const tr = Kn;
1418
+ let ar = a.CDL3LINESTRIKE;
1419
+ function Fn(n) {
1420
+ return o(ar, n);
1421
+ }
1422
+ const or = Fn;
1423
+ let ir = a.CDL3OUTSIDE;
1424
+ function Wn(n) {
1425
+ return o(ir, n);
1426
+ }
1427
+ const rr = Wn;
1428
+ let ur = a.CDL3STARSINSOUTH;
1429
+ function kn(n) {
1430
+ return o(ur, n);
1431
+ }
1432
+ const lr = kn;
1433
+ let pr = a.CDL3WHITESOLDIERS;
1434
+ function Xn(n) {
1435
+ return o(pr, n);
1436
+ }
1437
+ const sr = Xn;
1438
+ let mr = a.CDLABANDONEDBABY;
1439
+ function Jn(n) {
1440
+ return o(mr, n);
1441
+ }
1442
+ const cr = Jn;
1443
+ let _r = a.CDLADVANCEBLOCK;
1444
+ function Yn(n) {
1445
+ return o(_r, n);
1446
+ }
1447
+ const Ar = Yn;
1448
+ let Dr = a.CDLBELTHOLD;
1449
+ function jn(n) {
1450
+ return o(Dr, n);
1451
+ }
1452
+ const dr = jn;
1453
+ let Ir = a.CDLBREAKAWAY;
1454
+ function qn(n) {
1455
+ return o(Ir, n);
1456
+ }
1457
+ const Tr = qn;
1458
+ let yr = a.CDLCLOSINGMARUBOZU;
1459
+ function zn(n) {
1460
+ return o(yr, n);
1461
+ }
1462
+ const fr = zn;
1463
+ let Cr = a.CDLCONCEALBABYSWALL;
1464
+ function $n(n) {
1465
+ return o(Cr, n);
1466
+ }
1467
+ const gr = $n;
1468
+ let Nr = a.CDLCOUNTERATTACK;
1469
+ function Zn(n) {
1470
+ return o(Nr, n);
1471
+ }
1472
+ const Lr = Zn;
1473
+ let Rr = a.CDLDARKCLOUDCOVER;
1474
+ function Qn(n) {
1475
+ return o(Rr, n);
1476
+ }
1477
+ const Er = Qn;
1478
+ let br = a.CDLDOJI;
1479
+ function et(n) {
1480
+ return o(br, n);
1481
+ }
1482
+ const Sr = et;
1483
+ let Pr = a.CDLDOJISTAR;
1484
+ function nt(n) {
1485
+ return o(Pr, n);
1486
+ }
1487
+ const hr = nt;
1488
+ let Or = a.CDLDRAGONFLYDOJI;
1489
+ function tt(n) {
1490
+ return o(Or, n);
1491
+ }
1492
+ const Mr = tt;
1493
+ let Hr = a.CDLENGULFING;
1494
+ function at(n) {
1495
+ return o(Hr, n);
1496
+ }
1497
+ const vr = at;
1498
+ let wr = a.CDLEVENINGDOJISTAR;
1499
+ function ot(n) {
1500
+ return o(wr, n);
1501
+ }
1502
+ const Gr = ot;
1503
+ let Vr = a.CDLEVENINGSTAR;
1504
+ function it(n) {
1505
+ return o(Vr, n);
1506
+ }
1507
+ const xr = it;
1508
+ let Ur = a.CDLGAPSIDESIDEWHITE;
1509
+ function rt(n) {
1510
+ return o(Ur, n);
1511
+ }
1512
+ const Br = rt;
1513
+ let Kr = a.CDLGRAVESTONEDOJI;
1514
+ function ut(n) {
1515
+ return o(Kr, n);
1516
+ }
1517
+ const Fr = ut;
1518
+ let Wr = a.CDLHAMMER;
1519
+ function lt(n) {
1520
+ return o(Wr, n);
1521
+ }
1522
+ const kr = lt;
1523
+ let Xr = a.CDLHANGINGMAN;
1524
+ function pt(n) {
1525
+ return o(Xr, n);
1526
+ }
1527
+ const Jr = pt;
1528
+ let Yr = a.CDLHARAMI;
1529
+ function st(n) {
1530
+ return o(Yr, n);
1531
+ }
1532
+ const jr = st;
1533
+ let qr = a.CDLHARAMICROSS;
1534
+ function mt(n) {
1535
+ return o(qr, n);
1536
+ }
1537
+ const zr = mt;
1538
+ let $r = a.CDLHIGHWAVE;
1539
+ function ct(n) {
1540
+ return o($r, n);
1541
+ }
1542
+ const Zr = ct;
1543
+ let Qr = a.CDLHIKKAKE;
1544
+ function _t(n) {
1545
+ return o(Qr, n);
1546
+ }
1547
+ const eu = _t;
1548
+ let nu = a.CDLHIKKAKEMOD;
1549
+ function At(n) {
1550
+ return o(nu, n);
1551
+ }
1552
+ const tu = At;
1553
+ let au = a.CDLHOMINGPIGEON;
1554
+ function Dt(n) {
1555
+ return o(au, n);
1556
+ }
1557
+ const ou = Dt;
1558
+ let iu = a.CDLIDENTICAL3CROWS;
1559
+ function dt(n) {
1560
+ return o(iu, n);
1561
+ }
1562
+ const ru = dt;
1563
+ let uu = a.CDLINNECK;
1564
+ function It(n) {
1565
+ return o(uu, n);
1566
+ }
1567
+ const lu = It;
1568
+ let pu = a.CDLINVERTEDHAMMER;
1569
+ function Tt(n) {
1570
+ return o(pu, n);
1571
+ }
1572
+ const su = Tt;
1573
+ let mu = a.CDLKICKING;
1574
+ function yt(n) {
1575
+ return o(mu, n);
1576
+ }
1577
+ const cu = yt;
1578
+ let _u = a.CDLKICKINGBYLENGTH;
1579
+ function ft(n) {
1580
+ return o(_u, n);
1581
+ }
1582
+ const Au = ft;
1583
+ let Du = a.CDLLADDERBOTTOM;
1584
+ function Ct(n) {
1585
+ return o(Du, n);
1586
+ }
1587
+ const du = Ct;
1588
+ let Iu = a.CDLLONGLEGGEDDOJI;
1589
+ function gt(n) {
1590
+ return o(Iu, n);
1591
+ }
1592
+ const Tu = gt;
1593
+ let yu = a.CDLLONGLINE;
1594
+ function Nt(n) {
1595
+ return o(yu, n);
1596
+ }
1597
+ const fu = Nt;
1598
+ let Cu = a.CDLMARUBOZU;
1599
+ function Lt(n) {
1600
+ return o(Cu, n);
1601
+ }
1602
+ const gu = Lt;
1603
+ let Nu = a.CDLMATCHINGLOW;
1604
+ function Rt(n) {
1605
+ return o(Nu, n);
1606
+ }
1607
+ const Lu = Rt;
1608
+ let Ru = a.CDLMATHOLD;
1609
+ function Et(n) {
1610
+ return o(Ru, n);
1611
+ }
1612
+ const Eu = Et;
1613
+ let bu = a.CDLMORNINGDOJISTAR;
1614
+ function bt(n) {
1615
+ return o(bu, n);
1616
+ }
1617
+ const Su = bt;
1618
+ let Pu = a.CDLMORNINGSTAR;
1619
+ function St(n) {
1620
+ return o(Pu, n);
1621
+ }
1622
+ const hu = St;
1623
+ let Ou = a.CDLONNECK;
1624
+ function Pt(n) {
1625
+ return o(Ou, n);
1626
+ }
1627
+ const Mu = Pt;
1628
+ let Hu = a.CDLPIERCING;
1629
+ function ht(n) {
1630
+ return o(Hu, n);
1631
+ }
1632
+ const vu = ht;
1633
+ let wu = a.CDLRICKSHAWMAN;
1634
+ function Ot(n) {
1635
+ return o(wu, n);
1636
+ }
1637
+ const Gu = Ot;
1638
+ let Vu = a.CDLRISEFALL3METHODS;
1639
+ function Mt(n) {
1640
+ return o(Vu, n);
1641
+ }
1642
+ const xu = Mt;
1643
+ let Uu = a.CDLSEPARATINGLINES;
1644
+ function Ht(n) {
1645
+ return o(Uu, n);
1646
+ }
1647
+ const Bu = Ht;
1648
+ let Ku = a.CDLSHOOTINGSTAR;
1649
+ function vt(n) {
1650
+ return o(Ku, n);
1651
+ }
1652
+ const Fu = vt;
1653
+ let Wu = a.CDLSHORTLINE;
1654
+ function wt(n) {
1655
+ return o(Wu, n);
1656
+ }
1657
+ const ku = wt;
1658
+ let Xu = a.CDLSPINNINGTOP;
1659
+ function Gt(n) {
1660
+ return o(Xu, n);
1661
+ }
1662
+ const Ju = Gt;
1663
+ let Yu = a.CDLSTALLEDPATTERN;
1664
+ function Vt(n) {
1665
+ return o(Yu, n);
1666
+ }
1667
+ const ju = Vt;
1668
+ let qu = a.CDLSTICKSANDWICH;
1669
+ function xt(n) {
1670
+ return o(qu, n);
1671
+ }
1672
+ const zu = xt;
1673
+ let $u = a.CDLTAKURI;
1674
+ function Ut(n) {
1675
+ return o($u, n);
1676
+ }
1677
+ const Zu = Ut;
1678
+ let Qu = a.CDLTASUKIGAP;
1679
+ function Bt(n) {
1680
+ return o(Qu, n);
1681
+ }
1682
+ const el = Bt;
1683
+ let nl = a.CDLTHRUSTING;
1684
+ function Kt(n) {
1685
+ return o(nl, n);
1686
+ }
1687
+ const tl = Kt;
1688
+ let al = a.CDLTRISTAR;
1689
+ function Ft(n) {
1690
+ return o(al, n);
1691
+ }
1692
+ const ol = Ft;
1693
+ let il = a.CDLUNIQUE3RIVER;
1694
+ function Wt(n) {
1695
+ return o(il, n);
1696
+ }
1697
+ const rl = Wt;
1698
+ let ul = a.CDLUPSIDEGAP2CROWS;
1699
+ function kt(n) {
1700
+ return o(ul, n);
1701
+ }
1702
+ const ll = kt;
1703
+ let pl = a.CDLXSIDEGAP3METHODS;
1704
+ function Xt(n) {
1705
+ return o(pl, n);
1706
+ }
1707
+ const sl = Xt;
1708
+ let ml = a.CEIL;
1709
+ function Jt(n) {
1710
+ return o(ml, n);
1711
+ }
1712
+ const cl = Jt;
1713
+ let _l = a.CMO;
1714
+ function Yt(n) {
1715
+ return o(_l, n);
1716
+ }
1717
+ const Al = Yt;
1718
+ let Dl = a.CORREL;
1719
+ function jt(n) {
1720
+ return o(Dl, n);
1721
+ }
1722
+ const dl = jt;
1723
+ let Il = a.COS;
1724
+ function qt(n) {
1725
+ return o(Il, n);
1726
+ }
1727
+ const Tl = qt;
1728
+ let yl = a.COSH;
1729
+ function zt(n) {
1730
+ return o(yl, n);
1731
+ }
1732
+ const fl = zt;
1733
+ let Cl = a.DEMA;
1734
+ function $t(n) {
1735
+ return o(Cl, n);
1736
+ }
1737
+ const gl = $t;
1738
+ let Nl = a.DIV;
1739
+ function Zt(n) {
1740
+ return o(Nl, n);
1741
+ }
1742
+ const Ll = Zt;
1743
+ let Rl = a.DX;
1744
+ function Qt(n) {
1745
+ return o(Rl, n);
1746
+ }
1747
+ const El = Qt;
1748
+ let bl = a.EMA;
1749
+ function ea(n) {
1750
+ return o(bl, n);
1751
+ }
1752
+ const Sl = ea;
1753
+ let Pl = a.EXP;
1754
+ function na(n) {
1755
+ return o(Pl, n);
1756
+ }
1757
+ const hl = na;
1758
+ let Ol = a.FLOOR;
1759
+ function ta(n) {
1760
+ return o(Ol, n);
1761
+ }
1762
+ const Ml = ta;
1763
+ let Hl = a.HT_DCPERIOD;
1764
+ function aa(n) {
1765
+ return o(Hl, n);
1766
+ }
1767
+ const vl = aa;
1768
+ let wl = a.HT_DCPHASE;
1769
+ function oa(n) {
1770
+ return o(wl, n);
1771
+ }
1772
+ const Gl = oa;
1773
+ let Vl = a.HT_PHASOR;
1774
+ function ia(n) {
1775
+ return o(Vl, n);
1776
+ }
1777
+ const xl = ia;
1778
+ let Ul = a.HT_SINE;
1779
+ function ra(n) {
1780
+ return o(Ul, n);
1781
+ }
1782
+ const Bl = ra;
1783
+ let Kl = a.HT_TRENDLINE;
1784
+ function ua(n) {
1785
+ return o(Kl, n);
1786
+ }
1787
+ const Fl = ua;
1788
+ let Wl = a.HT_TRENDMODE;
1789
+ function la(n) {
1790
+ return o(Wl, n);
1791
+ }
1792
+ const kl = la;
1793
+ let Xl = a.IMI;
1794
+ function pa(n) {
1795
+ return o(Xl, n);
1796
+ }
1797
+ const Jl = pa;
1798
+ let Yl = a.KAMA;
1799
+ function sa(n) {
1800
+ return o(Yl, n);
1801
+ }
1802
+ const jl = sa;
1803
+ let ql = a.LINEARREG;
1804
+ function ma(n) {
1805
+ return o(ql, n);
1806
+ }
1807
+ const zl = ma;
1808
+ let $l = a.LINEARREG_ANGLE;
1809
+ function ca(n) {
1810
+ return o($l, n);
1811
+ }
1812
+ const Zl = ca;
1813
+ let Ql = a.LINEARREG_INTERCEPT;
1814
+ function _a(n) {
1815
+ return o(Ql, n);
1816
+ }
1817
+ const ep = _a;
1818
+ let np = a.LINEARREG_SLOPE;
1819
+ function Aa(n) {
1820
+ return o(np, n);
1821
+ }
1822
+ const tp = Aa;
1823
+ let ap = a.LN;
1824
+ function Da(n) {
1825
+ return o(ap, n);
1826
+ }
1827
+ const op = Da;
1828
+ let ip = a.LOG10;
1829
+ function da(n) {
1830
+ return o(ip, n);
1831
+ }
1832
+ const rp = da;
1833
+ let up = a.MA;
1834
+ function Ia(n) {
1835
+ return o(up, n);
1836
+ }
1837
+ const lp = Ia;
1838
+ let pp = a.MACD;
1839
+ function Ta(n) {
1840
+ return o(pp, n);
1841
+ }
1842
+ const sp = Ta;
1843
+ let mp = a.MACDEXT;
1844
+ function ya(n) {
1845
+ return o(mp, n);
1846
+ }
1847
+ const cp = ya;
1848
+ let _p = a.MACDFIX;
1849
+ function fa(n) {
1850
+ return o(_p, n);
1851
+ }
1852
+ const Ap = fa;
1853
+ let Dp = a.MAMA;
1854
+ function Ca(n) {
1855
+ return o(Dp, n);
1856
+ }
1857
+ const dp = Ca;
1858
+ let Ip = a.MAVP;
1859
+ function ga(n) {
1860
+ return o(Ip, n);
1861
+ }
1862
+ const Tp = ga;
1863
+ let yp = a.MAX;
1864
+ function Na(n) {
1865
+ return o(yp, n);
1866
+ }
1867
+ const fp = Na;
1868
+ let Cp = a.MAXINDEX;
1869
+ function La(n) {
1870
+ return o(Cp, n);
1871
+ }
1872
+ const gp = La;
1873
+ let Np = a.MEDPRICE;
1874
+ function Ra(n) {
1875
+ return o(Np, n);
1876
+ }
1877
+ const Lp = Ra;
1878
+ let Rp = a.MFI;
1879
+ function Ea(n) {
1880
+ return o(Rp, n);
1881
+ }
1882
+ const Ep = Ea;
1883
+ let bp = a.MIDPOINT;
1884
+ function ba(n) {
1885
+ return o(bp, n);
1886
+ }
1887
+ const Sp = ba;
1888
+ let Pp = a.MIDPRICE;
1889
+ function Sa(n) {
1890
+ return o(Pp, n);
1891
+ }
1892
+ const hp = Sa;
1893
+ let Op = a.MIN;
1894
+ function Pa(n) {
1895
+ return o(Op, n);
1896
+ }
1897
+ const Mp = Pa;
1898
+ let Hp = a.MININDEX;
1899
+ function ha(n) {
1900
+ return o(Hp, n);
1901
+ }
1902
+ const vp = ha;
1903
+ let wp = a.MINMAX;
1904
+ function Oa(n) {
1905
+ return o(wp, n);
1906
+ }
1907
+ const Gp = Oa;
1908
+ let Vp = a.MINMAXINDEX;
1909
+ function Ma(n) {
1910
+ return o(Vp, n);
1911
+ }
1912
+ const xp = Ma;
1913
+ let Up = a.MINUS_DI;
1914
+ function Ha(n) {
1915
+ return o(Up, n);
1916
+ }
1917
+ const Bp = Ha;
1918
+ let Kp = a.MINUS_DM;
1919
+ function va(n) {
1920
+ return o(Kp, n);
1921
+ }
1922
+ const Fp = va;
1923
+ let Wp = a.MOM;
1924
+ function wa(n) {
1925
+ return o(Wp, n);
1926
+ }
1927
+ const kp = wa;
1928
+ let Xp = a.MULT;
1929
+ function Ga(n) {
1930
+ return o(Xp, n);
1931
+ }
1932
+ const Jp = Ga;
1933
+ let Yp = a.NATR;
1934
+ function Va(n) {
1935
+ return o(Yp, n);
1936
+ }
1937
+ const jp = Va;
1938
+ let qp = a.OBV;
1939
+ function xa(n) {
1940
+ return o(qp, n);
1941
+ }
1942
+ const zp = xa;
1943
+ let $p = a.PLUS_DI;
1944
+ function Ua(n) {
1945
+ return o($p, n);
1946
+ }
1947
+ const Zp = Ua;
1948
+ let Qp = a.PLUS_DM;
1949
+ function Ba(n) {
1950
+ return o(Qp, n);
1951
+ }
1952
+ const es = Ba;
1953
+ let ns = a.PPO;
1954
+ function Ka(n) {
1955
+ return o(ns, n);
1956
+ }
1957
+ const ts = Ka;
1958
+ let as = a.ROC;
1959
+ function Fa(n) {
1960
+ return o(as, n);
1961
+ }
1962
+ const os = Fa;
1963
+ let is = a.ROCP;
1964
+ function Wa(n) {
1965
+ return o(is, n);
1966
+ }
1967
+ const rs = Wa;
1968
+ let us = a.ROCR;
1969
+ function ka(n) {
1970
+ return o(us, n);
1971
+ }
1972
+ const ls = ka;
1973
+ let ps = a.ROCR100;
1974
+ function Xa(n) {
1975
+ return o(ps, n);
1976
+ }
1977
+ const ss = Xa;
1978
+ let ms = a.RSI;
1979
+ function Ja(n) {
1980
+ return o(ms, n);
1981
+ }
1982
+ const cs = Ja;
1983
+ let _s = a.SAR;
1984
+ function Ya(n) {
1985
+ return o(_s, n);
1986
+ }
1987
+ const As = Ya;
1988
+ let Ds = a.SAREXT;
1989
+ function ja(n) {
1990
+ return o(Ds, n);
1991
+ }
1992
+ const ds = ja;
1993
+ let Is = a.SIN;
1994
+ function qa(n) {
1995
+ return o(Is, n);
1996
+ }
1997
+ const Ts = qa;
1998
+ let ys = a.SINH;
1999
+ function za(n) {
2000
+ return o(ys, n);
2001
+ }
2002
+ const fs = za;
2003
+ let Cs = a.SMA;
2004
+ function $a(n) {
2005
+ return o(Cs, n);
2006
+ }
2007
+ const gs = $a;
2008
+ let Ns = a.SQRT;
2009
+ function Za(n) {
2010
+ return o(Ns, n);
2011
+ }
2012
+ const Ls = Za;
2013
+ let Rs = a.STDDEV;
2014
+ function Qa(n) {
2015
+ return o(Rs, n);
2016
+ }
2017
+ const Es = Qa;
2018
+ let bs = a.STOCH;
2019
+ function eo(n) {
2020
+ return o(bs, n);
2021
+ }
2022
+ const Ss = eo;
2023
+ let Ps = a.STOCHF;
2024
+ function no(n) {
2025
+ return o(Ps, n);
2026
+ }
2027
+ const hs = no;
2028
+ let Os = a.STOCHRSI;
2029
+ function to(n) {
2030
+ return o(Os, n);
2031
+ }
2032
+ const Ms = to;
2033
+ let Hs = a.SUB;
2034
+ function ao(n) {
2035
+ return o(Hs, n);
2036
+ }
2037
+ const vs = ao;
2038
+ let ws = a.SUM;
2039
+ function oo(n) {
2040
+ return o(ws, n);
2041
+ }
2042
+ const Gs = oo;
2043
+ let Vs = a.T3;
2044
+ function io(n) {
2045
+ return o(Vs, n);
2046
+ }
2047
+ const xs = io;
2048
+ let Us = a.TAN;
2049
+ function ro(n) {
2050
+ return o(Us, n);
2051
+ }
2052
+ const Bs = ro;
2053
+ let Ks = a.TANH;
2054
+ function uo(n) {
2055
+ return o(Ks, n);
2056
+ }
2057
+ const Fs = uo;
2058
+ let Ws = a.TEMA;
2059
+ function lo(n) {
2060
+ return o(Ws, n);
2061
+ }
2062
+ const ks = lo;
2063
+ let Xs = a.TRANGE;
2064
+ function po(n) {
2065
+ return o(Xs, n);
2066
+ }
2067
+ const Js = po;
2068
+ let Ys = a.TRIMA;
2069
+ function so(n) {
2070
+ return o(Ys, n);
2071
+ }
2072
+ const js = so;
2073
+ let qs = a.TRIX;
2074
+ function mo(n) {
2075
+ return o(qs, n);
2076
+ }
2077
+ const zs = mo;
2078
+ let $s = a.TSF;
2079
+ function co(n) {
2080
+ return o($s, n);
2081
+ }
2082
+ const Zs = co;
2083
+ let Qs = a.TYPPRICE;
2084
+ function _o(n) {
2085
+ return o(Qs, n);
2086
+ }
2087
+ const em = _o;
2088
+ let nm = a.ULTOSC;
2089
+ function Ao(n) {
2090
+ return o(nm, n);
2091
+ }
2092
+ const tm = Ao;
2093
+ let am = a.VAR;
2094
+ function Do(n) {
2095
+ return o(am, n);
2096
+ }
2097
+ const om = Do;
2098
+ let im = a.WCLPRICE;
2099
+ function Io(n) {
2100
+ return o(im, n);
2101
+ }
2102
+ const rm = Io;
2103
+ let um = a.WILLR;
2104
+ function To(n) {
2105
+ return o(um, n);
2106
+ }
2107
+ const lm = To;
2108
+ let pm = a.WMA;
2109
+ function yo(n) {
2110
+ return o(pm, n);
2111
+ }
2112
+ const sm = yo, fe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2113
+ __proto__: null,
2114
+ ACCBANDS: fn,
2115
+ ACOS: Cn,
2116
+ AD: gn,
2117
+ ADD: Nn,
2118
+ ADOSC: Ln,
2119
+ ADX: Rn,
2120
+ ADXR: En,
2121
+ APO: bn,
2122
+ AROON: Sn,
2123
+ AROONOSC: Pn,
2124
+ ASIN: hn,
2125
+ ATAN: On,
2126
+ ATR: Mn,
2127
+ AVGDEV: Hn,
2128
+ AVGPRICE: vn,
2129
+ BBANDS: wn,
2130
+ BETA: Gn,
2131
+ BOP: Vn,
2132
+ CCI: xn,
2133
+ CDL2CROWS: Un,
2134
+ CDL3BLACKCROWS: Bn,
2135
+ CDL3INSIDE: Kn,
2136
+ CDL3LINESTRIKE: Fn,
2137
+ CDL3OUTSIDE: Wn,
2138
+ CDL3STARSINSOUTH: kn,
2139
+ CDL3WHITESOLDIERS: Xn,
2140
+ CDLABANDONEDBABY: Jn,
2141
+ CDLADVANCEBLOCK: Yn,
2142
+ CDLBELTHOLD: jn,
2143
+ CDLBREAKAWAY: qn,
2144
+ CDLCLOSINGMARUBOZU: zn,
2145
+ CDLCONCEALBABYSWALL: $n,
2146
+ CDLCOUNTERATTACK: Zn,
2147
+ CDLDARKCLOUDCOVER: Qn,
2148
+ CDLDOJI: et,
2149
+ CDLDOJISTAR: nt,
2150
+ CDLDRAGONFLYDOJI: tt,
2151
+ CDLENGULFING: at,
2152
+ CDLEVENINGDOJISTAR: ot,
2153
+ CDLEVENINGSTAR: it,
2154
+ CDLGAPSIDESIDEWHITE: rt,
2155
+ CDLGRAVESTONEDOJI: ut,
2156
+ CDLHAMMER: lt,
2157
+ CDLHANGINGMAN: pt,
2158
+ CDLHARAMI: st,
2159
+ CDLHARAMICROSS: mt,
2160
+ CDLHIGHWAVE: ct,
2161
+ CDLHIKKAKE: _t,
2162
+ CDLHIKKAKEMOD: At,
2163
+ CDLHOMINGPIGEON: Dt,
2164
+ CDLIDENTICAL3CROWS: dt,
2165
+ CDLINNECK: It,
2166
+ CDLINVERTEDHAMMER: Tt,
2167
+ CDLKICKING: yt,
2168
+ CDLKICKINGBYLENGTH: ft,
2169
+ CDLLADDERBOTTOM: Ct,
2170
+ CDLLONGLEGGEDDOJI: gt,
2171
+ CDLLONGLINE: Nt,
2172
+ CDLMARUBOZU: Lt,
2173
+ CDLMATCHINGLOW: Rt,
2174
+ CDLMATHOLD: Et,
2175
+ CDLMORNINGDOJISTAR: bt,
2176
+ CDLMORNINGSTAR: St,
2177
+ CDLONNECK: Pt,
2178
+ CDLPIERCING: ht,
2179
+ CDLRICKSHAWMAN: Ot,
2180
+ CDLRISEFALL3METHODS: Mt,
2181
+ CDLSEPARATINGLINES: Ht,
2182
+ CDLSHOOTINGSTAR: vt,
2183
+ CDLSHORTLINE: wt,
2184
+ CDLSPINNINGTOP: Gt,
2185
+ CDLSTALLEDPATTERN: Vt,
2186
+ CDLSTICKSANDWICH: xt,
2187
+ CDLTAKURI: Ut,
2188
+ CDLTASUKIGAP: Bt,
2189
+ CDLTHRUSTING: Kt,
2190
+ CDLTRISTAR: Ft,
2191
+ CDLUNIQUE3RIVER: Wt,
2192
+ CDLUPSIDEGAP2CROWS: kt,
2193
+ CDLXSIDEGAP3METHODS: Xt,
2194
+ CEIL: Jt,
2195
+ CMO: Yt,
2196
+ CORREL: jt,
2197
+ COS: qt,
2198
+ COSH: zt,
2199
+ DEMA: $t,
2200
+ DIV: Zt,
2201
+ DX: Qt,
2202
+ EMA: ea,
2203
+ EXP: na,
2204
+ FLOOR: ta,
2205
+ HT_DCPERIOD: aa,
2206
+ HT_DCPHASE: oa,
2207
+ HT_PHASOR: ia,
2208
+ HT_SINE: ra,
2209
+ HT_TRENDLINE: ua,
2210
+ HT_TRENDMODE: la,
2211
+ IMI: pa,
2212
+ KAMA: sa,
2213
+ LINEARREG: ma,
2214
+ LINEARREG_ANGLE: ca,
2215
+ LINEARREG_INTERCEPT: _a,
2216
+ LINEARREG_SLOPE: Aa,
2217
+ LN: Da,
2218
+ LOG10: da,
2219
+ MA: Ia,
2220
+ MACD: Ta,
2221
+ MACDEXT: ya,
2222
+ MACDFIX: fa,
2223
+ MAMA: Ca,
2224
+ get MAType() {
2225
+ return Be;
2226
+ },
2227
+ MAVP: ga,
2228
+ MAX: Na,
2229
+ MAXINDEX: La,
2230
+ MEDPRICE: Ra,
2231
+ MFI: Ea,
2232
+ MIDPOINT: ba,
2233
+ MIDPRICE: Sa,
2234
+ MIN: Pa,
2235
+ MININDEX: ha,
2236
+ MINMAX: Oa,
2237
+ MINMAXINDEX: Ma,
2238
+ MINUS_DI: Ha,
2239
+ MINUS_DM: va,
2240
+ MOM: wa,
2241
+ MULT: Ga,
2242
+ NATR: Va,
2243
+ OBV: xa,
2244
+ PLUS_DI: Ua,
2245
+ PLUS_DM: Ba,
2246
+ PPO: Ka,
2247
+ ROC: Fa,
2248
+ ROCP: Wa,
2249
+ ROCR: ka,
2250
+ ROCR100: Xa,
2251
+ RSI: Ja,
2252
+ SAR: Ya,
2253
+ SAREXT: ja,
2254
+ SIN: qa,
2255
+ SINH: za,
2256
+ SMA: $a,
2257
+ SQRT: Za,
2258
+ STDDEV: Qa,
2259
+ STOCH: eo,
2260
+ STOCHF: no,
2261
+ STOCHRSI: to,
2262
+ SUB: ao,
2263
+ SUM: oo,
2264
+ T3: io,
2265
+ TAN: ro,
2266
+ TANH: uo,
2267
+ TEMA: lo,
2268
+ TRANGE: po,
2269
+ TRIMA: so,
2270
+ TRIX: mo,
2271
+ TSF: co,
2272
+ TYPPRICE: _o,
2273
+ ULTOSC: Ao,
2274
+ VAR: Do,
2275
+ WCLPRICE: Io,
2276
+ WILLR: To,
2277
+ WMA: yo,
2278
+ accBands: Ai,
2279
+ acos: di,
2280
+ ad: Ti,
2281
+ adOsc: gi,
2282
+ add: fi,
2283
+ adx: Li,
2284
+ adxr: Ei,
2285
+ apo: Si,
2286
+ aroon: hi,
2287
+ aroonOsc: Mi,
2288
+ asin: vi,
2289
+ atan: Gi,
2290
+ atr: xi,
2291
+ avgDev: Bi,
2292
+ avgPrice: Fi,
2293
+ bbands: ki,
2294
+ beta: Ji,
2295
+ bop: ji,
2296
+ cci: zi,
2297
+ cdl2Crows: Zi,
2298
+ cdl3BlackCrows: er,
2299
+ cdl3Inside: tr,
2300
+ cdl3LineStrike: or,
2301
+ cdl3Outside: rr,
2302
+ cdl3StarsInSouth: lr,
2303
+ cdl3WhiteSoldiers: sr,
2304
+ cdlAbandonedBaby: cr,
2305
+ cdlAdvanceBlock: Ar,
2306
+ cdlBeltHold: dr,
2307
+ cdlBreakaway: Tr,
2308
+ cdlClosingMarubozu: fr,
2309
+ cdlConcealBabysWall: gr,
2310
+ cdlCounterAttack: Lr,
2311
+ cdlDarkCloudCover: Er,
2312
+ cdlDoji: Sr,
2313
+ cdlDojiStar: hr,
2314
+ cdlDragonflyDoji: Mr,
2315
+ cdlEngulfing: vr,
2316
+ cdlEveningDojiStar: Gr,
2317
+ cdlEveningStar: xr,
2318
+ cdlGapSideSideWhite: Br,
2319
+ cdlGravestoneDoji: Fr,
2320
+ cdlHammer: kr,
2321
+ cdlHangingMan: Jr,
2322
+ cdlHarami: jr,
2323
+ cdlHaramiCross: zr,
2324
+ cdlHignWave: Zr,
2325
+ cdlHikkake: eu,
2326
+ cdlHikkakeMod: tu,
2327
+ cdlHomingPigeon: ou,
2328
+ cdlIdentical3Crows: ru,
2329
+ cdlInNeck: lu,
2330
+ cdlInvertedHammer: su,
2331
+ cdlKicking: cu,
2332
+ cdlKickingByLength: Au,
2333
+ cdlLadderBottom: du,
2334
+ cdlLongLeggedDoji: Tu,
2335
+ cdlLongLine: fu,
2336
+ cdlMarubozu: gu,
2337
+ cdlMatHold: Eu,
2338
+ cdlMatchingLow: Lu,
2339
+ cdlMorningDojiStar: Su,
2340
+ cdlMorningStar: hu,
2341
+ cdlOnNeck: Mu,
2342
+ cdlPiercing: vu,
2343
+ cdlRickshawMan: Gu,
2344
+ cdlRiseFall3Methods: xu,
2345
+ cdlSeperatingLines: Bu,
2346
+ cdlShootingStar: Fu,
2347
+ cdlShortLine: ku,
2348
+ cdlSpinningTop: Ju,
2349
+ cdlStalledPattern: ju,
2350
+ cdlStickSandwhich: zu,
2351
+ cdlTakuri: Zu,
2352
+ cdlTasukiGap: el,
2353
+ cdlThrusting: tl,
2354
+ cdlTristar: ol,
2355
+ cdlUnique3River: rl,
2356
+ cdlUpsideGap2Crows: ll,
2357
+ cdlXSideGap3Methods: sl,
2358
+ ceil: cl,
2359
+ cmo: Al,
2360
+ correl: dl,
2361
+ cos: Tl,
2362
+ cosh: fl,
2363
+ dema: gl,
2364
+ div: Ll,
2365
+ dx: El,
2366
+ ema: Sl,
2367
+ exp: hl,
2368
+ floor: Ml,
2369
+ htDcPeriod: vl,
2370
+ htDcPhase: Gl,
2371
+ htPhasor: xl,
2372
+ htSine: Bl,
2373
+ htTrendMode: kl,
2374
+ htTrendline: Fl,
2375
+ imi: Jl,
2376
+ init: yn,
2377
+ kama: jl,
2378
+ linearReg: zl,
2379
+ linearRegAngle: Zl,
2380
+ linearRegIntercept: ep,
2381
+ linearRegSlope: tp,
2382
+ ln: op,
2383
+ log10: rp,
2384
+ macd: sp,
2385
+ macdExt: cp,
2386
+ macdFix: Ap,
2387
+ mama: dp,
2388
+ max: fp,
2389
+ maxIndex: gp,
2390
+ medPrice: Lp,
2391
+ mfi: Ep,
2392
+ midPoint: Sp,
2393
+ midPrice: hp,
2394
+ min: Mp,
2395
+ minIndex: vp,
2396
+ minMax: Gp,
2397
+ minMaxIndex: xp,
2398
+ minusDI: Bp,
2399
+ minusDM: Fp,
2400
+ mom: kp,
2401
+ movingAverage: lp,
2402
+ movingAverageVariablePeriod: Tp,
2403
+ mult: Jp,
2404
+ natr: jp,
2405
+ obv: zp,
2406
+ plusDI: Zp,
2407
+ plusDM: es,
2408
+ ppo: ts,
2409
+ roc: os,
2410
+ rocP: rs,
2411
+ rocR: ls,
2412
+ rocR100: ss,
2413
+ rsi: cs,
2414
+ sar: As,
2415
+ sarExt: ds,
2416
+ sin: Ts,
2417
+ sinh: fs,
2418
+ sma: gs,
2419
+ sqrt: Ls,
2420
+ stdDev: Es,
2421
+ stoch: Ss,
2422
+ stochF: hs,
2423
+ stochRsi: Ms,
2424
+ sub: vs,
2425
+ sum: Gs,
2426
+ t3: xs,
2427
+ tan: Bs,
2428
+ tanh: Fs,
2429
+ tema: ks,
2430
+ trima: js,
2431
+ trix: zs,
2432
+ trueRange: Js,
2433
+ tsf: Zs,
2434
+ typPrice: em,
2435
+ ultOsc: tm,
2436
+ variance: om,
2437
+ wclPrice: rm,
2438
+ willR: lm,
2439
+ wma: sm
2440
+ }, Symbol.toStringTag, { value: "Module" })), mm = /* @__PURE__ */ Ae({
19
2441
  __name: "index",
20
- setup(k, { expose: D }) {
21
- let S = !1, h = !0, v = [];
22
- const y = (f, c) => f.length > c ? f.slice(f.length - c) : f;
23
- return D({
2442
+ setup(n, { expose: N }) {
2443
+ let e = !1, b = !0, w = [];
2444
+ const h = (y, f) => y.length > f ? y.slice(y.length - f) : y;
2445
+ return N({
24
2446
  // 注册计算指标线方法
25
2447
  initTalib: async () => {
26
- if (!S)
27
- S = !0, await te("./talib.wasm"), h = !1, v.forEach((f) => {
28
- f();
2448
+ if (!e)
2449
+ e = !0, await yn("./talib.wasm"), b = !1, w.forEach((y) => {
2450
+ y();
29
2451
  });
30
- else if (h)
31
- return new Promise((f) => {
32
- v.push(f);
2452
+ else if (b)
2453
+ return new Promise((y) => {
2454
+ w.push(y);
33
2455
  });
34
2456
  },
35
2457
  // 键盘事件处理
36
- handleKeyDown: (f, c) => {
37
- let { startValue: o, endValue: u, maxIndex: p } = c;
38
- if (f.code === "ArrowLeft") {
39
- if (o === 0)
2458
+ handleKeyDown: (y, f) => {
2459
+ let { startValue: _, endValue: A, maxIndex: E } = f;
2460
+ if (y.code === "ArrowLeft") {
2461
+ if (_ === 0)
40
2462
  return;
41
- o = o - 1, u = u - 1;
42
- } else if (f.code === "ArrowRight") {
43
- if (u === p)
2463
+ _ = _ - 1, A = A - 1;
2464
+ } else if (y.code === "ArrowRight") {
2465
+ if (A === E)
44
2466
  return;
45
- o = o + 1, u = u + 1;
46
- } else if (f.code === "ArrowUp") {
47
- if (u - o < 5)
2467
+ _ = _ + 1, A = A + 1;
2468
+ } else if (y.code === "ArrowUp") {
2469
+ if (A - _ < 5)
48
2470
  return;
49
- const d = Math.floor((u - o) / 2) + 1;
50
- o = o + d, u - o < 5 && (o = u - 4);
51
- } else if (f.code === "ArrowDown") {
52
- const d = Math.min(500, u - o);
53
- o = o - d - 1;
2471
+ const L = Math.floor((A - _) / 2) + 1;
2472
+ _ = _ + L, A - _ < 5 && (_ = A - 4);
2473
+ } else if (y.code === "ArrowDown") {
2474
+ const L = Math.min(500, A - _);
2475
+ _ = _ - L - 1;
54
2476
  }
55
2477
  return {
56
- startValue: o,
57
- endValue: u
2478
+ startValue: _,
2479
+ endValue: A
58
2480
  };
59
2481
  },
60
2482
  // 根据时间解析dataZoom
61
- getDataZoomInfoByTime: (f) => {
62
- const { showStartTime: c, showEndTime: o, xAxisData: u, maxShowDays: p } = f;
63
- let d = -1, e = -1, i = {};
64
- return u.forEach((t, a) => {
65
- const r = t.split(" ")[0];
66
- i[r] = i[r] || 0, i[r] += 1, new Date(t) >= new Date(c) && d === -1 && (d = a), new Date(t) <= new Date(o) && (e = a);
2483
+ getDataZoomInfoByTime: (y) => {
2484
+ const { showStartTime: f, showEndTime: _, xAxisData: A, maxShowDays: E } = y;
2485
+ let L = -1, u = -1, l = {};
2486
+ return A.forEach((p, s) => {
2487
+ const I = p.split(" ")[0];
2488
+ l[I] = l[I] || 0, l[I] += 1, new Date(p) >= new Date(f) && L === -1 && (L = s), new Date(p) <= new Date(_) && (u = s);
67
2489
  }), {
68
- startValue: d,
69
- endValue: e,
70
- maxValueSpan: Math.max(...Object.values(i)) * p
2490
+ startValue: L,
2491
+ endValue: u,
2492
+ maxValueSpan: Math.max(...Object.values(l)) * E
71
2493
  };
72
2494
  },
73
2495
  /**
@@ -83,68 +2505,68 @@ const oe = /* @__PURE__ */ R({
83
2505
  * length, // 便捷数据 - K线长度
84
2506
  * }
85
2507
  */
86
- formatDataBySlide: (f) => {
87
- const { originDrawData: c, addData: o, startTime: u, endTime: p } = f, { mainIndicator: d, mainIndicatorList: e, subIndicator: i, subIndicatorList: t, config: a, timeRange: r } = f, { loadAddCount: x, preLoadCount: A } = a;
88
- let g = [], _ = [], F = [], I = [];
89
- u && p ? (g = o.filter((l) => new Date(l[0]) >= new Date(u) && new Date(l[0]) <= new Date(p)), I = [...o]) : p ? (g = [
90
- ...o.filter((l, n) => n >= o.length - x && new Date(r[0]) <= new Date(l[0]) && new Date(l[0]) <= new Date(r[1])),
91
- ...c.originData
92
- ], I = [...o, ...c.originData]) : u && (g = [
93
- ...c.originData,
94
- ...o.filter((l, n) => n >= A && new Date(r[0]) <= new Date(l[0]) && new Date(l[0]) <= new Date(r[1]))
95
- ], I = g), g.forEach((l, n) => {
96
- _.push([l[1], l[4], l[3], l[2], n === 0 ? 0 : g[n - 1][4], l[6]]), F.push(l[0]);
2508
+ formatDataBySlide: (y) => {
2509
+ const { originDrawData: f, addData: _, startTime: A, endTime: E } = y, { mainIndicator: L, mainIndicatorList: u, subIndicator: l, subIndicatorList: p, config: s, timeRange: I } = y, { loadAddCount: H, preLoadCount: V } = s;
2510
+ let O = [], x = [], Y = [], U = [];
2511
+ A && E ? (O = _.filter((g) => new Date(g[0]) >= new Date(A) && new Date(g[0]) <= new Date(E)), U = [..._]) : E ? (O = [
2512
+ ..._.filter((g, T) => T >= _.length - H && new Date(I[0]) <= new Date(g[0]) && new Date(g[0]) <= new Date(I[1])),
2513
+ ...f.originData
2514
+ ], U = [..._, ...f.originData]) : A && (O = [
2515
+ ...f.originData,
2516
+ ..._.filter((g, T) => T >= V && new Date(I[0]) <= new Date(g[0]) && new Date(g[0]) <= new Date(I[1]))
2517
+ ], U = O), O.forEach((g, T) => {
2518
+ x.push([g[1], g[4], g[3], g[2], T === 0 ? 0 : O[T - 1][4], g[6]]), Y.push(g[0]);
97
2519
  });
98
- let s = [], m = [];
99
- const b = {
2520
+ let C = [], M = [];
2521
+ const B = {
100
2522
  time: [],
101
2523
  open: [],
102
2524
  close: [],
103
2525
  high: [],
104
2526
  low: [],
105
- originData: I
2527
+ originData: U
106
2528
  };
107
- let E = null, C = null;
108
- return I.forEach((l, n) => {
109
- b.time.push(l[0]), b.open.push(l[1]), b.close.push(l[4]), b.high.push(l[2]), b.low.push(l[3]), l[0] === g[0][0] && (E = n), l[0] === g[g.length - 1][0] && (C = n + 1);
110
- }), s = e.find(({ value: l }) => l === d).config.map((l) => {
111
- const { calculationFn: n } = l;
2529
+ let j = null, J = null;
2530
+ return U.forEach((g, T) => {
2531
+ B.time.push(g[0]), B.open.push(g[1]), B.close.push(g[4]), B.high.push(g[2]), B.low.push(g[3]), g[0] === O[0][0] && (j = T), g[0] === O[O.length - 1][0] && (J = T + 1);
2532
+ }), C = u.find(({ value: g }) => g === L).config.map((g) => {
2533
+ const { calculationFn: T } = g;
112
2534
  return {
113
- ...l,
114
- data: n ? n(z, b, { time: [], open: [], close: [], high: [], low: [], originData: [] }).slice(E, C) : []
2535
+ ...g,
2536
+ data: T ? T(fe, B, { time: [], open: [], close: [], high: [], low: [], originData: [] }).slice(j, J) : []
115
2537
  };
116
- }), m = t.find(({ value: l }) => l === i).config.reduce((l, n) => {
117
- const { source: w, calculationFn: V } = n;
118
- return w === "calculation" ? [
119
- ...l,
2538
+ }), M = p.find(({ value: g }) => g === l).config.reduce((g, T) => {
2539
+ const { source: P, calculationFn: $ } = T;
2540
+ return P === "calculation" ? [
2541
+ ...g,
120
2542
  {
121
- ...n,
122
- data: V ? V(z, b).slice(E, C) : []
2543
+ ...T,
2544
+ data: $ ? $(fe, B).slice(j, J) : []
123
2545
  }
124
- ] : l;
2546
+ ] : g;
125
2547
  }, []), {
126
- originData: g,
127
- candlestickData: _,
128
- mainIndicatorData: s,
129
- subIndicatorData: m,
130
- xAxisData: F,
131
- startTime: g[0][0],
132
- endTime: g[g.length - 1][0],
133
- length: g.length
2548
+ originData: O,
2549
+ candlestickData: x,
2550
+ mainIndicatorData: C,
2551
+ subIndicatorData: M,
2552
+ xAxisData: Y,
2553
+ startTime: O[0][0],
2554
+ endTime: O[O.length - 1][0],
2555
+ length: O.length
134
2556
  };
135
2557
  },
136
2558
  // 计算绘图数据(根据长度使用)
137
- formatDataByCount: (f) => {
138
- const { originDrawData: c, addData: o, mainIndicator: u, mainIndicatorList: p, subIndicator: d, subIndicatorList: e, config: i } = f;
139
- let t = {};
140
- const { addCount: a, preLoadCount: r } = i, x = [], A = [], g = [], _ = [], F = [];
141
- let I = [], s = [];
142
- const m = o.filter((n, w) => (x.push(n[0]), A.push(n[1]), g.push(n[4]), _.push(n[2]), F.push(n[3]), I.push(n[0]), s.push([n[1], n[4], n[3], n[2], w === 0 ? 0 : o[w - 1][4], n[6]]), o.length >= a + r - 1 ? w >= r : !0));
143
- I = y(I, m.length), s = y(s, m.length);
144
- const b = { time: x, open: A, close: g, high: _, low: F, originData: o }, C = p.find((n) => n.value === u).config.map((n) => ({
145
- ...n,
146
- data: y(
147
- n.calculationFn ? n.calculationFn(z, b, {
2559
+ formatDataByCount: (y) => {
2560
+ const { originDrawData: f, addData: _, mainIndicator: A, mainIndicatorList: E, subIndicator: L, subIndicatorList: u, config: l } = y;
2561
+ let p = {};
2562
+ const { addCount: s, preLoadCount: I } = l, H = [], V = [], O = [], x = [], Y = [];
2563
+ let U = [], C = [];
2564
+ const M = _.filter((T, P) => (H.push(T[0]), V.push(T[1]), O.push(T[4]), x.push(T[2]), Y.push(T[3]), U.push(T[0]), C.push([T[1], T[4], T[3], T[2], P === 0 ? 0 : _[P - 1][4], T[6]]), _.length >= s + I - 1 ? P >= I : !0));
2565
+ U = h(U, M.length), C = h(C, M.length);
2566
+ const B = { time: H, open: V, close: O, high: x, low: Y, originData: _ }, J = E.find((T) => T.value === A).config.map((T) => ({
2567
+ ...T,
2568
+ data: h(
2569
+ T.calculationFn ? T.calculationFn(fe, B, {
148
2570
  time: [],
149
2571
  open: [],
150
2572
  close: [],
@@ -152,54 +2574,54 @@ const oe = /* @__PURE__ */ R({
152
2574
  low: [],
153
2575
  originData: []
154
2576
  }) : [],
155
- I.length
2577
+ U.length
156
2578
  )
157
2579
  }));
158
- let l = [];
159
- return d && e && (l = e.find((w) => w.value === d).config.reduce((w, V) => V.source === "calculation" ? [
160
- ...w,
2580
+ let g = [];
2581
+ return L && u && (g = u.find((P) => P.value === L).config.reduce((P, $) => $.source === "calculation" ? [
2582
+ ...P,
161
2583
  {
162
- ...V,
163
- data: y(
164
- V.calculationFn ? V.calculationFn(z, b) : [],
165
- I.length
2584
+ ...$,
2585
+ data: h(
2586
+ $.calculationFn ? $.calculationFn(fe, B) : [],
2587
+ U.length
166
2588
  )
167
2589
  }
168
- ] : w, [])), c.length ? t = {
169
- originData: [...m, ...c.originData],
2590
+ ] : P, [])), f.length ? p = {
2591
+ originData: [...M, ...f.originData],
170
2592
  // 原数据
171
- xAxisData: [...I, ...c.xAxisData],
2593
+ xAxisData: [...U, ...f.xAxisData],
172
2594
  // 时间数据
173
- candlestickData: [...s, ...c.candlestickData],
2595
+ candlestickData: [...C, ...f.candlestickData],
174
2596
  // k线数据
175
- mainIndicatorData: c.mainIndicatorData.map((n, w) => ({
176
- ...n,
177
- data: [...C[w].data, ...n.data]
2597
+ mainIndicatorData: f.mainIndicatorData.map((T, P) => ({
2598
+ ...T,
2599
+ data: [...J[P].data, ...T.data]
178
2600
  })),
179
2601
  // 主图指标线数据
180
- subIndicatorData: c.subIndicatorData.map((n, w) => ({
181
- ...n,
182
- data: [...l[w].data, ...n.data]
2602
+ subIndicatorData: f.subIndicatorData.map((T, P) => ({
2603
+ ...T,
2604
+ data: [...g[P].data, ...T.data]
183
2605
  }))
184
2606
  // 副图数据
185
- } : t = {
186
- originData: m,
2607
+ } : p = {
2608
+ originData: M,
187
2609
  // 原数据
188
- xAxisData: I,
2610
+ xAxisData: U,
189
2611
  // 时间数据
190
- candlestickData: s,
2612
+ candlestickData: C,
191
2613
  // k线数据
192
- mainIndicatorData: C,
2614
+ mainIndicatorData: J,
193
2615
  // 主图指标线数据
194
- subIndicatorData: l
2616
+ subIndicatorData: g
195
2617
  // 副图数据
196
- }, t.length = t.xAxisData.length, t.startTime = t.xAxisData[0], t.endTime = t.xAxisData[t.length - 1], t;
2618
+ }, p.length = p.xAxisData.length, p.startTime = p.xAxisData[0], p.endTime = p.xAxisData[p.length - 1], p;
197
2619
  },
198
2620
  fn: () => {
199
2621
  }
200
- }), (f, c) => null;
2622
+ }), (y, f) => null;
201
2623
  }
202
- }), re = { class: "kline-tips" }, ie = /* @__PURE__ */ R({
2624
+ }), cm = { class: "kline-tips" }, _m = /* @__PURE__ */ Ae({
203
2625
  __name: "index",
204
2626
  props: {
205
2627
  // 提示数据
@@ -208,17 +2630,17 @@ const oe = /* @__PURE__ */ R({
208
2630
  require: !0
209
2631
  }
210
2632
  },
211
- setup(k) {
212
- return (D, S) => (T(), L("div", re, [
213
- (T(!0), L(K, null, Z(k.data, (h, v) => (T(), L("div", {
214
- key: v,
2633
+ setup(n) {
2634
+ return (N, e) => (Q(), oe("div", cm, [
2635
+ (Q(!0), oe(_n, null, An(n.data, (b, w) => (Q(), oe("div", {
2636
+ key: w,
215
2637
  class: "kline-tips-item",
216
- style: H({ color: h.color })
217
- }, N(h.label) + " " + N(h.value), 5))), 128))
2638
+ style: oi({ color: b.color })
2639
+ }, sn(b.label) + " " + sn(b.value), 5))), 128))
218
2640
  ]));
219
2641
  }
220
2642
  });
221
- const M = /* @__PURE__ */ q(ie, [["__scopeId", "data-v-2a02e841"]]), le = { class: "kline-tips" }, se = /* @__PURE__ */ R({
2643
+ const Ke = /* @__PURE__ */ Ne(_m, [["__scopeId", "data-v-2a02e841"]]), Am = { class: "kline-tips" }, Dm = /* @__PURE__ */ Ae({
222
2644
  __name: "index",
223
2645
  props: {
224
2646
  // 提示数据
@@ -243,47 +2665,47 @@ const M = /* @__PURE__ */ q(ie, [["__scopeId", "data-v-2a02e841"]]), le = { clas
243
2665
  require: !0
244
2666
  }
245
2667
  },
246
- setup(k) {
247
- const { round: D, multiply: S, divide: h, subtract: v, formatValue: y } = G, f = k, c = $(() => {
248
- const { drawData: u, activeIndex: p, candlestickData: d } = f;
249
- if (d != null && d.length && d[p]) {
250
- let e;
251
- return d[p][6] > 0 ? e = "red" : d[p][6] < 0 && (e = "green"), [
252
- { label: "开", value: D(d[p][0]) },
253
- { label: "高", value: D(d[p][3]) },
254
- { label: "低", value: D(d[p][2]) },
255
- { label: "收", value: D(d[p][1]) },
256
- { label: "额", value: y(d[p][4]) },
257
- { label: "涨跌", value: `${D(d[p][6])}%`, color: e }
2668
+ setup(n) {
2669
+ const { round: N, multiply: e, divide: b, subtract: w, formatValue: h } = Tn, y = n, f = Ce(() => {
2670
+ const { drawData: A, activeIndex: E, candlestickData: L } = y;
2671
+ if (L != null && L.length && L[E]) {
2672
+ let u;
2673
+ return L[E][6] > 0 ? u = "red" : L[E][6] < 0 && (u = "green"), [
2674
+ { label: "开", value: N(L[E][0]) },
2675
+ { label: "高", value: N(L[E][3]) },
2676
+ { label: "低", value: N(L[E][2]) },
2677
+ { label: "收", value: N(L[E][1]) },
2678
+ { label: "额", value: h(L[E][4]) },
2679
+ { label: "涨跌", value: `${N(L[E][6])}%`, color: u }
258
2680
  ];
259
- } else if (u.candlestickData && u.candlestickData[p]) {
260
- const e = u.candlestickData[p], i = [
261
- { label: "开", value: D(e[0]) },
262
- { label: "高", value: D(e[3]) },
263
- { label: "低", value: D(e[2]) },
264
- { label: "收", value: D(e[1]) }
2681
+ } else if (A.candlestickData && A.candlestickData[E]) {
2682
+ const u = A.candlestickData[E], l = [
2683
+ { label: "开", value: N(u[0]) },
2684
+ { label: "高", value: N(u[3]) },
2685
+ { label: "低", value: N(u[2]) },
2686
+ { label: "收", value: N(u[1]) }
265
2687
  ];
266
- e[5] !== void 0 && i.push({ label: "额", value: y(e[5]) });
267
- const t = D(S(h(v(e[1], e[4]), Math.abs(e[4])), 100));
268
- let a;
269
- return t > 0 ? a = "red" : t < 0 && (a = "green"), i.push({ label: "涨跌", value: `${t}%`, color: a }), i;
2688
+ u[5] !== void 0 && l.push({ label: "额", value: h(u[5]) });
2689
+ const p = N(e(b(w(u[1], u[4]), Math.abs(u[4])), 100));
2690
+ let s;
2691
+ return p > 0 ? s = "red" : p < 0 && (s = "green"), l.push({ label: "涨跌", value: `${p}%`, color: s }), l;
270
2692
  }
271
2693
  return [];
272
- }), o = $(() => {
273
- var d;
274
- const { drawData: u, activeIndex: p } = f;
275
- return ((d = u == null ? void 0 : u.mainIndicatorData) == null ? void 0 : d.map((e) => ({ label: e.key, value: D(e.data[p]), color: e.color }))) || [];
2694
+ }), _ = Ce(() => {
2695
+ var L;
2696
+ const { drawData: A, activeIndex: E } = y;
2697
+ return ((L = A == null ? void 0 : A.mainIndicatorData) == null ? void 0 : L.map((u) => ({ label: u.key, value: N(u.data[E]), color: u.color }))) || [];
276
2698
  });
277
- return (u, p) => (T(), L("div", le, [
278
- O(M, { data: c.value }, null, 8, ["data"]),
279
- O(M, { data: o.value }, null, 8, ["data"])
2699
+ return (A, E) => (Q(), oe("div", Am, [
2700
+ ge(Ke, { data: f.value }, null, 8, ["data"]),
2701
+ ge(Ke, { data: _.value }, null, 8, ["data"])
280
2702
  ]));
281
2703
  }
282
2704
  });
283
- const ce = /* @__PURE__ */ q(se, [["__scopeId", "data-v-234f3f41"]]), ue = { class: "klineSub" }, de = { class: "klineSub-tips" }, pe = {
2705
+ const dm = /* @__PURE__ */ Ne(Dm, [["__scopeId", "data-v-234f3f41"]]), Im = { class: "klineSub" }, Tm = { class: "klineSub-tips" }, ym = {
284
2706
  key: 0,
285
2707
  class: "klineSub-tips-select"
286
- }, fe = /* @__PURE__ */ R({
2708
+ }, fm = /* @__PURE__ */ Ae({
287
2709
  __name: "index",
288
2710
  props: {
289
2711
  drawData: { type: Object, require: !0 },
@@ -296,123 +2718,123 @@ const ce = /* @__PURE__ */ q(se, [["__scopeId", "data-v-234f3f41"]]), ue = { cla
296
2718
  // 配置
297
2719
  },
298
2720
  emits: ["update:modelValue"],
299
- setup(k, { expose: D, emit: S }) {
300
- const { round: h } = G;
301
- let v, y;
302
- const f = S, c = k, o = j(), u = $({
2721
+ setup(n, { expose: N, emit: e }) {
2722
+ const { round: b } = Tn;
2723
+ let w, h;
2724
+ const y = e, f = n, _ = Dn(), A = Ce({
303
2725
  get() {
304
- return c.modelValue;
2726
+ return f.modelValue;
305
2727
  },
306
- set(e) {
307
- f("update:modelValue", e);
308
- }
309
- }), p = $(() => {
310
- const { drawData: e, activeIndex: i } = c, t = c.subIndicatorList.find((a) => a.value === u.value);
311
- return e.originData && e.originData[i] ? t.config.map((a) => {
312
- var x, A;
313
- let r = "-";
314
- return a.source === "origin" ? r = e.originData[i][a.dataIndex] || "-" : a.source === "calculation" && (r = (((A = (x = e.subIndicatorData) == null ? void 0 : x.find((_) => _.key === a.key)) == null ? void 0 : A.data) || [])[i]), {
315
- label: a.key,
316
- color: a.color,
317
- value: r === "-" ? r : h(r)
2728
+ set(u) {
2729
+ y("update:modelValue", u);
2730
+ }
2731
+ }), E = Ce(() => {
2732
+ const { drawData: u, activeIndex: l } = f, p = f.subIndicatorList.find((s) => s.value === A.value);
2733
+ return u.originData && u.originData[l] ? p.config.map((s) => {
2734
+ var H, V;
2735
+ let I = "-";
2736
+ return s.source === "origin" ? I = u.originData[l][s.dataIndex] || "-" : s.source === "calculation" && (I = (((V = (H = u.subIndicatorData) == null ? void 0 : H.find((x) => x.key === s.key)) == null ? void 0 : V.data) || [])[l]), {
2737
+ label: s.key,
2738
+ color: s.color,
2739
+ value: I === "-" ? I : b(I)
318
2740
  };
319
2741
  }) : [];
320
2742
  });
321
- U(() => {
322
- v = B.init(o.value);
323
- let e = !0;
324
- y = new ResizeObserver(() => {
325
- if (e) {
326
- e = null;
2743
+ dn(() => {
2744
+ w = Ue.init(_.value);
2745
+ let u = !0;
2746
+ h = new ResizeObserver(() => {
2747
+ if (u) {
2748
+ u = null;
327
2749
  return;
328
2750
  }
329
- v.resize();
330
- }), y.observe(o.value);
331
- }), Y(() => {
332
- v.dispose(), y.disconnect(), y = null;
2751
+ w.resize();
2752
+ }), h.observe(_.value);
2753
+ }), In(() => {
2754
+ w.dispose(), h.disconnect(), h = null;
333
2755
  });
334
- const d = (e, i) => {
335
- const t = e[i], a = i === 0 ? e[i] : e[i - 1];
336
- return t[0] === t[1] ? t[0] >= a[1] ? {
2756
+ const L = (u, l) => {
2757
+ const p = u[l], s = l === 0 ? u[l] : u[l - 1];
2758
+ return p[0] === p[1] ? p[0] >= s[1] ? {
337
2759
  color: "transparent",
338
2760
  borderColor: "#FF0000"
339
2761
  } : {
340
2762
  color: "#00FFFF"
341
- } : t[1] > t[0] ? {
2763
+ } : p[1] > p[0] ? {
342
2764
  color: "transparent",
343
2765
  borderColor: "#FF0000"
344
2766
  } : {
345
2767
  color: "#00FFFF"
346
2768
  };
347
2769
  };
348
- return D({
349
- connect: (e) => {
350
- B.connect([e, v]);
2770
+ return N({
2771
+ connect: (u) => {
2772
+ Ue.connect([u, w]);
351
2773
  },
352
2774
  // 联动
353
- draw: (e) => {
354
- J(() => {
355
- var I;
356
- const { startValue: i, endValue: t, maxValueSpan: a } = e, { xAxisData: r, subIndicatorData: x, candlestickData: A, originData: g } = c.drawData, _ = c.subIndicatorList.find((s) => s.value === u.value), F = [];
357
- if (_.series === "bar") {
358
- let s = [];
359
- _.source === "origin" ? s = g.map((m) => m[_.dataIndex]) : s = ((I = x == null ? void 0 : x.find((m) => m.key === _.dataIndex)) == null ? void 0 : I.data) || [], F.push({
2775
+ draw: (u) => {
2776
+ ii(() => {
2777
+ var U;
2778
+ const { startValue: l, endValue: p, maxValueSpan: s } = u, { xAxisData: I, subIndicatorData: H, candlestickData: V, originData: O } = f.drawData, x = f.subIndicatorList.find((C) => C.value === A.value), Y = [];
2779
+ if (x.series === "bar") {
2780
+ let C = [];
2781
+ x.source === "origin" ? C = O.map((M) => M[x.dataIndex]) : C = ((U = H == null ? void 0 : H.find((M) => M.key === x.dataIndex)) == null ? void 0 : U.data) || [], Y.push({
360
2782
  name: "subMain",
361
2783
  xAxisIndex: 0,
362
2784
  yAxisIndex: 1,
363
2785
  type: "bar",
364
2786
  silent: !0,
365
2787
  symbol: "none",
366
- data: s.map((m, b) => _.color === "kline" ? {
367
- value: m,
368
- itemStyle: d(A, b)
369
- } : _.color === "value" ? {
370
- value: m,
2788
+ data: C.map((M, B) => x.color === "kline" ? {
2789
+ value: M,
2790
+ itemStyle: L(V, B)
2791
+ } : x.color === "value" ? {
2792
+ value: M,
371
2793
  itemStyle: {
372
- color: m >= 0 ? "#FF0000" : "#00FFFF"
2794
+ color: M >= 0 ? "#FF0000" : "#00FFFF"
373
2795
  }
374
2796
  } : {
375
- value: m,
2797
+ value: M,
376
2798
  itemStyle: {
377
- color: _.color
2799
+ color: x.color
378
2800
  }
379
2801
  })
380
2802
  });
381
2803
  }
382
- x.forEach((s) => {
383
- if (s.series === "line") {
384
- let m = [];
385
- s.source === "origin" ? m = g.map((b) => b[s.dataIndex]) : s.source === "calculation" && (m = s.data), F.push({
2804
+ H.forEach((C) => {
2805
+ if (C.series === "line") {
2806
+ let M = [];
2807
+ C.source === "origin" ? M = O.map((B) => B[C.dataIndex]) : C.source === "calculation" && (M = C.data), Y.push({
386
2808
  xAxisIndex: 0,
387
- yAxisIndex: s.yAxis === "right" ? 2 : 1,
388
- name: s.key,
2809
+ yAxisIndex: C.yAxis === "right" ? 2 : 1,
2810
+ name: C.key,
389
2811
  type: "line",
390
2812
  silent: !0,
391
2813
  symbol: "none",
392
- data: m,
2814
+ data: M,
393
2815
  lineStyle: {
394
2816
  width: 1
395
2817
  },
396
2818
  itemStyle: {
397
- color: s.color
2819
+ color: C.color
398
2820
  }
399
2821
  });
400
2822
  }
401
- }), v.setOption(
2823
+ }), w.setOption(
402
2824
  {
403
2825
  animation: !1,
404
2826
  grid: {
405
- left: `${c.config.gridLeft}px`,
2827
+ left: `${f.config.gridLeft}px`,
406
2828
  top: "10px",
407
- right: `${c.config.gridRight}px`,
2829
+ right: `${f.config.gridRight}px`,
408
2830
  bottom: "20px"
409
2831
  },
410
2832
  dataZoom: [
411
2833
  {
412
2834
  type: "inside",
413
- startValue: i,
414
- endValue: t,
415
- maxValueSpan: a
2835
+ startValue: l,
2836
+ endValue: p,
2837
+ maxValueSpan: s
416
2838
  }
417
2839
  ],
418
2840
  tooltip: {
@@ -423,12 +2845,12 @@ const ce = /* @__PURE__ */ q(se, [["__scopeId", "data-v-234f3f41"]]), ue = { cla
423
2845
  type: "cross",
424
2846
  label: {
425
2847
  rich: {},
426
- formatter: (s) => {
427
- const { axisDimension: m, value: b } = s;
428
- if (m === "x")
429
- return b;
430
- if (s.axisIndex === 1)
431
- return String(h(b));
2848
+ formatter: (C) => {
2849
+ const { axisDimension: M, value: B } = C;
2850
+ if (M === "x")
2851
+ return B;
2852
+ if (C.axisIndex === 1)
2853
+ return String(b(B));
432
2854
  }
433
2855
  }
434
2856
  },
@@ -436,7 +2858,7 @@ const ce = /* @__PURE__ */ q(se, [["__scopeId", "data-v-234f3f41"]]), ue = { cla
436
2858
  },
437
2859
  xAxis: {
438
2860
  type: "category",
439
- data: r,
2861
+ data: I,
440
2862
  axisLine: {
441
2863
  show: !0
442
2864
  },
@@ -445,7 +2867,7 @@ const ce = /* @__PURE__ */ q(se, [["__scopeId", "data-v-234f3f41"]]), ue = { cla
445
2867
  },
446
2868
  axisLabel: {
447
2869
  show: !0,
448
- formatter: (s) => s
2870
+ formatter: (C) => C
449
2871
  }
450
2872
  },
451
2873
  yAxis: [
@@ -454,8 +2876,8 @@ const ce = /* @__PURE__ */ q(se, [["__scopeId", "data-v-234f3f41"]]), ue = { cla
454
2876
  },
455
2877
  {
456
2878
  position: "left",
457
- min: _.leftYAxisRange === "cover" ? (s) => s.min : null,
458
- max: _.leftYAxisRange === "cover" ? (s) => s.max : null,
2879
+ min: x.leftYAxisRange === "cover" ? (C) => C.min : null,
2880
+ max: x.leftYAxisRange === "cover" ? (C) => C.max : null,
459
2881
  splitNumber: 1,
460
2882
  axisLine: {
461
2883
  show: !0
@@ -470,8 +2892,8 @@ const ce = /* @__PURE__ */ q(se, [["__scopeId", "data-v-234f3f41"]]), ue = { cla
470
2892
  },
471
2893
  {
472
2894
  position: "right",
473
- min: _.rightYAxisRange === "cover" ? (s) => s.min : null,
474
- max: _.rightYAxisRange === "cover" ? (s) => s.max : null,
2895
+ min: x.rightYAxisRange === "cover" ? (C) => C.min : null,
2896
+ max: x.rightYAxisRange === "cover" ? (C) => C.max : null,
475
2897
  splitNumber: 1,
476
2898
  axisLine: {
477
2899
  show: !1
@@ -484,97 +2906,97 @@ const ce = /* @__PURE__ */ q(se, [["__scopeId", "data-v-234f3f41"]]), ue = { cla
484
2906
  }
485
2907
  }
486
2908
  ],
487
- series: F
2909
+ series: Y
488
2910
  },
489
2911
  !0
490
2912
  );
491
2913
  });
492
2914
  }
493
2915
  // 重置
494
- }), (e, i) => {
495
- const t = ae, a = ne;
496
- return T(), L("div", ue, [
497
- P("div", de, [
498
- p.value.length ? (T(), L("div", pe, [
499
- O(a, {
500
- modelValue: u.value,
501
- "onUpdate:modelValue": i[0] || (i[0] = (r) => u.value = r),
2916
+ }), (u, l) => {
2917
+ const p = si, s = mi;
2918
+ return Q(), oe("div", Im, [
2919
+ mn("div", Tm, [
2920
+ E.value.length ? (Q(), oe("div", ym, [
2921
+ ge(s, {
2922
+ modelValue: A.value,
2923
+ "onUpdate:modelValue": l[0] || (l[0] = (I) => A.value = I),
502
2924
  size: "small",
503
2925
  "popper-class": "element-dark",
504
2926
  class: "element-dark subIndicator"
505
2927
  }, {
506
- default: Q(() => [
507
- (T(!0), L(K, null, Z(k.subIndicatorList, (r) => (T(), W(t, {
508
- key: r.value,
509
- label: r.label,
510
- value: r.value
2928
+ default: ri(() => [
2929
+ (Q(!0), oe(_n, null, An(n.subIndicatorList, (I) => (Q(), ui(p, {
2930
+ key: I.value,
2931
+ label: I.label,
2932
+ value: I.value
511
2933
  }, null, 8, ["label", "value"]))), 128))
512
2934
  ]),
513
2935
  _: 1
514
2936
  }, 8, ["modelValue"])
515
- ])) : X("", !0),
516
- O(M, { data: p.value }, null, 8, ["data"])
2937
+ ])) : li("", !0),
2938
+ ge(Ke, { data: E.value }, null, 8, ["data"])
517
2939
  ]),
518
- P("div", {
2940
+ mn("div", {
519
2941
  class: "klineSub-chart",
520
2942
  ref_key: "subChartRef",
521
- ref: o
2943
+ ref: _
522
2944
  }, null, 512)
523
2945
  ]);
524
2946
  };
525
2947
  }
526
2948
  });
527
- const he = /* @__PURE__ */ q(fe, [["__scopeId", "data-v-0a2f256e"]]), me = /* @__PURE__ */ R({
2949
+ const Cm = /* @__PURE__ */ Ne(fm, [["__scopeId", "data-v-0a2f256e"]]), gm = /* @__PURE__ */ Ae({
528
2950
  __name: "index",
529
2951
  props: {
530
2952
  data: { type: Array, default: () => [] }
531
2953
  // 时间数据
532
2954
  },
533
2955
  emits: ["change"],
534
- setup(k, { expose: D, emit: S }) {
535
- let h, v, y = null;
536
- const f = S, c = k, o = j();
537
- ee(
538
- () => c.data,
2956
+ setup(n, { expose: N, emit: e }) {
2957
+ let b, w, h = null;
2958
+ const y = e, f = n, _ = Dn();
2959
+ pi(
2960
+ () => f.data,
539
2961
  () => {
540
- d();
2962
+ L();
541
2963
  },
542
2964
  { deep: !0 }
543
- ), U(() => {
544
- h = B.init(o.value), u(), d();
545
- let e = !0;
546
- v = new ResizeObserver(() => {
547
- if (e) {
548
- e = null;
2965
+ ), dn(() => {
2966
+ b = Ue.init(_.value), A(), L();
2967
+ let u = !0;
2968
+ w = new ResizeObserver(() => {
2969
+ if (u) {
2970
+ u = null;
549
2971
  return;
550
2972
  }
551
- h.resize();
552
- }), v.observe(o.value);
553
- }), Y(() => {
554
- h.off("datazoom"), h.dispose(), v.disconnect(), v = null;
2973
+ b.resize();
2974
+ }), w.observe(_.value);
2975
+ }), In(() => {
2976
+ b.off("datazoom"), b.dispose(), w.disconnect(), w = null;
555
2977
  });
556
- const u = () => {
557
- h.on("datazoom", (e) => {
558
- e.dataZoomId && (clearTimeout(y), y = setTimeout(() => {
559
- const { data: i } = c, { start: t, end: a } = e, r = Math.floor(t * i.length / 100), x = a === 100 ? i.length - 1 : Math.floor(a * i.length / 100);
560
- p(r, x), clearTimeout(y);
2978
+ const A = () => {
2979
+ b.on("datazoom", (u) => {
2980
+ u.dataZoomId && (clearTimeout(h), h = setTimeout(() => {
2981
+ const { data: l } = f, { start: p, end: s } = u, I = Math.floor(p * l.length / 100), H = s === 100 ? l.length - 1 : Math.floor(s * l.length / 100);
2982
+ E(I, H), clearTimeout(h);
561
2983
  }, 100));
562
2984
  });
563
- }, p = (e, i) => {
564
- const t = c.data;
565
- if (t.length === 0)
2985
+ }, E = (u, l) => {
2986
+ const p = f.data;
2987
+ if (p.length === 0)
566
2988
  return;
567
- const a = t[e][0].split(" ")[0], r = t[i][0].split(" ")[0];
568
- f("change", {
569
- startTime: `${a} 00:00:00`,
570
- endTime: `${r} 24:00:00`
2989
+ const s = p[u][0].split(" ")[0], I = p[l][0].split(" ")[0];
2990
+ y("change", {
2991
+ startTime: `${s} 00:00:00`,
2992
+ endTime: `${I} 24:00:00`
571
2993
  });
572
- }, d = () => {
573
- const { data: e } = c;
574
- if (e.length === 0)
2994
+ }, L = () => {
2995
+ const { data: u } = f;
2996
+ if (u.length === 0)
575
2997
  return;
576
- const i = e.map((a) => a[0].split(" ")[0]), t = e.map((a) => a[1]);
577
- h.setOption({
2998
+ const l = u.map((s) => s[0].split(" ")[0]), p = u.map((s) => s[1]);
2999
+ b.setOption({
578
3000
  grid: {
579
3001
  height: 0,
580
3002
  left: "80px",
@@ -582,7 +3004,7 @@ const he = /* @__PURE__ */ q(fe, [["__scopeId", "data-v-0a2f256e"]]), me = /* @_
582
3004
  },
583
3005
  xAxis: {
584
3006
  type: "category",
585
- data: i,
3007
+ data: l,
586
3008
  show: !1
587
3009
  },
588
3010
  yAxis: {
@@ -590,53 +3012,53 @@ const he = /* @__PURE__ */ q(fe, [["__scopeId", "data-v-0a2f256e"]]), me = /* @_
590
3012
  },
591
3013
  series: [
592
3014
  {
593
- data: t,
3015
+ data: p,
594
3016
  type: "line"
595
3017
  }
596
3018
  ]
597
3019
  }, !0);
598
3020
  };
599
- return D({
600
- resetSlide: (e, i, t) => {
601
- let a = -1, r = -1;
602
- c.data.forEach((x, A) => {
603
- a === -1 && x[0] === e ? a = A : a === -1 && new Date(x[0]) > new Date(e) && (a = A - 1), (r === -1 && x[0] === i || r === -1 && new Date(x[0]) > new Date(i)) && (r = A);
604
- }), r = r === -1 ? c.data.length - 1 : r, h.setOption({
3021
+ return N({
3022
+ resetSlide: (u, l, p) => {
3023
+ let s = -1, I = -1;
3024
+ f.data.forEach((H, V) => {
3025
+ s === -1 && H[0] === u ? s = V : s === -1 && new Date(H[0]) > new Date(u) && (s = V - 1), (I === -1 && H[0] === l || I === -1 && new Date(H[0]) > new Date(l)) && (I = V);
3026
+ }), I = I === -1 ? f.data.length - 1 : I, b.setOption({
605
3027
  dataZoom: [
606
3028
  {
607
3029
  show: !0,
608
- startValue: a,
609
- endValue: r,
610
- maxValueSpan: t,
3030
+ startValue: s,
3031
+ endValue: I,
3032
+ maxValueSpan: p,
611
3033
  textStyle: {
612
3034
  color: "#ccc"
613
3035
  }
614
3036
  },
615
3037
  {
616
3038
  type: "inside",
617
- startValue: a,
618
- endValue: r,
619
- maxValueSpan: t
3039
+ startValue: s,
3040
+ endValue: I,
3041
+ maxValueSpan: p
620
3042
  }
621
3043
  ]
622
3044
  });
623
3045
  },
624
3046
  // 重置
625
3047
  resize: () => {
626
- h == null || h.resize();
3048
+ b == null || b.resize();
627
3049
  }
628
- }), (e, i) => (T(), L("div", {
3050
+ }), (u, l) => (Q(), oe("div", {
629
3051
  class: "klineSlide",
630
3052
  ref_key: "slideChartRef",
631
- ref: o
3053
+ ref: _
632
3054
  }, null, 512));
633
3055
  }
634
3056
  });
635
- const ge = /* @__PURE__ */ q(me, [["__scopeId", "data-v-5008746a"]]), Re = {
636
- install(k) {
637
- k.component("st-klineUtils", oe), k.component("st-klineSub", he), k.component("st-klineTips", ce), k.component("st-klineSlide", ge);
3057
+ const Nm = /* @__PURE__ */ Ne(gm, [["__scopeId", "data-v-5008746a"]]), wm = {
3058
+ install(n) {
3059
+ n.component("st-klineUtils", mm), n.component("st-klineSub", Cm), n.component("st-klineTips", dm), n.component("st-klineSlide", Nm);
638
3060
  }
639
3061
  };
640
3062
  export {
641
- Re as default
3063
+ wm as default
642
3064
  };