ohlcv-indicators 3.5.72 → 3.5.73

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.
@@ -1 +1 @@
1
- var OHLCV_INDICATORS;(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};(()=>{t.r(e),t.d(e,{default:()=>Kr});var r=function(t,e,r){if(0===r.length)return!1;for(var n=t.verticalOhlcv,o=!0,i=0;i<r.length;i++){var a=r[i];if(!n.hasOwnProperty(a)){o=!1;break}var u=n[a][e];if(null==u||Number.isNaN(u)){o=!1;break}}return o};function n(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=o(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,u=!0,l=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return u=t.done,t},e:function(t){l=!0,a=t},f:function(){try{u||null==r.return||r.return()}finally{if(l)throw a}}}}function o(t,e){if(t){if("string"==typeof t)return i(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(t,e):void 0}}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var a=function(t,e){if(!Array.isArray(t))throw new Error('Property "inputParams" must be an "Array" or "Set".');var r,o=n(t);try{for(o.s();!(r=o.n()).done;){var i,a=n(r.value.params);try{for(a.s();!(i=a.n()).done;){var u=i.value;if("number"==typeof u&&u>e)throw console.log(u,e),new Error("At least one of the params of the indicator is greater than the input OHLCV length. Make sure to have enough datapoints in the input OHLCV.")}}catch(t){a.e(t)}finally{a.f()}}}catch(t){o.e(t)}finally{o.f()}},u=function(t){if(!0===t.isComputed)throw Error('ohlcv is already computed, you can not add new indicators after "compute", "getLastValues" or "getData" methods are called.')},l=function(t,e,r){if(!Array.isArray(t))throw new Error('Param "'.concat(e,'" must be an array in "').concat(r,'".'));return!0},c=function(t,e,r){if(t instanceof Object==0)throw new Error('Param "'.concat(e,'" must be an object in "').concat(r,'".'));return!0},s=function(t,e,r,n){if(l(t,"arrayOptions","".concat(n,".").concat(r,".validateArrayOptions")),!t.includes(e.toString()))throw new Error('Param "'.concat(r,'" must be any of the following values [').concat(t.join(", "),'] in "').concat(n,'".'));return!0},f=function(t,e,r){if("boolean"!=typeof t)throw new Error('Param "'.concat(e,'" must be an boolean in "').concat(r,'".'));return!0},p=function(t,e,r,n){c(e,"options","".concat(n,".").concat(r,".validateNumber"));var o=e.allowDecimals,i=void 0!==o&&o,a=e.min,u=e.max,l=i?"number":"integer";if("number"!=typeof t||!1===i&&!Number.isInteger(t))throw new Error('Param "'.concat(r,'" must be an ').concat(l,' in "').concat(n,'".'));if(void 0!==a&&"number"!=typeof a)throw new Error('Param "min" must be a valid '.concat(l,' (if provided) in "').concat(n,".").concat(r,'.validateNumber".'));if(void 0!==u&&"number"!=typeof u)throw new Error('Param "max" must be a valid '.concat(l,' (if provided) in "').concat(n,".").concat(r,'.validateNumber".'));if(void 0!==a&&void 0!==u&&a>=u)throw new Error('Param "min" must be less than "max" in "'.concat(n,".").concat(r,'.validateNumber".'));if(void 0!==a&&t<a)throw new Error('Param "'.concat(r,'" must be an ').concat(l," ≥ ").concat(a,' in "').concat(n,'".'));if(void 0!==u&&t>u)throw new Error('Param "'.concat(r,'" must be an ').concat(l," ≤ ").concat(u,' in "').concat(n,'".'));return!0},y=function(t,e,r){if(l(t,e,r),2!==t.length)throw new Error('Invalid "'.concat(e,'" array length: expected 2 items, but got ').concat(t.length,' in "').concat(r,".").concat(e,'".'));var n,i,a=(i=2,function(t){if(Array.isArray(t))return t}(n=t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(n,i)||o(n,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=a[0],c=a[1];if(p(u,{min:-100,max:c,allowDecimals:!1},"".concat(e,"[0] (min)"),r),p(c,{min:u,max:100,allowDecimals:!1},"".concat(e,"[1] (max)"),r),u===c)throw new Error('Invalid "min" can not be equal to "max" property in "'.concat(r,".").concat(e,'".'));return!0},h=function(t,e,r){if("string"!=typeof t||!t.length)throw new Error('Invalid "'.concat(e,'" property in "').concat(r,'". Only strings are accepted.'));return!0},v=1e6,m="[big.js] ",d=m+"Invalid ",b=d+"decimal places",g=d+"rounding mode",w=m+"Division by zero",S={},O=void 0,j=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;function P(t,e,r,n){var o=t.c;if(r===O&&(r=t.constructor.RM),0!==r&&1!==r&&2!==r&&3!==r)throw Error(g);if(e<1)n=3===r&&(n||!!o[0])||0===e&&(1===r&&o[0]>=5||2===r&&(o[0]>5||5===o[0]&&(n||o[1]!==O))),o.length=1,n?(t.e=t.e-e+1,o[0]=1):o[0]=t.e=0;else if(e<o.length){if(n=1===r&&o[e]>=5||2===r&&(o[e]>5||5===o[e]&&(n||o[e+1]!==O||1&o[e-1]))||3===r&&(n||!!o[0]),o.length=e,n)for(;++o[--e]>9;)if(o[e]=0,0===e){++t.e,o.unshift(1);break}for(e=o.length;!o[--e];)o.pop()}return t}function N(t,e,r){var n=t.e,o=t.c.join(""),i=o.length;if(e)o=o.charAt(0)+(i>1?"."+o.slice(1):"")+(n<0?"e":"e+")+n;else if(n<0){for(;++n;)o="0"+o;o="0."+o}else if(n>0)if(++n>i)for(n-=i;n--;)o+="0";else n<i&&(o=o.slice(0,n)+"."+o.slice(n));else i>1&&(o=o.charAt(0)+"."+o.slice(1));return t.s<0&&r?"-"+o:o}function _(t){return _="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_(t)}function A(t){var e="function"==typeof Map?new Map:void 0;return A=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return function(t,e,r){if(k())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var o=new(t.bind.apply(t,n));return r&&T(o,r.prototype),o}(t,arguments,E(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),T(r,t)},A(t)}function k(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(k=function(){return!!t})()}function T(t,e){return T=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},T(t,e)}function E(t){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},E(t)}S.abs=function(){var t=new this.constructor(this);return t.s=1,t},S.cmp=function(t){var e,r=this,n=r.c,o=(t=new r.constructor(t)).c,i=r.s,a=t.s,u=r.e,l=t.e;if(!n[0]||!o[0])return n[0]?i:o[0]?-a:0;if(i!=a)return i;if(e=i<0,u!=l)return u>l^e?1:-1;for(a=(u=n.length)<(l=o.length)?u:l,i=-1;++i<a;)if(n[i]!=o[i])return n[i]>o[i]^e?1:-1;return u==l?0:u>l^e?1:-1},S.div=function(t){var e=this,r=e.constructor,n=e.c,o=(t=new r(t)).c,i=e.s==t.s?1:-1,a=r.DP;if(a!==~~a||a<0||a>v)throw Error(b);if(!o[0])throw Error(w);if(!n[0])return t.s=i,t.c=[t.e=0],t;var u,l,c,s,f,p=o.slice(),y=u=o.length,h=n.length,m=n.slice(0,u),d=m.length,g=t,S=g.c=[],j=0,N=a+(g.e=e.e-t.e)+1;for(g.s=i,i=N<0?0:N,p.unshift(0);d++<u;)m.push(0);do{for(c=0;c<10;c++){if(u!=(d=m.length))s=u>d?1:-1;else for(f=-1,s=0;++f<u;)if(o[f]!=m[f]){s=o[f]>m[f]?1:-1;break}if(!(s<0))break;for(l=d==u?o:p;d;){if(m[--d]<l[d]){for(f=d;f&&!m[--f];)m[f]=9;--m[f],m[d]+=10}m[d]-=l[d]}for(;!m[0];)m.shift()}S[j++]=s?c:++c,m[0]&&s?m[d]=n[y]||0:m=[n[y]]}while((y++<h||m[0]!==O)&&i--);return S[0]||1==j||(S.shift(),g.e--,N--),j>N&&P(g,N,r.RM,m[0]!==O),g},S.eq=function(t){return 0===this.cmp(t)},S.gt=function(t){return this.cmp(t)>0},S.gte=function(t){return this.cmp(t)>-1},S.lt=function(t){return this.cmp(t)<0},S.lte=function(t){return this.cmp(t)<1},S.minus=S.sub=function(t){var e,r,n,o,i=this,a=i.constructor,u=i.s,l=(t=new a(t)).s;if(u!=l)return t.s=-l,i.plus(t);var c=i.c.slice(),s=i.e,f=t.c,p=t.e;if(!c[0]||!f[0])return f[0]?t.s=-l:c[0]?t=new a(i):t.s=1,t;if(u=s-p){for((o=u<0)?(u=-u,n=c):(p=s,n=f),n.reverse(),l=u;l--;)n.push(0);n.reverse()}else for(r=((o=c.length<f.length)?c:f).length,u=l=0;l<r;l++)if(c[l]!=f[l]){o=c[l]<f[l];break}if(o&&(n=c,c=f,f=n,t.s=-t.s),(l=(r=f.length)-(e=c.length))>0)for(;l--;)c[e++]=0;for(l=e;r>u;){if(c[--r]<f[r]){for(e=r;e&&!c[--e];)c[e]=9;--c[e],c[r]+=10}c[r]-=f[r]}for(;0===c[--l];)c.pop();for(;0===c[0];)c.shift(),--p;return c[0]||(t.s=1,c=[p=0]),t.c=c,t.e=p,t},S.mod=function(t){var e,r=this,n=r.constructor,o=r.s,i=(t=new n(t)).s;if(!t.c[0])throw Error(w);return r.s=t.s=1,e=1==t.cmp(r),r.s=o,t.s=i,e?new n(r):(o=n.DP,i=n.RM,n.DP=n.RM=0,r=r.div(t),n.DP=o,n.RM=i,this.minus(r.times(t)))},S.neg=function(){var t=new this.constructor(this);return t.s=-t.s,t},S.plus=S.add=function(t){var e,r,n,o=this,i=o.constructor;if(t=new i(t),o.s!=t.s)return t.s=-t.s,o.minus(t);var a=o.e,u=o.c,l=t.e,c=t.c;if(!u[0]||!c[0])return c[0]||(u[0]?t=new i(o):t.s=o.s),t;if(u=u.slice(),e=a-l){for(e>0?(l=a,n=c):(e=-e,n=u),n.reverse();e--;)n.push(0);n.reverse()}for(u.length-c.length<0&&(n=c,c=u,u=n),e=c.length,r=0;e;u[e]%=10)r=(u[--e]=u[e]+c[e]+r)/10|0;for(r&&(u.unshift(r),++l),e=u.length;0===u[--e];)u.pop();return t.c=u,t.e=l,t},S.pow=function(t){var e=this,r=new e.constructor("1"),n=r,o=t<0;if(t!==~~t||t<-1e6||t>1e6)throw Error(d+"exponent");for(o&&(t=-t);1&t&&(n=n.times(e)),t>>=1;)e=e.times(e);return o?r.div(n):n},S.prec=function(t,e){if(t!==~~t||t<1||t>v)throw Error(d+"precision");return P(new this.constructor(this),t,e)},S.round=function(t,e){if(t===O)t=0;else if(t!==~~t||t<-v||t>v)throw Error(b);return P(new this.constructor(this),t+this.e+1,e)},S.sqrt=function(){var t,e,r,n=this,o=n.constructor,i=n.s,a=n.e,u=new o("0.5");if(!n.c[0])return new o(n);if(i<0)throw Error(m+"No square root");0===(i=Math.sqrt(n+""))||i===1/0?((e=n.c.join("")).length+a&1||(e+="0"),a=((a+1)/2|0)-(a<0||1&a),t=new o(((i=Math.sqrt(e))==1/0?"5e":(i=i.toExponential()).slice(0,i.indexOf("e")+1))+a)):t=new o(i+""),a=t.e+(o.DP+=4);do{r=t,t=u.times(r.plus(n.div(r)))}while(r.c.slice(0,a).join("")!==t.c.slice(0,a).join(""));return P(t,(o.DP-=4)+t.e+1,o.RM)},S.times=S.mul=function(t){var e,r=this,n=r.constructor,o=r.c,i=(t=new n(t)).c,a=o.length,u=i.length,l=r.e,c=t.e;if(t.s=r.s==t.s?1:-1,!o[0]||!i[0])return t.c=[t.e=0],t;for(t.e=l+c,a<u&&(e=o,o=i,i=e,c=a,a=u,u=c),e=new Array(c=a+u);c--;)e[c]=0;for(l=u;l--;){for(u=0,c=a+l;c>l;)u=e[c]+i[l]*o[c-l-1]+u,e[c--]=u%10,u=u/10|0;e[c]=u}for(u?++t.e:e.shift(),l=e.length;!e[--l];)e.pop();return t.c=e,t},S.toExponential=function(t,e){var r=this,n=r.c[0];if(t!==O){if(t!==~~t||t<0||t>v)throw Error(b);for(r=P(new r.constructor(r),++t,e);r.c.length<t;)r.c.push(0)}return N(r,!0,!!n)},S.toFixed=function(t,e){var r=this,n=r.c[0];if(t!==O){if(t!==~~t||t<0||t>v)throw Error(b);for(t=t+(r=P(new r.constructor(r),t+r.e+1,e)).e+1;r.c.length<t;)r.c.push(0)}return N(r,!1,!!n)},S[Symbol.for("nodejs.util.inspect.custom")]=S.toJSON=S.toString=function(){var t=this,e=t.constructor;return N(t,t.e<=e.NE||t.e>=e.PE,!!t.c[0])},S.toNumber=function(){var t=Number(N(this,!0,!0));if(!0===this.constructor.strict&&!this.eq(t.toString()))throw Error(m+"Imprecise conversion");return t},S.toPrecision=function(t,e){var r=this,n=r.constructor,o=r.c[0];if(t!==O){if(t!==~~t||t<1||t>v)throw Error(d+"precision");for(r=P(new n(r),t,e);r.c.length<t;)r.c.push(0)}return N(r,t<=r.e||r.e<=n.NE||r.e>=n.PE,!!o)},S.valueOf=function(){var t=this,e=t.constructor;if(!0===e.strict)throw Error(m+"valueOf disallowed");return N(t,t.e<=e.NE||t.e>=e.PE,!0)},function t(){function e(r){var n=this;if(!(n instanceof e))return r===O?t():new e(r);if(r instanceof e)n.s=r.s,n.e=r.e,n.c=r.c.slice();else{if("string"!=typeof r){if(!0===e.strict&&"bigint"!=typeof r)throw TypeError(d+"value");r=0===r&&1/r<0?"-0":String(r)}!function(t,e){var r,n,o;if(!j.test(e))throw Error(d+"number");for(t.s="-"==e.charAt(0)?(e=e.slice(1),-1):1,(r=e.indexOf("."))>-1&&(e=e.replace(".","")),(n=e.search(/e/i))>0?(r<0&&(r=n),r+=+e.slice(n+1),e=e.substring(0,n)):r<0&&(r=e.length),o=e.length,n=0;n<o&&"0"==e.charAt(n);)++n;if(n==o)t.c=[t.e=0];else{for(;o>0&&"0"==e.charAt(--o););for(t.e=r-n-1,t.c=[],r=0;n<=o;)t.c[r++]=+e.charAt(n++)}}(n,r)}n.constructor=e}return e.prototype=S,e.DP=20,e.RM=1,e.NE=-7,e.PE=21,e.strict=!1,e.roundDown=0,e.roundHalfUp=1,e.roundHalfEven=2,e.roundUp=3,e}();var x=function(t){function e(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Not enough data";return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),t=function(t,e,r){return e=E(e),function(t,e){if(e&&("object"==_(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,k()?Reflect.construct(e,r||[],E(t).constructor):e.apply(t,r))}(this,e,[r]),Object.setPrototypeOf(t,(this instanceof e?this.constructor:void 0).prototype),t.name="NotEnoughDataError",t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&T(t,e)}(e,t),r=e,Object.defineProperty(r,"prototype",{writable:!1}),r;var r}(A(Error));function M(t){return M="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},M(t)}function I(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,R(n.key),n)}}function D(t,e,r){return(e=R(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function R(t){var e=function(t,e){if("object"!=M(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=M(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==M(e)?e:e+""}var C=function(){return t=function t(){(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),D(this,"previousHighest",void 0),D(this,"highest",void 0),D(this,"previousLowest",void 0),D(this,"lowest",void 0),D(this,"previousResult",void 0),D(this,"result",void 0)},(e=[{key:"isStable",get:function(){return void 0!==this.result}},{key:"getResult",value:function(){if(void 0===this.result)throw new x;return this.result}},{key:"setResult",value:function(t,e){return e&&(this.highest=this.previousHighest,this.lowest=this.previousLowest,this.result=this.previousResult),void 0===this.highest?this.highest=t:t>this.highest?(this.previousHighest=this.highest,this.highest=t):this.previousHighest=this.highest,void 0===this.lowest?this.lowest=t:t<this.lowest?(this.previousLowest=this.lowest,this.lowest=t):this.previousLowest=this.lowest,this.previousResult=this.result,this.result=t}},{key:"replace",value:function(t){return this.update(t,!0)}}])&&I(t.prototype,e),r&&I(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function F(t){return F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},F(t)}function B(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,q(n.key),n)}}function L(t,e,r){return e=V(e),function(t,e){if(e&&("object"==F(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,U()?Reflect.construct(e,r||[],V(t).constructor):e.apply(t,r))}function U(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(U=function(){return!!t})()}function V(t){return V=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},V(t)}function H(t,e){return H=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},H(t,e)}function q(t){var e=function(t,e){if("object"!=F(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=F(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==F(e)?e:e+""}var $=function(t){function e(t){var r,n,o,i;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),n=r=L(this,e),i=void 0,(o=q(o="interval"))in n?Object.defineProperty(n,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[o]=i,r.interval=t,r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&H(t,e)}(e,t),r=e,(n=[{key:"updates",value:function(t){var e=this;return t.forEach((function(t){return e.update(t)})),this.result}},{key:"replace",value:function(t){return this.update(t,!0)}}])&&B(r.prototype,n),o&&B(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(C);function K(t){return K="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},K(t)}function z(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Z(n.key),n)}}function G(t,e,r){return e=J(e),function(t,e){if(e&&("object"==K(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,Y()?Reflect.construct(e,r||[],J(t).constructor):e.apply(t,r))}function Y(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Y=function(){return!!t})()}function J(t){return J=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},J(t)}function W(t,e){return W=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},W(t,e)}function Z(t){var e=function(t,e){if("object"!=K(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=K(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==K(e)?e:e+""}var Q=function(t){function e(){var t,r,n,o;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);for(var i=arguments.length,a=new Array(i),u=0;u<i;u++)a[u]=arguments[u];return r=t=G(this,e,[].concat(a)),o=[],(n=Z(n="prices"))in r?Object.defineProperty(r,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[n]=o,t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&W(t,e)}(e,t),r=e,n=[{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.prices.length&&e?this.prices[this.prices.length-1]=t:this.prices.push(t),this.prices.length>this.interval&&this.prices.shift(),this.prices.length===this.interval){var r=this.prices.reduce((function(t,e){return t+e}),0);return this.setResult(r/this.prices.length,e)}}}],n&&z(r.prototype,n),o&&z(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}($);function X(t){return X="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},X(t)}function tt(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,at(n.key),n)}}function et(t,e,r){return e=nt(e),function(t,e){if(e&&("object"==X(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,rt()?Reflect.construct(e,r||[],nt(t).constructor):e.apply(t,r))}function rt(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(rt=function(){return!!t})()}function nt(t){return nt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},nt(t)}function ot(t,e){return ot=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},ot(t,e)}function it(t,e,r){return(e=at(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function at(t){var e=function(t,e){if("object"!=X(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=X(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==X(e)?e:e+""}var ut=function(t){function e(t){var r;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),it(r=et(this,e),"interval",void 0),it(r,"indicator",void 0),it(r,"smoothingFactor",void 0),r.interval=t,r.indicator=new Q(t),r.smoothingFactor=1/r.interval,r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&ot(t,e)}(e,t),r=e,n=[{key:"updates",value:function(t){var e=this;return t.forEach((function(t){return e.update(t)})),this.result}},{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.indicator.update(t);if(e&&void 0!==this.previousResult){var n=(t-this.previousResult)*this.smoothingFactor;return this.setResult(n+this.previousResult,e)}if(!e&&void 0!==this.result){var o=(t-this.result)*this.smoothingFactor;return this.setResult(o+this.result,e)}if(void 0===this.result&&void 0!==r)return this.setResult(r,e)}}],n&&tt(r.prototype,n),o&&tt(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(C);function lt(t){return t.length?t.reduce((function(t,e){return t+e}),0)/t.length:0}function ct(t){return ct="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ct(t)}function st(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,mt(n.key),n)}}function ft(t,e,r){return e=yt(e),function(t,e){if(e&&("object"==ct(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,pt()?Reflect.construct(e,r||[],yt(t).constructor):e.apply(t,r))}function pt(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(pt=function(){return!!t})()}function yt(t){return yt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},yt(t)}function ht(t,e){return ht=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},ht(t,e)}function vt(t,e,r){return(e=mt(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function mt(t){var e=function(t,e){if("object"!=ct(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=ct(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ct(e)?e:e+""}var dt=function(t){function e(){var t;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return vt(t=ft(this,e,[].concat(n)),"previousCandle",void 0),vt(t,"twoPreviousCandle",void 0),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&ht(t,e)}(e,t),r=e,n=[{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=t.high,n=t.low,o=r-n;if(this.previousCandle&&e&&(this.previousCandle=this.twoPreviousCandle),this.previousCandle){var i=Math.abs(r-this.previousCandle.close),a=Math.abs(n-this.previousCandle.close);return this.twoPreviousCandle=this.previousCandle,this.previousCandle=t,this.setResult(Math.max(o,i,a),e)}return this.twoPreviousCandle=this.previousCandle,this.previousCandle=t,this.setResult(o,e)}}],n&&st(r.prototype,n),o&&st(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(C);function bt(t){return bt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},bt(t)}function gt(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Nt(n.key),n)}}function wt(t,e,r){return e=Ot(e),function(t,e){if(e&&("object"==bt(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,St()?Reflect.construct(e,r||[],Ot(t).constructor):e.apply(t,r))}function St(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(St=function(){return!!t})()}function Ot(t){return Ot=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Ot(t)}function jt(t,e){return jt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},jt(t,e)}function Pt(t,e,r){return(e=Nt(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Nt(t){var e=function(t,e){if("object"!=bt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=bt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==bt(e)?e:e+""}var _t=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ut;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),Pt(r=wt(this,e),"interval",void 0),Pt(r,"tr",void 0),Pt(r,"smoothing",void 0),r.interval=t,r.tr=new dt,r.smoothing=new n(t),r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&jt(t,e)}(e,t),r=e,n=[{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.tr.update(t,e);if(this.smoothing.update(r,e),this.smoothing.isStable)return this.setResult(this.smoothing.getResult(),e)}}],n&&gt(r.prototype,n),o&&gt(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(C);function At(t){return At="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},At(t)}function kt(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Et(n.key),n)}}function Tt(t,e,r){return(e=Et(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Et(t){var e=function(t,e){if("object"!=At(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=At(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==At(e)?e:e+""}var xt=function(){return t=function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),Tt(this,"interval",void 0),Tt(this,"deviationMultiplier",void 0),Tt(this,"prices",[]),Tt(this,"result",void 0),this.interval=e,this.deviationMultiplier=r},(e=[{key:"update",value:function(t){if(this.prices.push(t),this.prices.length>this.interval){this.prices.shift();var e=lt(this.prices),r=function(t,e){var r=e||lt(t),n=lt(t.map((function(t){return t-r})).map((function(t){return t*t})));return Math.sqrt(n)}(this.prices,e);return this.result={lower:e-r*this.deviationMultiplier,middle:e,upper:e+r*this.deviationMultiplier}}}},{key:"getResult",value:function(){if(void 0===this.result)throw new x;return this.result}},{key:"isStable",get:function(){return void 0!==this.result}}])&&kt(t.prototype,e),r&&kt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Mt(t){return Mt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Mt(t)}function It(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Lt(n.key),n)}}function Dt(t,e,r){return e=Ct(e),function(t,e){if(e&&("object"==Mt(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,Rt()?Reflect.construct(e,r||[],Ct(t).constructor):e.apply(t,r))}function Rt(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Rt=function(){return!!t})()}function Ct(t){return Ct=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Ct(t)}function Ft(t,e){return Ft=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Ft(t,e)}function Bt(t,e,r){return(e=Lt(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Lt(t){var e=function(t,e){if("object"!=Mt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Mt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Mt(e)?e:e+""}var Ut=function(t){function e(t){var r;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),Bt(r=Dt(this,e,[t]),"interval",void 0),Bt(r,"pricesCounter",0),Bt(r,"weightFactor",void 0),r.interval=t,r.weightFactor=2/(r.interval+1),r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Ft(t,e)}(e,t),r=e,n=[{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e?e&&0===this.pricesCounter&&this.pricesCounter++:this.pricesCounter++,e&&void 0!==this.previousResult?this.setResult(t*this.weightFactor+this.previousResult*(1-this.weightFactor),e):this.setResult(t*this.weightFactor+(void 0!==this.result?this.result:t)*(1-this.weightFactor),e)}},{key:"getResult",value:function(){if(this.pricesCounter<this.interval)throw new x;return this.result}},{key:"isStable",get:function(){try{return this.getResult(),!0}catch(t){return!1}}}],n&&It(r.prototype,n),o&&It(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}($);function Vt(t){return Vt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Vt(t)}function Ht(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,$t(n.key),n)}}function qt(t,e,r){return(e=$t(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function $t(t){var e=function(t,e){if("object"!=Vt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Vt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Vt(e)?e:e+""}var Kt=function(){return t=function t(e,r,n){(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),qt(this,"short",void 0),qt(this,"long",void 0),qt(this,"signal",void 0),qt(this,"prices",[]),qt(this,"result",void 0),this.short=e,this.long=r,this.signal=n},e=[{key:"getResult",value:function(){if(void 0===this.result)throw new x;return this.result}},{key:"isStable",get:function(){return void 0!==this.result}},{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.prices.length&&e?this.prices[this.prices.length-1]=t:this.prices.push(t);var r=this.short.update(t,e),n=this.long.update(t,e);if(this.prices.length>this.long.interval&&this.prices.shift(),this.prices.length===this.long.interval){var o=r-n,i=this.signal.update(o,e);return this.result={histogram:o-i,macd:o,signal:i}}}}],e&&Ht(t.prototype,e),r&&Ht(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function zt(t){return zt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zt(t)}function Gt(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Xt(n.key),n)}}function Yt(t,e,r){return e=Wt(e),function(t,e){if(e&&("object"==zt(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,Jt()?Reflect.construct(e,r||[],Wt(t).constructor):e.apply(t,r))}function Jt(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Jt=function(){return!!t})()}function Wt(t){return Wt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Wt(t)}function Zt(t,e){return Zt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Zt(t,e)}function Qt(t,e,r){return(e=Xt(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Xt(t){var e=function(t,e){if("object"!=zt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=zt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==zt(e)?e:e+""}var te=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ut;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),Qt(r=Yt(this,e),"interval",void 0),Qt(r,"previousPrices",[]),Qt(r,"avgGain",void 0),Qt(r,"avgLoss",void 0),Qt(r,"maxValue",100),r.interval=t,r.avgGain=new n(r.interval),r.avgLoss=new n(r.interval),r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Zt(t,e)}(e,t),r=e,n=[{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.previousPrices.length&&e?this.previousPrices[this.previousPrices.length-1]=t:this.previousPrices.push(t),!(this.previousPrices.length<2)){var r=t,n=this.previousPrices[this.previousPrices.length-2];if(r>n?(this.avgLoss.update(0,e),this.avgGain.update(t-n,e)):(this.avgLoss.update(n-r,e),this.avgGain.update(0,e)),this.avgGain.isStable){var o=this.avgLoss.getResult();if(0===o)return this.setResult(100,e);var i=this.avgGain.getResult()/o;return this.setResult(this.maxValue-this.maxValue/(i+1),e)}}}}],n&&Gt(r.prototype,n),o&&Gt(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(C);function ee(t){return ee="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ee(t)}function re(t){return function(t){if(Array.isArray(t))return ne(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return ne(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ne(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ne(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function oe(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,ae(n.key),n)}}function ie(t,e,r){return(e=ae(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ae(t){var e=function(t,e){if("object"!=ee(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=ee(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ee(e)?e:e+""}var ue=function(){return t=function t(e,r,n){(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),ie(this,"n",void 0),ie(this,"m",void 0),ie(this,"p",void 0),ie(this,"candles",[]),ie(this,"result",void 0),ie(this,"periodM",void 0),ie(this,"periodP",void 0),this.n=e,this.m=r,this.p=n,this.periodM=new Q(r),this.periodP=new Q(n)},(e=[{key:"getResult",value:function(){if(void 0===this.result)throw new x;return this.result}},{key:"isStable",get:function(){return void 0!==this.result}},{key:"update",value:function(t){if(this.candles.push(t),this.candles.length>this.n&&this.candles.shift(),this.candles.length===this.n){var e=Math.max.apply(Math,re(this.candles.map((function(t){return t.high})))),r=Math.min.apply(Math,re(this.candles.map((function(t){return t.low})))),n=e-r,o=100*(t.close-r);o/=0===n?1:n;var i=this.periodM.update(o),a=i&&this.periodP.update(i);if(void 0!==i&&void 0!==a)return this.result={stochD:a,stochK:i}}}}])&&oe(t.prototype,e),r&&oe(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}(),le=function(t,e){var r,n=Math.log(t/e);if(null==(r=n)||!Number.isFinite(r))throw new Error("[BUG] Invalid params passed to mathLog a=".concat(t," b=").concat(e,"."));return n};function ce(t){return ce="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ce(t)}function se(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=ce(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=ce(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ce(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function fe(t){return fe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},fe(t)}function pe(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=fe(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=fe(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==fe(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var ye={ema:Ut,sma:Q},he=function(t,e,r,n,o){var i=o.target,a=o.lag,u=t.verticalOhlcv,l=t.instances,c=t.priceBased,s="close"!==i?"_".concat(i):"",f="".concat(r,"_").concat(n).concat(s);if(0===e){var p=t.len;if(!u.hasOwnProperty(i))throw new Error("Target property ".concat(i," not found in verticalOhlcv for ").concat(r,"."));l[f]=new ye[r](n),u[f]=new Float64Array(p).fill(NaN),c.has(i)&&c.add(f),a>0&&t.lag([f],a)}var y=u[i][e],h=l[f];h.update(y);var v=NaN;try{v=h.getResult()}catch(t){}return t.pushToMain({index:e,key:f,value:v}),!0};function ve(t){return ve="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ve(t)}function me(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function de(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=ve(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=ve(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ve(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function be(t,e){if(t){if("string"==typeof t)return ge(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ge(t,e):void 0}}function ge(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function we(t){return function(t){if(Array.isArray(t))return Se(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return Se(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Se(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Se(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function Oe(t){return Oe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Oe(t)}function je(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=Oe(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Oe(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Oe(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Pe(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var Ne="close";function _e(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function Ae(t){return Ae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ae(t)}function ke(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Te(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=Ae(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Ae(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Ae(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ee(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return xe(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?xe(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function xe(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function Me(t){return Me="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Me(t)}function Ie(t){return Ie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ie(t)}function De(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(t,e)||function(t,e){if(t){if("string"==typeof t)return Re(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Re(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Re(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var Ce=function(t,e){if("string"!=typeof t)throw new Error("addPrecisionExact expects a string when precision=true");var r="-"===t.charAt(0),n=De((r?t.slice(1):t).split("."),2),o=n[0],i=n[1],a=void 0===i?"":i,u=String(e),l=1===e?0:u.length-1,c=a.padEnd(l,"0").slice(0,l),s=parseInt(o+c||"0",10);return r&&(s=-s),s};function Fe(t){return Fe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Fe(t)}var Be={number:function(t){return t},numberCleanString:function(t){return Number(t)},precisionNumberCleanString:function(t,e){return Ce(t,e)}},Le=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n="number"==typeof t&&!Number.isNaN(t),o="string"==typeof t&&/^-?\d+(\.\d+)?$/.test(t);if(!0===r){if(o)return"precisionNumberCleanString";if(e)throw new Error("Invalid number forma");return Fe(t)}if(n)return"number";if(o)return"numberCleanString";if(e)throw new TypeError("Invalid input: expected a number or numeric string");return Fe(t)};function Ue(t){return Ue="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ue(t)}var Ve={toString:function(t){return t.toString()},string:function(t){return t.toString()},toISOString:function(t){return t.toISOString()},iso:function(t){return t.toISOString()},toUTCString:function(t){return t.toUTCString()},milliseconds:function(t){return t.getTime()},seconds:function(t){return t.getTime()/1e3},object:function(t){return t}},He={dateObject:function(t){return t},dateMilliseconds:function(t){return new Date(t)},dateSeconds:function(t){return new Date(1e3*t)},dateIncompleteDayString:function(t){return new Date("".concat(t," 00:00:00"))},dateCompleteDateString:function(t){return new Date(t)}},qe=function(t){var e=["Date -> object","Milliseconds Timestamp -> integer","Seconds Timestamp -> integer","UTC Time Format (ISO 8601) -> string","Including a Timezone Offset (ISO 8601) -> string","Local Time Format (ISO 8601) -> string","YYYY/MM/DD or YYYY-MM-DD -> string"],r=function(){throw new Error('Invalid "'.concat(Ue(t),'" date value passed in selectDateFormatter. Supported formats: \n-').concat(e.join("\n- ")))};if("object"===Ue(t)){if(t instanceof Date&&!isNaN(t.valueOf()))return"dateObject";r()}else{if("number"==typeof t)return Math.abs(t)<1e11?"dateSeconds":"dateMillseconds";if("string"==typeof t){if(/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/i.test(t)||/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?([+-]\d{2}:\d{2})$/.test(t)||/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?$/.test(t)&&t.length>10||/^\d{4}\/\d{2}\/\d{2}$/.test(t))return"dateCompleteDateString";if(/^\d{4}-\d{2}-\d{2}$/.test(t))return"dateIncompleteDayString";r()}else r()}};function $e(t){return $e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$e(t)}function Ke(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(t,e)||ze(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ze(t,e){if(t){if("string"==typeof t)return Ge(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ge(t,e):void 0}}function Ge(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var Ye=function(t,e,r){var n,o={Array,Float64Array,Float32Array,Int32Array,Uint8Array,Int8Array,Int16Array}[t];if(!o||"function"!=typeof o.from)throw new Error("Unsupported array type: ".concat(t));return n=void 0!==r?r:"Array"===t?null:NaN,o.from({length:e},(function(){return n}))},Je=function(t,e){if(!e||"object"!==$e(e))throw new TypeError('Invalid array type: "'.concat(t,'"'));return e.constructor.name};function We(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return Ze(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ze(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function Ze(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function Qe(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var Xe=function(t,e){var r=new Uint8Array(e);return r[t]=1,r},tr=function(t,e,r,n){var o,i,a=(i=2,function(t){if(Array.isArray(t))return t}(o=n)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(o,i)||function(t,e){if(t){if("string"==typeof t)return Qe(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Qe(t,e):void 0}}(o,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=a[0],l=a[1];return(Math.min(Math.max(t,e),r)-e)/(r-e)*(l-u)+u},er=function(t,e,r){return 0===r?0:(t-e)/r};function rr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function nr(t){return nr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nr(t)}function or(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,ir(n.key),n)}}function ir(t){var e=function(t,e){if("object"!=nr(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=nr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==nr(e)?e:e+""}var ar=function(t,e){return t>e},ur=function(t,e){return t<e},lr=function(){return t=function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),Object.assign(this,{interval:0,prevState:.5,prevFast:NaN,prevSlow:NaN,prevHigh:NaN,prevLow:NaN,areHighAndLowUndefined:!1,crossIndexes:{up:[],down:[]}})},(e=[{key:"update",value:function(t,e){var r=e.fast,n=e.high,o=e.slow,i=e.low,a=this.prevState;this.areHighAndLowUndefined||void 0!==n&&void 0!==i||(this.areHighAndLowUndefined=!0),Number.isNaN(r)||Number.isNaN(o)||function(t,e){return t===e}(r,o)?a=.5:ar(r,o)?a=this.areHighAndLowUndefined?1:[i,o,this.prevLow,this.prevSlow].every((function(t){return!Number.isNaN(t)}))&&ur(i,o)&&ar(this.prevLow,this.prevSlow)?0:1:ur(r,o)&&(a=this.areHighAndLowUndefined?0:[n,o,this.prevHigh,this.prevSlow].every((function(t){return!Number.isNaN(t)}))&&ar(n,o)&&ur(this.prevHigh,this.prevSlow)?1:0),.5===a?this.interval=0:1===a?this.prevState<=.5?this.interval=1:this.interval++:0===a&&(this.prevState>=.5?this.interval=-1:this.interval--),1===this.interval&&this.crossIndexes.up.push(t),-1===this.interval&&this.crossIndexes.down.push(t),Object.assign(this,{prevState:a,prevFast:r,prevSlow:o,prevHigh:n,prevLow:i})}},{key:"getResult",value:function(){return this.interval}}])&&or(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}();function cr(t){return cr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},cr(t)}function sr(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(t,e)||hr(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function fr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function pr(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?fr(Object(r),!0).forEach((function(e){yr(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):fr(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function yr(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=cr(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=cr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==cr(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function hr(t,e){if(t){if("string"==typeof t)return vr(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?vr(t,e):void 0}}function vr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function mr(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(t,e)||br(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function dr(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=br(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function br(t,e){if(t){if("string"==typeof t)return gr(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?gr(t,e):void 0}}function gr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var wr=function(t){return null==t||!Number.isFinite(t)};function Sr(t,e){if(t){if("string"==typeof t)return Or(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Or(t,e):void 0}}function Or(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var jr=function(t){var e=t.main,r=t.index,n=e.verticalOhlcv,o=n.close[r],i=n.open[r-1];return{change:(o-i)/i*100}};function Pr(t){return Pr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Pr(t)}function Nr(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=_r(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function _r(t,e){if(t){if("string"==typeof t)return Ar(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ar(t,e):void 0}}function Ar(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function kr(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=Pr(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Pr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Pr(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Tr(t){return function(t){if(Array.isArray(t))return Ir(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||Mr(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Er(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Mr(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function xr(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(t,e)||Mr(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Mr(t,e){if(t){if("string"==typeof t)return Ir(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ir(t,e):void 0}}function Ir(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var Dr={priceFeatures:function(t,e,r){var n=r.lag,o=r.colKeys,i=r.retLogs,a=t.verticalOhlcv,u=t.priceBased,l=t.scaledGroups,c=function(t,e){return i?Math.log(t/e):(t-e)/e},s=i?"ret_log_":"ret_";if(0===e){var f,p=t.len,y=kr(kr(kr(kr(kr(kr(kr({},"".concat(s,"change"),new Float64Array(p).fill(NaN)),"".concat(s,"mid_price_change"),new Float64Array(p).fill(NaN)),"".concat(s,"upper_wick"),new Float64Array(p).fill(NaN)),"".concat(s,"lower_wick"),new Float64Array(p).fill(NaN)),"".concat(s,"gap"),new Float64Array(p).fill(NaN)),"".concat(s,"body"),new Float64Array(p).fill(NaN)),"".concat(s,"range"),new Float64Array(p).fill(NaN)),h=Nr(o);try{for(h.s();!(f=h.n()).done;){var v=f.value;if(!a.hasOwnProperty(v))throw new Error('Target property in "options.colKey" array "'.concat(v,'" not found in verticalOhlcv for "priceFeatures".'));if(!u.has(v))throw new Error('Target property in "options.colKey" array "'.concat(v,'" not found in priceBased for "priceFeatures".'));y["".concat(s).concat(v)]=new Float64Array(p).fill(NaN)}}catch(t){h.e(t)}finally{h.f()}Object.assign(a,y),l.priceFeatures=Object.keys(y),n&&t.lag(Object.keys(y),n)}var m,d,b=a.close[e-1],g=a.open[e-1];if(void 0!==b){var w,S,O=a.open[e],j=a.high[e],P=a.low[e],N=a.close[e],_=(b+g)/2,A=(O+N)/2,k=Math.max(O,N),T=Math.min(O,N),E=kr(kr(kr(kr(kr(kr(kr({},"".concat(s,"change"),c(N,b)),"".concat(s,"mid_price_change"),c(A,_)),"".concat(s,"upper_wick"),c(j,k)),"".concat(s,"lower_wick"),c(T,P)),"".concat(s,"gap"),c(O,b)),"".concat(s,"body"),c(N,O)),"".concat(s,"range"),c(j,P)),x=!1,M=Nr(o);try{for(M.s();!(w=M.n()).done;){var I=w.value,D=a[I][e];if(null==(S=D)||!Number.isFinite(S)){x=!0;break}var R=c(N,D);E["".concat(s).concat(I)]=R}}catch(t){M.e(t)}finally{M.f()}if(!x)for(var C=0,F=Object.entries(E);C<F.length;C++){var B=(m=F[C],d=2,function(t){if(Array.isArray(t))return t}(m)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(m,d)||_r(m,d)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),L=B[0],U=B[1];t.pushToMain({index:e,key:L,value:U})}}},dateTime:function(t,e,r){var n,o=r.lag,i=r.oneHot,a=r.precompute,u=t.instances,l=t.verticalOhlcv,c=a.prefix;if(0===e){var s=t.len;if(!t.dateType)throw Error('dateTime method found and invalid "date" in input ohlcv');Object.assign(u,{dateTime:{colKeys:[].concat((n=a.colKeys,function(t){if(Array.isArray(t))return vr(t)}(n)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(n)||hr(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),["".concat(c,"year")]),colKeySizes:pr({},a.colKeySizes)}});var f,p=u.dateTime.colKeys,y=i?Array:Int16Array,h=i?null:NaN,v=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=hr(t))){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(p);try{for(v.s();!(f=v.n()).done;)l[f.value]=new y(s).fill(h)}catch(t){v.e(t)}finally{v.f()}o>0&&t.lag(p,o)}for(var m=u.dateTime.colKeySizes,d=function(t,e,r){var n=t.getFullYear(),o=t.getMonth(),i=t.getHours(),a=t.getMinutes(),u=t.getDay(),l=t.getDate()-1;return e?{one_hot_month:Xe(o,r.one_hot_month),one_hot_hour:Xe(i,r.one_hot_hour),one_hot_minute:Xe(a,r.one_hot_minute),one_hot_day_of_the_week:Xe(u,r.one_hot_day_of_the_week),one_hot_day_of_the_month:Xe(l,r.one_hot_day_of_the_month)}:{year:n,month:o+1,hour:i,minute:a,day_of_the_week:(u+6)%7+1,day_of_the_month:l+1}}(l.date[e],i,m),b=0,g=Object.entries(d);b<g.length;b++){var w=sr(g[b],2),S=w[0],O=w[1];t.pushToMain({index:e,key:S,value:O})}},heikenAshi:function(t,e,r,n){var o,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},a=i.lag,u=void 0===a?0:a,l=i.bothNull,c=void 0!==l&&l,s=t.verticalOhlcv,f=t.instances,p=t.len,y=t.priceBased,h="".concat(r,"_").concat(n),v=["open","high","low","close"],m=function(t){return c?"heiken_ashi_".concat(t):"heiken_ashi_".concat(t,"_").concat(h)},d=c?"heiken_ashi_cross":"heiken_ashi_cross_".concat(h),b=c?"heiken_ashi":"heiken_ashi_".concat(h);if(0===e){f[b]={emaPre:c?null:Object.fromEntries(v.map((function(t){return[t,new Ut(r)]}))),emaPost:c?null:Object.fromEntries(v.map((function(t){return[t,new Ut(n)]}))),prevHaOpen:NaN,prevHaClose:NaN,isTrendUp:!1};var g,w=v.map(m),S=Object.fromEntries([].concat((o=w,function(t){if(Array.isArray(t))return ge(t)}(o)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(o)||be(o)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),[d]).map((function(t){return[t,new Float64Array(p).fill(NaN)]}))),O=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=be(t))){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(w);try{for(O.s();!(g=O.n()).done;){var j=g.value;y.add(j)}}catch(t){O.e(t)}finally{O.f()}Object.assign(s,function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?me(Object(r),!0).forEach((function(e){de(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):me(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({},S)),u>0&&t.lag(w,u)}var P,N,_,A,k=s.open[e],T=s.high[e],E=s.low[e],x=s.close[e],M=f[b];if(c)P=k,N=T,_=E,A=x;else{M.emaPre.open.update(k),M.emaPre.high.update(T),M.emaPre.low.update(E),M.emaPre.close.update(x);try{P=M.emaPre.open.getResult(),N=M.emaPre.high.getResult(),_=M.emaPre.low.getResult(),A=M.emaPre.close.getResult()}catch(t){return!0}}var I,D,R,C,F=(P+N+_+A)/4,B=Number.isNaN(M.prevHaOpen)||Number.isNaN(M.prevHaClose)?(P+A)/2:(M.prevHaOpen+M.prevHaClose)/2,L=Math.max(N,B,F),U=Math.min(_,B,F);if(M.prevHaOpen=B,M.prevHaClose=F,c)I=B,D=L,R=U,C=F;else{M.emaPost.open.update(B),M.emaPost.high.update(L),M.emaPost.low.update(U),M.emaPost.close.update(F);try{I=M.emaPost.open.getResult(),D=M.emaPost.high.getResult(),R=M.emaPost.low.getResult(),C=M.emaPost.close.getResult()}catch(t){return!0}}var V=e>0?s[d][e-1]:0,H=e>0?s[m("open")][e-1]:NaN,q=e>0?s[m("close")][e-1]:NaN,$=!Number.isNaN(q)&&q<=H&&C>I,K=!Number.isNaN(q)&&q>=H&&C<I;$&&(M.isTrendUp=!0),K&&(M.isTrendUp=!1);var z=0;return e>0&&(z=M.isTrendUp?V>0?V+1:1:V<0?V-1:-1),t.pushToMain({index:e,key:m("open"),value:I}),t.pushToMain({index:e,key:m("high"),value:D}),t.pushToMain({index:e,key:m("low"),value:R}),t.pushToMain({index:e,key:m("close"),value:C}),t.pushToMain({index:e,key:d,value:z}),!0},rsi:function(t,e,r,n){var o=n.target,i=n.lag,a=n.retLogs,u=t.verticalOhlcv,l=t.instances,c="close"===o?"":"_".concat(o),s=a?"ret_log_rsi_".concat(r).concat(c):"rsi_".concat(r).concat(c),f=a?"ret_log_rsi_sma_".concat(r).concat(c):"rsi_sma_".concat(r).concat(c);if(0===e){var p=t.len;if(!u.hasOwnProperty(o))throw new Error("Target property ".concat(o," not found in verticalOhlcv for rsi."));Object.assign(l,se(se({},s,new te(r)),f,new Q(r))),Object.assign(u,se(se({},s,new Float64Array(p).fill(NaN)),f,new Float64Array(p).fill(NaN)));var y=[s,f];i>0&&t.lag(y,i)}var h=u[o][e],v=NaN,m=NaN;l[s].update(h);try{v=l[s].getResult()}catch(t){v=NaN}var d=Number.isNaN(v)?NaN:a?le(v,50):v;t.pushToMain({index:e,key:s,value:d}),Number.isNaN(v)||l[f].update(v);try{m=l[f].getResult()}catch(t){m=NaN}var b=Number.isNaN(m)?NaN:a?le(m,50):m;t.pushToMain({index:e,key:f,value:b})},stochastic:function(t,e,r,n,o,i){var a=i.lag,u=i.retLogs,l=t.verticalOhlcv,c=t.instances,s=t.useFullNames,f=14!==r||3!==n||3!==o||s?"_".concat(r,"_").concat(n,"_").concat(o):"",p=u?"ret_log_stochastic_d".concat(f):"stochastic_d".concat(f),y=u?"ret_log_stochastic_k".concat(f):"stochastic_k".concat(f),h=f;if(0===e){var v=t.len;Object.assign(c,pe({},h,new ue(r,n,o))),Object.assign(l,pe(pe({},p,new Float64Array(v).fill(NaN)),y,new Float64Array(v).fill(NaN)));var m=[p,y];a>0&&t.lag(m,a)}var d=l.close[e],b=l.low[e],g=l.high[e],w=null;c[h].update({close:d,low:b,high:g});try{w=c[h].getResult()}catch(t){w=null}var S=w?u?le(w.stochK,50):w.stochK:NaN,O=w?u?le(w.stochD,50):w.stochD:NaN;t.pushToMain({index:e,key:y,value:S}),t.pushToMain({index:e,key:p,value:O})},atr:function(t,e,r,n){var o=n.lag,i=n.percentage,a=n.upper,u=n.lower,l=t.verticalOhlcv,c=t.instances,s=t.priceBased,f="atr_".concat(r);if(0===e){var p=t.instances,y=t.verticalOhlcv,h=t.len;p[f]=new _t(r,ut);var v=[f];i&&v.push("".concat(f,"_percentage")),null!==a&&v.push("".concat(f,"_upper")),null!==u&&v.push("".concat(f,"_lower"));for(var m=0,d=v;m<d.length;m++){var b=d[m];y[b]=new Float64Array(h).fill(NaN),s.add(b)}o>0&&t.lag(v,o)}var g={high:l.high[e],low:l.low[e],close:l.close[e]},w=c[f];w.update(g);var S=NaN;try{S=w.getResult()}catch(t){}if(i){var O=Number.isNaN(S)?NaN:S/g.close;t.pushToMain({index:e,key:"".concat(f,"_percentage"),value:O})}if(null!==a){var j=Number.isNaN(S)?NaN:g.close+S*a;t.pushToMain({index:e,key:"".concat(f,"_upper"),value:j})}if(null!==u){var P=Number.isNaN(S)?NaN:g.close-S*u;t.pushToMain({index:e,key:"".concat(f,"_lower"),value:P})}return t.pushToMain({index:e,key:f,value:S}),!0},ema:he,sma:he,vidya:function(t,e,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},i=t.verticalOhlcv,a=t.instances,u=t.len,l=t.priceBased,c=o.target,s=o.lag,f=o.atrLength,p=void 0===f?200:f,y=o.bandDistance,h=void 0===y?2:y,v=o.liquidityLookback,m=void 0===v?5:v,d="".concat(r,"_").concat(n);if(0===e){if(!(c in i))throw new Error('VIDYA could not find target "'.concat(c,'"'));for(var b="vidya_".concat(d),g="close"===c?b:"".concat(b,"_").concat(c),w={vidya:g,upper:"".concat(b,"_upper"),lower:"".concat(b,"_lower"),delta_vol:"".concat(b,"_delta_vol"),cross:"".concat(b,"_cross"),liquidity:"".concat(b,"_liquidity")},S=0,O=[g,w.upper,w.lower,w.liquidity];S<O.length;S++){var j=O[S];l.add(j)}a.vidya||(a.vidya={settings:{}}),a.vidya.settings[d]={momentumBuffer:[],prevVidya:NaN,sma:new Q(15),atrBuffer:[],isTrendUp:!1,upVol:0,downVol:0,liquidity:{high:[],low:[]}},Object.values(w).forEach((function(t){i[t]=new Float64Array(u).fill(NaN)})),s>0&&t.lag(Object.values(w),s)}var P=a.vidya.settings[d],N="vidya_".concat(d),_={vidya:"close"===c?N:"".concat(N,"_").concat(c),upper:"".concat(N,"_upper"),lower:"".concat(N,"_lower"),delta_vol:"".concat(N,"_delta_vol"),cross:"".concat(N,"_cross"),liquidity:"".concat(N,"_liquidity")},A=i[c][e],k=i.high[e],T=i.low[e],E=i.close[e],x=i.open[e],M=i.volume[e],I=e>0?i[_.cross][e-1]:0,D=P.liquidity.high.length===m?Math.max.apply(Math,we(P.liquidity.high)):NaN,R=P.liquidity.low.length===m?Math.min.apply(Math,we(P.liquidity.low)):NaN;if(e>0){var C=i.close[e-1],F=Math.max(k-T,Math.abs(k-C),Math.abs(T-C));P.atrBuffer.push(F),P.atrBuffer.length>p&&P.atrBuffer.shift()}var B=P.atrBuffer.length===p?P.atrBuffer.reduce((function(t,e){return t+e}),0)/p:NaN,L=NaN,U=NaN;if(e>0&&(U=A-i[c][e-1]),P.momentumBuffer.push(U),P.momentumBuffer.length>n&&P.momentumBuffer.shift(),P.momentumBuffer.length===n){var V=0,H=0;P.momentumBuffer.forEach((function(t){return t>=0?V+=t:H+=-t}));var q=V+H,$=2/(r+1)*((0===q?0:100*Math.abs((V-H)/q))/100);L=isNaN(P.prevVidya)?A:$*A+(1-$)*P.prevVidya,P.prevVidya=L}P.sma.update(L);var K=NaN;try{K=P.sma.getResult()}catch(t){}var z=isNaN(B)||isNaN(K)?NaN:K+B*h,G=isNaN(B)||isNaN(K)?NaN:K-B*h,Y=e>0?i[c][e-1]:NaN,J=e>0?i[_.upper][e-1]:NaN,W=e>0?i[_.lower][e-1]:NaN,Z=e>0&&Y<=J&&A>z,X=e>0&&Y>=W&&A<G;Z&&(P.isTrendUp=!0),X&&(P.isTrendUp=!1);var tt=0;e>0&&(tt=P.isTrendUp?I>0?I+1:1:I<0?I-1:-1),Z||X?P.upVol=P.downVol=0:(P.upVol+=E>x?M:0,P.downVol+=E<x?M:0);var et=(P.upVol+P.downVol)/2||1,rt=(P.upVol-P.downVol)/et,nt=P.isTrendUp?G:z,ot=NaN;return tt>0?ot=R:tt<0&&(ot=D),t.pushToMain({index:e,key:_.vidya,value:nt}),t.pushToMain({index:e,key:_.upper,value:z}),t.pushToMain({index:e,key:_.lower,value:G}),t.pushToMain({index:e,key:_.delta_vol,value:rt}),t.pushToMain({index:e,key:_.cross,value:tt}),t.pushToMain({index:e,key:_.liquidity,value:ot}),P.liquidity.high.push(k),P.liquidity.low.push(T),P.liquidity.high.length>m&&P.liquidity.high.shift(),P.liquidity.low.length>m&&P.liquidity.low.shift(),!0},macd:function(t,e,r,n,o,i){var a=i.target,u=i.lag,l=i.precomputed,c=t.verticalOhlcv,s=t.instances,f=t.priceBased,p=t.useFullNames,y=l.instanceKey;if(0===e){var h=t.inputParams,v=t.len;if(!c.hasOwnProperty(a))throw new Error("Target property ".concat(a," not found in verticalOhlcv for macd."));var m,d=0,b=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return Pe(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Pe(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(h);try{for(b.s();!(m=b.n()).done;)"macd"===m.value.key&&d++}catch(t){b.e(t)}finally{b.f()}var g=d>1||p,w="".concat(r,"_").concat(n,"_").concat(o),S=function(t){return a===Ne?g?"macd_".concat(t,"_").concat(w):"macd_".concat(t):g?"macd_".concat(t,"_").concat(a,"_").concat(w):"macd_".concat(t,"_").concat(a)},O=S("diff"),j=S("dea"),P=S("histogram");s.hasOwnProperty("macd")||(s.macd={numberOfIndicators:d,settings:{}}),s.macd.settings[y]=new Kt(new Ut(r),new Ut(n),new Ut(o)),Object.assign(c,je(je(je({},O,new Float64Array(v).fill(NaN)),j,new Float64Array(v).fill(NaN)),P,new Float64Array(v).fill(NaN)));for(var N=[O,j,P],_=0,A=N;_<A.length;_++){var k=A[_];f.add(k)}u>0&&t.lag(N,u)}var T=s.macd,E=T.numberOfIndicators,x=T.settings,M=E>1||p,I="".concat(r,"_").concat(n,"_").concat(o),D=function(t){return a===Ne?M?"macd_".concat(t,"_").concat(I):"macd_".concat(t):M?"macd_".concat(t,"_").concat(a,"_").concat(I):"macd_".concat(t,"_").concat(a)},R=D("diff"),C=D("dea"),F=D("histogram"),B=x[y],L=c[a][e];B.update(L);var U={};try{U=B.getResult()}catch(t){}return t.pushToMain({index:e,key:R,value:U?U.macd:NaN}),t.pushToMain({index:e,key:C,value:U?U.signal:NaN}),t.pushToMain({index:e,key:F,value:U?U.histogram:NaN}),!0},volumeDelta:function(t,e,r){var n=r.lag,o=void 0===n?0:n,i=t.verticalOhlcv,a=t.instances,u=t.len,l="volume_delta";if(0===e){a[l]||(a[l]={isBuyVolume:!0,cross:0});for(var c=["".concat(l,"_open"),"".concat(l,"_high"),"".concat(l,"_low"),"".concat(l,"_close"),"".concat(l,"_cross")],s=0,f=c;s<f.length;s++)i[f[s]]=new Float64Array(u).fill(NaN);o>0&&t.lag(c,o)}var p=a[l],y=i.volume[e],h=i.open[e],v=i.close[e],m=e>0?i.close[e-1]:NaN,d=p.isBuyVolume;v>h?d=!0:v<h?d=!1:v>m?d=!0:v<m&&(d=!1),p.isBuyVolume=d,e<1?p.cross=d?1:-1:d?p.cross>0?p.cross=p.cross+1:p.cross=1:p.cross>0?p.cross=-1:p.cross=p.cross-1;var b=Number.isFinite(y)?d?y:-y:NaN,g=Number.isNaN(b)?NaN:0,w=b,S=Number.isNaN(b)?NaN:Math.max(b,0),O=Number.isNaN(b)?NaN:Math.min(b,0);return t.pushToMain({index:e,key:"".concat(l,"_open"),value:g}),t.pushToMain({index:e,key:"".concat(l,"_high"),value:S}),t.pushToMain({index:e,key:"".concat(l,"_low"),value:O}),t.pushToMain({index:e,key:"".concat(l,"_close"),value:w}),t.pushToMain({index:e,key:"".concat(l,"_cross"),value:p.cross}),!0},relativeVolume:function(t,e,r,n){var o=n.lag,i="relative_volume_".concat(r),a=t.instances,u=t.verticalOhlcv;if(0===e){var l=t.len;a[i]={instance:new Q(r),prevRelativeVolumeSma:NaN},u[i]=new Float64Array(l).fill(NaN),o>0&&t.lag([i],o)}var c=u.volume[e],s=a[i].instance;s.update(c);var f=NaN;try{f=s.getResult()}catch(t){}var p=a[i].prevRelativeVolumeSma,y=NaN;return Number.isNaN(f)||Number.isNaN(p)||(y=c/p),t.pushToMain({index:e,key:i,value:y}),a[i].prevRelativeVolumeSma=f,!0},donchianChannels:function(t,e,r,n,o){var i=t.verticalOhlcv,a=t.instances,u=t.len,l=t.inputParams,c=t.priceBased,s=t.useFullNames,f=o.lag,p=void 0===f?0:f,y="".concat(r,"_").concat(n);if(0===e){var h,v=l.filter((function(t){return"donchianChannels"===t.key})).length,m=v>1||s,d=["upper","basis","lower"].map((function(t){return m?"donchian_channel_".concat(t,"_").concat(y):"donchian_channel_".concat(t)})),b=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return _e(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_e(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(d);try{for(b.s();!(h=b.n()).done;){var g=h.value;c.add(g)}}catch(t){b.e(t)}finally{b.f()}a.donchian_channel||(a.donchian_channel={numberOfIndicators:v,settings:{}}),a.donchian_channel.numberOfIndicators=v,a.donchian_channel.settings[y]={maxDeque:[],minDeque:[]},Object.assign(i,Object.fromEntries(d.map((function(t){return[t,new Float64Array(u).fill(NaN)]})))),p>0&&t.lag(d,p)}var w=a.donchian_channel,S=w.numberOfIndicators,O=w.settings,j=S>1||s,P=function(t){return j?"donchian_channel_".concat(t,"_").concat(y):"donchian_channel_".concat(t)},N=O[y],_=N.maxDeque,A=N.minDeque,k=e-n,T=k-r+1,E=["upper","basis","lower"].map(P);if(T<0||k+1>u)return E.forEach((function(r){return t.pushToMain({index:e,key:r,value:NaN})})),!0;var x=i.high,M=i.low,I=function(t,e,r){for(;t.length&&t[0]<T;)t.shift();for(;t.length&&r(e[t.at(-1)],e[k]);)t.pop();t.push(k)};I(_,x,(function(t,e){return t<=e})),I(A,M,(function(t,e){return t>=e}));var D=_.length&&A.length,R=D?x[_[0]]:NaN,C=D?M[A[0]]:NaN,F=D?(R+C)/2:NaN;return t.pushToMain({index:e,key:P("upper"),value:R}),t.pushToMain({index:e,key:P("basis"),value:F}),t.pushToMain({index:e,key:P("lower"),value:C}),!0},bollingerBands:function(t,e,r,n){var o,i,a,u,l,c,s=(arguments.length>4&&void 0!==arguments[4]?arguments[4]:{}).lag,f=t.verticalOhlcv,p=t.instances,y=t.useFullNames,h="".concat(r,"_").concat(n),v="bollinger_bands",m="close";if(0===e){var d=t.inputParams,b=t.verticalOhlcv,g=t.len,w=t.priceBased;if(!(m in b))throw new Error('bollingerBands could not find target "'.concat(m,'"'));var S,O=0,j=Ee(d);try{for(j.s();!(S=j.n()).done;)"bollingerBands"===S.value.key&&O++}catch(t){j.e(t)}finally{j.f()}p.bollinger_bands||(p.bollinger_bands={numberOfIndicators:O,settings:{}}),p.bollinger_bands.settings[h]=new xt(r,n);var P=O>1||y?"_".concat(h):"",N=["".concat(v,"_upper").concat(P),"".concat(v,"_middle").concat(P),"".concat(v,"_lower").concat(P)];if(w.has(m)){var _,A=Ee(N);try{for(A.s();!(_=A.n()).done;){var k=_.value;w.add(k)}}catch(t){A.e(t)}finally{A.f()}}var T=Object.fromEntries(N.map((function(t){return[t,new Float64Array(g).fill(NaN)]})));Object.assign(b,function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ke(Object(r),!0).forEach((function(e){Te(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ke(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({},T)),s>0&&t.lag(N,s)}var E=p.bollinger_bands.numberOfIndicators>1||y?"_".concat(h):"",x=p.bollinger_bands.settings[h],M=f[m][e];x.update(M);var I={};try{I=x.getResult()}catch(t){}var D=null!==(o=null===(i=I)||void 0===i?void 0:i.upper)&&void 0!==o?o:NaN,R=null!==(a=null===(u=I)||void 0===u?void 0:u.middle)&&void 0!==a?a:NaN,C=null!==(l=null===(c=I)||void 0===c?void 0:c.lower)&&void 0!==l?l:NaN;return t.pushToMain({index:e,key:"".concat(v,"_upper").concat(E),value:D}),t.pushToMain({index:e,key:"".concat(v,"_middle").concat(E),value:R}),t.pushToMain({index:e,key:"".concat(v,"_lower").concat(E),value:C}),!0},volumeOscillator:function(t,e,r,n,o){var i,a,u,l=o.lag,c=t.verticalOhlcv,s=t.instances,f=c.volume[e],p="volume_oscillator_".concat(r,"_").concat(n);if(0===e){var y=t.len;Object.assign(s,(i={},a=p,u={fastEMA:new Ut(r),slowEMA:new Ut(n)},(a=function(t){var e=function(t,e){if("object"!=Me(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Me(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Me(e)?e:e+""}(a))in i?Object.defineProperty(i,a,{value:u,enumerable:!0,configurable:!0,writable:!0}):i[a]=u,i)),c[p]=new Float64Array(y).fill(NaN),l>0&&t.lag([p],l)}var h=s[p],v=h.fastEMA,m=h.slowEMA;v.update(f),m.update(f);var d=NaN,b=NaN;try{d=v.getResult()}catch(t){}try{b=m.getResult()}catch(t){}var g=NaN;return Number.isNaN(d)||Number.isNaN(b)||(g=100*(d-b)/b),t.pushToMain({index:e,key:p,value:g}),!0},mapCols:function(t,e,r,n,o){var i=o.lag,a=o.isPriceBased,u=t.verticalOhlcv,l=t.len,c=t.priceBased,s=t.precision;if(0===e){var f,p=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Sr(t))){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(r);try{for(p.s();!(f=p.n()).done;){var y=f.value;if(u.hasOwnProperty(y))throw new Error('New property "'.concat(y,'" already exist in "verticalOhlcv" and can not be modified using mapCols.'));u[y]=new Array(l).fill(0),s&&a&&c.add(y)}}catch(t){p.e(t)}finally{p.f()}i>0&&t.lag(r,i)}var h,v,m=n({index:e,main:t});if(null==m)return!0;for(var d=0,b=Object.entries(m);d<b.length;d++){var g=(h=b[d],v=2,function(t){if(Array.isArray(t))return t}(h)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(h,v)||Sr(h,v)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),w=g[0],S=g[1];t.pushToMain({index:e,key:w,value:S})}},scaler:function(t,e,r,n,o){var i=o.type,a=o.minMaxRange,u=o.lookback,l=o.weights,c=o.euclideanWeights,s=o.byFeatureRange,f=o.offset,p=t.verticalOhlcv,y=t.instances,h="".concat(i,"_").concat(r);if(0===e){var v=t.len;if(t.isAlreadyComputed.has(h))throw new Error('In scaler method can not repeat params "size" and "options.type" together between indicators.');y.hasOwnProperty("scaler")||(y.scaler={}),y.scaler.hasOwnProperty(h)||(y.scaler[h]={extectedFeatures:0===u?n.length:n.length+u*n.length});var m,d=[],b=dr(n);try{var g=function(){var e=m.value;if(!p.hasOwnProperty(e))throw new Error('Target property "'.concat(e,'" not found in verticalOhlcv'));var r,n="".concat(h,"_").concat(e);if(p[n]=new Float64Array(v).fill(NaN),t.scaledGroups[h]||(t.scaledGroups[h]=[]),t.scaledGroups[h].push(n),u>0){var o,i,a=Array.from({length:u}).map((function(t,e){return"".concat(n,"_lag_").concat(e+1)})),l=dr(a);try{for(l.s();!(i=l.n()).done;){var c=i.value;p[c]=new Float64Array(v).fill(NaN)}}catch(t){l.e(t)}finally{l.f()}(o=t.scaledGroups[h]).push.apply(o,function(t){if(Array.isArray(t))return gr(t)}(r=a)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(r)||br(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),d.push(n)}};for(b.s();!(m=b.n()).done;)g()}catch(t){b.e(t)}finally{b.f()}for(var w=0,S=Object.keys(l);w<S.length;w++){var O=S[w];if(!p.hasOwnProperty(O))throw new Error('Target property "'.concat(O,'" not found in verticalOhlcv'))}}var j=y.scaler[h].extectedFeatures,P=!1,N={},_=[],A=0,k=e-f;if(!(k<0)){for(var T=0;T<n.length;T++){var E,x,M=n[T],I=p[M],D=null!==(E=null==l||null===(x=l[M])||void 0===x?void 0:x[0])&&void 0!==E?E:1,R=I[k];if(wr(R)){P=!0;break}if(N[M]={val:R,weight:c?Math.sqrt(D):D},_.push(R),A++,u>0){for(var C=1;C<=u;C++){var F,B,L=null!==(F=null==l||null===(B=l[M])||void 0===B?void 0:B[C])&&void 0!==F?F:1,U=I[k-C];if(wr(U)){P=!0;break}N["".concat(M,"_lag_").concat(C)]={val:U,weight:c?Math.sqrt(L):L},_.push(U),A++}if(P)break}}if(!P&&A===j){if("minmax"===i)for(var V=Math.min.apply(Math,_),H=Math.max.apply(Math,_),q=0,$=Object.entries(N);q<$.length;q++){var K=mr($[q],2),z=K[0],G=K[1],Y=G.val,J=G.weight,W=tr(Y,V,H,a),Z=0===W?0:W*J;t.pushToMain({index:e,key:"".concat(h,"_").concat(z),value:Z})}if("zscore"===i)for(var Q=_.length,X=_.reduce((function(t,e){return t+e}),0)/Q,tt=_.reduce((function(t,e){return t+Math.pow(e-X,2)}),0)/Q,et=Math.sqrt(tt),rt=0,nt=Object.entries(N);rt<nt.length;rt++){var ot=mr(nt[rt],2),it=ot[0],at=ot[1],ut=at.val,lt=at.weight,ct=er(ut,X,et),st=0===ct?0:ct*lt;t.pushToMain({index:e,key:"".concat(h,"_").concat(it),value:st})}if("byfeature"===i)for(var ft=mr(s,2),pt=ft[0],yt=ft[1],ht=0,vt=Object.entries(N);ht<vt.length;ht++){var mt=mr(vt[ht],2),dt=mt[0],bt=mt[1],gt=bt.val,wt=bt.weight,St=tr(gt,pt,yt,a),Ot=0===St?0:St*wt;t.pushToMain({index:e,key:"".concat(h,"_").concat(dt),value:Ot})}}}},crossPairs:function(t,e,r,n){var o,i=n.oneHot,a=n.limit,u=t.verticalOhlcv,l=t.verticalOhlcvTempCols,c=t.instances,s=t.len,f=t.precision,p=t.precisionMultiplier,y=t.priceBased,h=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return rr(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?rr(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(r);try{for(h.s();!(o=h.n()).done;){var v=o.value,m=v.fast,d=v.slow,b="".concat(m,"_x_").concat(d);if(0===e){if("number"==typeof d){var g=d.toString();l.add(g);var w=f&&("price"===m||y.has(m)),S=w?Ce(g,p):d,O=d>=-125&&d<=125&&!1===w?"Int8Array":"Float64Array";u[g]=Ye(O,s,S)}c.hasOwnProperty("crossPairs")||(c.crossPairs={}),c.crossPairs[b]={run:new lr,min:1/0,max:-1/0};var j=null!==a&&a<=125?"Int8Array":"Float64Array";u[b]=Ye(j,s,0),i&&(u["one_hot_".concat(b)]=Ye("Array",s,null))}else if(e+1===s){if("price"!==m&&!u.hasOwnProperty(m))throw new Error('crossPairs invalid param: fast "'.concat(m,'" not found in "verticalOhlcv": ').concat(JSON.stringify(Object.keys(u))));if(!u.hasOwnProperty(d))throw new Error('crossPairs invalid param: slow "'.concat(d,'" not found in "verticalOhlcv": ').concat(JSON.stringify(Object.keys(u))))}if("price"!==m&&!u.hasOwnProperty(m))return;if(!u.hasOwnProperty(d))return;var P=c.crossPairs[b].run;if("price"===m){var N=u.close[e],_=u[d][e];P.update(e,{fast:N,slow:_,high:u.high[e],low:u.low[e]})}else{var A=u[m][e],k=u[d][e];P.update(e,{fast:A,slow:k})}var T=P.getResult(),E=null!==a?Math.min(Math.max(T,-a),a):T;if(t.pushToMain({index:e,key:b,value:E}),i){var x=E+a,M=2*a+1;t.pushToMain({index:e,key:"one_hot_".concat(b),value:Xe(x,M)})}}}catch(t){h.e(t)}finally{h.f()}return!0},lag:function(t,e,r,n){var o=t.verticalOhlcv,i=t.len,a=t.priceBased;if(0===e){var u,l=We(r);try{for(l.s();!(u=l.n()).done;){var c=u.value;if(!o.hasOwnProperty(c))throw new Error('Lag processing invoked by col "'.concat(c,'" was not found in "verticalOhlcv".'));for(var s=a.has(c),f=1;f<=n;f++){var p="".concat(c,"_lag_").concat(f);s&&a.add(p);var y=Je(c,o[c]);o[p]=Ye(y,i)}}}catch(t){l.e(t)}finally{l.f()}}var h,v=We(r);try{for(v.s();!(h=v.n()).done;)for(var m=h.value,d=o[m],b=1;b<=n;b++){var g="".concat(m,"_lag_").concat(b),w=e-b,S=w<0||void 0===d[w]?null:d[w];t.pushToMain({index:e,key:g,value:S})}}catch(t){v.e(t)}finally{v.f()}return!0}};function Rr(t,e){if(t){if("string"==typeof t)return Cr(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Cr(t,e):void 0}}function Cr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var Fr=function(t){var e=t.main,r=t.skipNull,n=void 0!==r&&r,o=t.startIndex,i=void 0===o?0:o,a=t.dateFormat,u=e.verticalOhlcv,l=e.invalidValueIndex,c=e.len,s=e.verticalOhlcvKeyNames,f=e.verticalOhlcvTempCols,p=e.priceBased,y=e.precision,h=e.precisionMultiplier;if(0===s.length)return[];var v,m,d,b=n&&l>=0?l+1:0,g=Math.max(b,i),w=c-g,S=Array.from({length:w},(function(){return{}})),O={},j=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Rr(t))){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(s);try{for(j.s();!(v=j.n()).done;){var P=v.value;y&&p.has(P)?O[P]=function(t,e){return function(t,e){if("number"!=typeof t||!Number.isFinite(t))throw new Error("revertPrecisionAsNumber expects a finite number");var r=t<0,n=Math.abs(t);n=Math.trunc(n);var o=1===e?0:String(e).length-1;if(0===o)return r?-n:n;var i=Math.trunc(n/e),a=String(n%e).padStart(o,"0"),u=0===(a=a.replace(/0+$/,"")).length?String(i):"".concat(i,".").concat(a);return Number(r?"-".concat(u):u)}(t,e)}:O[P]=function(t){return t}}}catch(t){j.e(t)}finally{j.f()}for(var N=0,_=Object.entries(u);N<_.length;N++){var A=(m=_[N],d=2,function(t){if(Array.isArray(t))return t}(m)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(m,d)||Rr(m,d)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),k=A[0],T=A[1];if(!f.has(k))for(var E=g;E<c;E++)S[E-g][k]="date"===k?Ve[a](T[E]):O[k](T[E],h)}return S};function Br(t){return Br="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Br(t)}function Lr(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(t,e)||Vr(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ur(t,e,r){return(e=$r(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Vr(t,e){if(t){if("string"==typeof t)return Hr(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Hr(t,e):void 0}}function Hr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function qr(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,$r(n.key),n)}}function $r(t){var e=function(t,e){if("object"!=Br(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Br(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Br(e)?e:e+""}var Kr=function(){return t=function t(e){var r=this,n=e.input,o=e.ticker,i=void 0===o?null:o,u=e.inputParams,c=void 0===u?null:u,s=e.chunkProcess,y=void 0===s?2e3:s,h=e.precision,v=void 0!==h&&h,m=e.useFullNames,d=void 0!==m&&m;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),l(n,"input",null!==i?"contructor ".concat(i):"constuctor"),0===n.length)throw Error("input OHLCV must not be empty: "+i);p(y,{min:100,max:5e4,allowDecimals:!1},"chunkProcess","constructor"),f(v,"precision","contructor"),f(v,"useFullNames","contructor"),this.chunkProcess=y,this.input=function(t){return function(t){if(Array.isArray(t))return Hr(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||Vr(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(n),this.len=this.input.length,this.firstRow=this.input[0],this.precision=v,this.useFullNames=d;var b=["open","high","low","close","mid_price"];this.initialPriceBased=new Set(b),this.priceBased=new Set(b),this.precisionMultiplier=function(t){var e=t.precision,r=t.firstRow,n=t.initialPriceBased;if(!1===e)return 1;for(var o=1,i=0,a=Object.entries(r);i<a.length;i++){var u=De(a[i],2),l=u[0],c=u[1];if(n.has(l)){if("string"!=typeof c||!/^\d+(\.\d+)?$/.test(c))throw new Error('If "precision" is set to true all the "open", "high", "low" and "close" values must be numeric strings like "123.45" with no commas or currency symbols. Property "'.concat(l,'" had the value "').concat(c,'" type ').concat(Ie(c),"."));var s=De(c.split("."),2),f=s[0],p=s[1],y=void 0===p?"":p,h=Number(f),v=4;if(0===Math.abs(h)){var m=y.length,d=Math.max(4,m),b=y.search(/[1-9]/);if(-1===b)v=d;else{var g=b+1+5;v=Math.max(d,g)}}var w=Math.pow(10,v);w>o&&(o=w)}}return o}(this);var g=function(t){for(var e=t.firstRow,r=t.precision,n=t.initialPriceBased,o={},i={},a=new Map,u=0,l=Object.entries(e);u<l.length;u++){var c=Ke(l[u],2),s=c[0],f=c[1];if("date"===s)o[s]=qe(f),i[s]="Array";else if("volume"===s)o[s]=Le(f,!0),i[s]="Int32Array";else if(n.has(s))o[s]=Le(f,!0,r),i[s]="Float64Array",a.set(s,o[s]);else{var p=Le(f,!1,r);o[s]=p,i[s]="number"===p?"Float64Array":"Array"}}if(new Set(a.values()).size>1){var y=function(t){return function(t){if(Array.isArray(t))return Ge(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||ze(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(a.entries()).map((function(t){var e=Ke(t,2),r=e[0],n=e[1];return"".concat(r,': "').concat(n,'"')})).join(", ");throw new Error("Inconsistent types among price-based columns — ".concat(y,". ")+"All initialPriceBased columns must share the same numeric type.")}return i.hasOwnProperty("open")&&i.hasOwnProperty("close")&&(i.mid_price=i.open,o.mid_price=o.open),{inputTypes:o,arrayTypes:i}}(this),w=g.inputTypes,S=g.arrayTypes;if(this.inputTypes=w,this.arrayTypes=S,!this.firstRow.hasOwnProperty("close"))throw Error('input OHLCV array objects require at least "close" property: '.concat(i));return this.dateType=this.inputTypes.date?this.inputTypes.date:null,this.isComputed=!1,this.instances={},this.verticalOhlcv={},this.verticalOhlcvKeyNames=[],this.verticalOhlcvTempCols=new Set,this.utilities={},this.invalidValueIndex=-1,this.scaledGroups={},this.isAlreadyComputed=new Set,this.pushToMain=function(t){var e=t.index,n=t.key,o=t.value;return function(t){var e=t.index,r=t.key,n=t.value;return t.main.verticalOhlcv[r][e]=n,!0}({main:r,index:e,key:n,value:o})},null!==c?(a(c,this.len),this.inputParams=c.sort((function(t,e){return t.order-e.order})),this.compute()):this.inputParams=[],this},e=[{key:"getData",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.compute();var e=t.skipNull,r=void 0===e||e,n=t.dateFormat,o=void 0===n?"milliseconds":n;return s(Object.keys(Ve),o,"dateFormat","getData"),c(t,"options","getData"),Fr({main:this,skipNull:r,startIndex:0,dateFormat:o})}},{key:"getLastValues",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.compute();var e=t.dateFormat,r=void 0===e?"milliseconds":e;return s(Object.keys(Ve),r,"dateFormat","getData"),Fr({skipNull:!1,main:this,startIndex:this.len-1,dateFormat:r})[0]}},{key:"compute",value:function(){return this.isComputed||(this.inputParams=this.inputParams.sort((function(t,e){return t.order-e.order})),this.isComputed=!1,this.len>0&&(function(t,e){var n=e.len,o=e.arrayTypes,i=e.verticalOhlcv,u=e.verticalOhlcvKeyNames,l=e.inputTypes,c=e.chunkProcess,s=e.precisionMultiplier,f=e.inputParams;a(f,n);for(var p=0,y=Object.keys(l);p<y.length;p++){var h=y[p];i[h]=Ye(o[h],n)}for(var v=0;v<n;v+=c)for(var m=Math.min(v+c,n),d=v;d<m;d++){for(var b=t[d],g=0,w=Object.entries(l);g<w.length;g++){var S=xr(w[g],2),O=S[0],j=S[1],P=b[O];if(void 0!==P)if(Be.hasOwnProperty(j)){var N=Be[j](P,s);e.pushToMain({index:d,key:O,value:N})}else He.hasOwnProperty(j)?e.pushToMain({index:d,key:O,value:He[j](P)}):e.pushToMain({index:d,key:O,value:P})}var _=(i.open[d]+i.close[d])/2;e.pushToMain({index:d,key:"mid_price",value:_});var A,k=Er(f);try{for(k.s();!(A=k.n()).done;){var T=A.value,E=T.key,x=T.params;Dr[E].apply(Dr,[e,d].concat(Tr(x)))}}catch(t){k.e(t)}finally{k.f()}t[d]=null;var M=Object.keys(i);r(e,d,M)||(e.invalidValueIndex=d)}u.push.apply(u,Tr(Object.keys(i)))}(this.input,this),this.isComputed=!0,this.input=[],this.instances={},this.firstRow=[])),this}},{key:"crossPairs",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="crossPairs";u(this),l(t,"arr",r),c(e,"options",r);var n=e.limit,o=void 0===n?null:n,i=e.oneHot,a=void 0!==i&&i;null!==o&&p(o,{min:2,max:this.len},"options.limit",r),f(a,"options.oneHot",r);var s,y=[],h=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Vr(t))){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(t);try{for(h.s();!(s=h.n()).done;){var v=s.value,m=v.fast,d=void 0===m?"":m,b=v.slow,g=void 0===b?"":b;if(""===d||""===g)throw new Error("Invalid crossPairs[".concat(d,"_").concat(g,"]: Object property “fast” must be a non-null column name and “slow” must be a non-null column name or integer."));y.push(d.toString(),g.toString())}}catch(t){h.e(t)}finally{h.f()}if(this.isAlreadyComputed.has(r))throw new Error('You can only call the "'.concat(r,'" method once.'));return this.isAlreadyComputed.add(r),this.inputParams.push({key:r,params:[t,{limit:o,oneHot:a}]}),this}},{key:"lag",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["close"],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r="lag";return u(this),l(t,"colKeys",r),p(e,{min:1,max:this.len,allowDecimals:!1},"lookback",r),this.inputParams.push({key:r,params:[t,e]}),this}},{key:"relativeVolume",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="relativeVolume";if(!this.inputTypes.hasOwnProperty("volume"))throw new Error('If "relativeVolume" is called the input ohlcv must contain valid volume properties.');u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"size",r),c(e,"options",r);var n=e.lag,o=void 0===n?0:n;return p(o,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),this.inputParams.push({key:r,order:0,params:[t,{lag:o}]}),this}},{key:"volumeDelta",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e="volumeDelta";if(!this.inputTypes.hasOwnProperty("volume"))throw new Error('If "volumeDelta" is called the input ohlcv must contain valid volume properties.');u(this),c(t,"options",e);var r=t.lag,n=void 0===r?0:r;return p(n,{min:0,max:this.len,allowDecimals:!1},"options.lag",e),this.inputParams.push({key:e,order:0,params:[{lag:n}]}),this}},{key:"atr",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:14,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="atr";u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"size",r),c(e,"options",r);var n=e.lag,o=void 0===n?0:n,i=e.percentage,a=void 0!==i&&i,l=e.upper,s=void 0===l?null:l,y=e.lower,h=void 0===y?null:y;return p(o,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),f(a,"options.percentage","atr"),null!==s&&p(s,{min:.001,max:100,allowDecimals:!0},"options.upper","atr"),null!==h&&p(h,{min:.001,max:100,allowDecimals:!0},"options.lower","atr"),this.inputParams.push({key:r,order:0,params:[t,{lag:o,percentage:a,upper:s,lower:h}]}),this}},{key:"ema",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="ema";u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"size",r),c(e,"options",r);var n=e.target,o=void 0===n?"close":n,i=e.lag,a=void 0===i?0:i;return h(o,"options.target",r),p(a,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),this.inputParams.push({key:r,params:[r,t,{target:o,lag:a}]}),this}},{key:"sma",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="sma";u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"size",r),c(e,"options",r);var n=e.target,o=void 0===n?"close":n,i=e.lag,a=void 0===i?0:i;return h(o,"options.target",r),p(a,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),this.inputParams.push({key:r,params:[r,t,{target:o,lag:a}]}),this}},{key:"heikenAshi",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n="heikenAshi";u(this);var o=null===t&&null===e;!1===o&&(p(t,{min:1,max:this.len,allowDecimals:!1},"smoothLength",n),p(e,{min:1,max:this.len,allowDecimals:!1},"afterSmoothLength",n)),c(r,"options",n);var i=r.lag,a=void 0===i?0:i;return p(a,{min:0,max:this.len,allowDecimals:!1},"options.lag",n),this.inputParams.push({key:n,order:0,params:[t,e,{lag:a,bothNull:o}]}),this}},{key:"vidya",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:14,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n="vidya";u(this),p(t,{min:2,max:this.len,allowDecimals:!1},"size",n),p(e,{min:1,max:this.len,allowDecimals:!1},"momentum",n),c(r,"options",n);var o=r.target,i=void 0===o?"close":o,a=r.lag,l=void 0===a?0:a,s=r.atrLength,f=void 0===s?200:s,y=r.bandDistance,v=void 0===y?2:y,m=r.liquidityLookback,d=void 0===m?20:m;return h(i,"options.target",n),p(l,{min:0,max:this.len,allowDecimals:!1},"options.lag",n),p(v,{min:.01,max:10,allowDecimals:!0},"options.bandDistance",n),p(f,{min:2,max:this.len,allowDecimals:!1},"options.atrLength",n),p(d,{min:1,max:this.len,allowDecimals:!1},"options.liquidityLookback",n),this.inputParams.push({key:n,params:[t,e,{target:i,lag:l}]}),this}},{key:"stochastic",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:14,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o="stochastic",i=this.len;p(t,{min:1,max:i,allowDecimals:!1},"kPeriod",o),p(e,{min:1,max:i,allowDecimals:!1},"kSlowingPeriod",o),p(r,{min:1,max:i,allowDecimals:!1},"dPeriod",o),c(n,"options",o);var a=n.lag,u=void 0===a?0:a,l=n.retLogs;return p(u,{min:0,max:i,allowDecimals:!1},"options.lag",o),f(l,"retLogs",o),this.inputParams.push({key:o,params:[t,e,r,{lag:u,retLogs:l}]}),this}},{key:"macd",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:12,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:26,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:9,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o="macd";u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"fast",o),p(e,{min:1,max:this.len,allowDecimals:!1},"slow",o),p(r,{min:1,max:this.len,allowDecimals:!1},"signal",o),c(n,"options",o);var i=n.target,a=void 0===i?"close":i,l=n.lag,s=void 0===l?0:l;h(a,"options.target",o),p(s,{min:0,max:this.len,allowDecimals:!1},"options.lag",o);var f={instanceKey:"".concat(t,"_").concat(e,"_").concat(r).concat("close"===a?"":"_".concat(a))};return this.inputParams.push({key:o,params:[t,e,r,{target:a,lag:s,precomputed:f}]}),this}},{key:"bollingerBands",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n="bollingerBands";u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"size",n),p(e,{min:.01,max:50,allowDecimals:!0},"stdDev",n),c(r,"options",n);var o=r.lag,i=void 0===o?0:o;return p(i,{min:0,max:this.len,allowDecimals:!1},"options.lag",n),this.inputParams.push({key:n,params:[t,e,{lag:i}]}),this}},{key:"rsi",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:14,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="rsi";u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"size",r),c(e,"options",r);var n=e.target,o=void 0===n?"close":n,i=e.lag,a=void 0===i?0:i,l=e.retLogs,s=void 0!==l&&l;return h(o,"options.target",r),p(a,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),f(s,"retLogs",r),this.inputParams.push({key:r,params:[t,{target:o,lag:a,retLogs:s}]}),this}},{key:"donchianChannels",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n="donchianChannels";u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"size",n),p(e,{min:0,max:this.len,allowDecimals:!1},"offset",n),c(r,"options",n);var o=r.lag,i=void 0===o?0:o;return p(i,{min:0,max:this.len,allowDecimals:!1},"options.lag",n),this.inputParams.push({key:n,order:0,params:[t,e,{lag:i}]}),this}},{key:"volumeOscillator",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n="volumeOscillator";if(!this.inputTypes.hasOwnProperty("volume"))throw new Error('If "volumeOscillator" is called the input ohlcv must contain valid volume properties.');u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"fastsize",n),p(e,{min:t,max:this.len,allowDecimals:!1},"slowsize",n),c(r,"options",n);var o=r.lag,i=void 0===o?0:o;return p(i,{min:0,max:this.len,allowDecimals:!1},"options.lag",n),this.inputParams.push({key:n,order:0,params:[t,e,{lag:i}]}),this}},{key:"dateTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e="dateTime";u(this),c(t,"options",e);var r=t.lag,n=void 0===r?0:r,o=t.oneHot,i=void 0!==o&&o;p(n,{min:0,max:this.len,allowDecimals:!1},"options.lag",e),f(i,"options.oneHot",e);var a=i?"one_hot_":"",l=Ur(Ur(Ur(Ur(Ur({},"".concat(a,"month"),12),"".concat(a,"day_of_the_month"),31),"".concat(a,"day_of_the_week"),7),"".concat(a,"hour"),24),"".concat(a,"minute"),60),s={prefix:a,colKeySizes:l,colKeys:Object.keys(l)};return this.inputParams.push({key:e,order:0,params:[{lag:n,oneHot:i,precompute:s}]}),this}},{key:"priceFeatures",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e="priceFeatures";u(this),c(t,"options",e);var r=t.lag,n=void 0===r?0:r,o=t.colKeys,i=void 0===o?[]:o,a=t.retLogs,s=void 0!==a&&a;return p(n,{min:0,max:this.len,allowDecimals:!1},"options.lag",e),l(i,"options.colKeys",e),f(s,"retLogs",e),this.inputParams.push({key:e,params:[{lag:n,colKeys:i,retLogs:s}]}),this}},{key:"scaler",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"zscore",e=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n="scaler";u(this),s(["minmax","zscore","byfeature"],t,"options.type",n),p(e,{min:1,max:this.len,allowDecimals:!1},"size",n);var o="".concat(n,"(").concat(t,", ").concat(e,", options = {})");c(r,"options",o);var i=r.minMaxRange,a=void 0===i?null:i,h=r.lag,v=void 0!==h&&h,m=r.colKeys,d=void 0===m?[]:m,b=r.weights,g=void 0===b?{}:b,w=r.euclideanWeights,S=void 0!==w&&w,O=r.byFeatureRange,j=void 0===O?null:O,P=r.offset,N=void 0===P?0:P;p(N,{min:0,max:this.len,allowDecimals:!1},"offset",n),l(d,"options.colKeys",o),f(v,"options.lag",o),c(g,"options.weights",o);var _=v?e-1:0;if(0===d.length)throw new Error('The property "options.colKeys" must be an array with target keys in '.concat(o,"."));for(var A=0,k=Object.entries(g);A<k.length;A++){var T=Lr(k[A],2),E=T[0],x=T[1];if(l(x,"options.weights.".concat(E)),!v&&x.size>0)throw new Error('If "options.lag" is set to false "options.weights.'.concat(E,'" can only contain 1 item (float) in ').concat(o,"."));if(x.length>e)throw new Error('The length of the property "options.weights.'.concat(E,'" can not be longer than "size" in ').concat(o,"."));for(var M=0;M<x.length;M++){var I=x[M];p(I,{min:.01,max:10,allowDecimals:!0},"options.weights.".concat(E,"[").concat(M,"]"),o)}}if("byfeature"!==t){if(null==!j)throw new Error('"options.byFeatureRange" is only valid when "type" is "byfeature".')}else y(j,"options.byFeatureRange",o);return["minmax","byfeature"].includes(t)&&y(a,"options.minMaxRange",o),this.inputParams.push({key:n,params:[e,d,{type:t,minMaxRange:a,lookback:_,weights:g,euclideanWeights:S,byFeatureRange:j,offset:N}]}),this}},{key:"mapCols",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["change"],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};u(this);var n="mapCols";null==e&&(e=jr),c(r,"options",n);var o=r.lag,i=void 0===o?0:o,a=r.isPriceBased,s=void 0!==a&&a;if(l(t,"newCols",n),p(i,{min:0,allowDecimals:!1},"options.lag",n),f(s,"isPriceBased","mapCols"),!1===this.precision&&s)throw new Error('Invalid param: If "mapCols.options.isPriceBased" is true, the "constructor.precision" param must be also true.');return this.inputParams.push({key:n,params:[t,e,{lag:i,isPriceBased:s}]}),this}}],e&&qr(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}()})(),OHLCV_INDICATORS=e})();
1
+ var OHLCV_INDICATORS;(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};(()=>{t.r(e),t.d(e,{default:()=>pn});var r=function(t,e,r){if(0===r.length)return!1;for(var n=t.verticalOhlcv,o=!0,i=0;i<r.length;i++){var a=r[i];if(!n.hasOwnProperty(a)){o=!1;break}var u=n[a][e];if(null==u||Number.isNaN(u)){o=!1;break}}return o};function n(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=o(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,i=function(){};return{s:i,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,u=!0,l=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return u=t.done,t},e:function(t){l=!0,a=t},f:function(){try{u||null==r.return||r.return()}finally{if(l)throw a}}}}function o(t,e){if(t){if("string"==typeof t)return i(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(t,e):void 0}}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var a=function(t,e){if(!Array.isArray(t))throw new Error('Property "inputParams" must be an "Array" or "Set".');var r,o=n(t);try{for(o.s();!(r=o.n()).done;){var i,a=n(r.value.params);try{for(a.s();!(i=a.n()).done;){var u=i.value;if("number"==typeof u&&u>e)throw console.log(u,e),new Error("At least one of the params of the indicator is greater than the input OHLCV length. Make sure to have enough datapoints in the input OHLCV.")}}catch(t){a.e(t)}finally{a.f()}}}catch(t){o.e(t)}finally{o.f()}},u=function(t){if(!0===t.isComputed)throw Error('ohlcv is already computed, you can not add new indicators after "compute", "getLastValues" or "getData" methods are called.')},l=function(t,e,r){if(!Array.isArray(t))throw new Error('Param "'.concat(e,'" must be an array in "').concat(r,'".'));return!0},c=function(t,e,r){if(t instanceof Object==0)throw new Error('Param "'.concat(e,'" must be an object in "').concat(r,'".'));return!0},s=function(t,e,r,n){if(l(t,"arrayOptions","".concat(n,".").concat(r,".validateArrayOptions")),!t.includes(e.toString()))throw new Error('Param "'.concat(r,'" must be any of the following values [').concat(t.join(", "),'] in "').concat(n,'".'));return!0},f=function(t,e,r){if("boolean"!=typeof t)throw new Error('Param "'.concat(e,'" must be an boolean in "').concat(r,'".'));return!0},p=function(t,e,r,n){c(e,"options","".concat(n,".").concat(r,".validateNumber"));var o=e.allowDecimals,i=void 0!==o&&o,a=e.min,u=e.max,l=i?"number":"integer";if("number"!=typeof t||!1===i&&!Number.isInteger(t))throw new Error('Param "'.concat(r,'" must be an ').concat(l,' in "').concat(n,'".'));if(void 0!==a&&"number"!=typeof a)throw new Error('Param "min" must be a valid '.concat(l,' (if provided) in "').concat(n,".").concat(r,'.validateNumber".'));if(void 0!==u&&"number"!=typeof u)throw new Error('Param "max" must be a valid '.concat(l,' (if provided) in "').concat(n,".").concat(r,'.validateNumber".'));if(void 0!==a&&void 0!==u&&a>=u)throw new Error('Param "min" must be less than "max" in "'.concat(n,".").concat(r,'.validateNumber".'));if(void 0!==a&&t<a)throw new Error('Param "'.concat(r,'" must be an ').concat(l," ≥ ").concat(a,' in "').concat(n,'".'));if(void 0!==u&&t>u)throw new Error('Param "'.concat(r,'" must be an ').concat(l," ≤ ").concat(u,' in "').concat(n,'".'));return!0},y=function(t,e,r){if(l(t,e,r),2!==t.length)throw new Error('Invalid "'.concat(e,'" array length: expected 2 items, but got ').concat(t.length,' in "').concat(r,".").concat(e,'".'));var n,i,a=(i=2,function(t){if(Array.isArray(t))return t}(n=t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(n,i)||o(n,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=a[0],c=a[1];if(p(u,{min:-100,max:c,allowDecimals:!1},"".concat(e,"[0] (min)"),r),p(c,{min:u,max:100,allowDecimals:!1},"".concat(e,"[1] (max)"),r),u===c)throw new Error('Invalid "min" can not be equal to "max" property in "'.concat(r,".").concat(e,'".'));return!0},h=function(t,e,r){if("string"!=typeof t||!t.length)throw new Error('Invalid "'.concat(e,'" property in "').concat(r,'". Only strings are accepted.'));return!0},v=1e6,m="[big.js] ",d=m+"Invalid ",b=d+"decimal places",g=d+"rounding mode",w=m+"Division by zero",O={},S=void 0,j=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;function P(t,e,r,n){var o=t.c;if(r===S&&(r=t.constructor.RM),0!==r&&1!==r&&2!==r&&3!==r)throw Error(g);if(e<1)n=3===r&&(n||!!o[0])||0===e&&(1===r&&o[0]>=5||2===r&&(o[0]>5||5===o[0]&&(n||o[1]!==S))),o.length=1,n?(t.e=t.e-e+1,o[0]=1):o[0]=t.e=0;else if(e<o.length){if(n=1===r&&o[e]>=5||2===r&&(o[e]>5||5===o[e]&&(n||o[e+1]!==S||1&o[e-1]))||3===r&&(n||!!o[0]),o.length=e,n)for(;++o[--e]>9;)if(o[e]=0,0===e){++t.e,o.unshift(1);break}for(e=o.length;!o[--e];)o.pop()}return t}function _(t,e,r){var n=t.e,o=t.c.join(""),i=o.length;if(e)o=o.charAt(0)+(i>1?"."+o.slice(1):"")+(n<0?"e":"e+")+n;else if(n<0){for(;++n;)o="0"+o;o="0."+o}else if(n>0)if(++n>i)for(n-=i;n--;)o+="0";else n<i&&(o=o.slice(0,n)+"."+o.slice(n));else i>1&&(o=o.charAt(0)+"."+o.slice(1));return t.s<0&&r?"-"+o:o}function N(t){return N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},N(t)}function A(t){var e="function"==typeof Map?new Map:void 0;return A=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return function(t,e,r){if(x())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var o=new(t.bind.apply(t,n));return r&&k(o,r.prototype),o}(t,arguments,E(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),k(r,t)},A(t)}function x(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(x=function(){return!!t})()}function k(t,e){return k=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},k(t,e)}function E(t){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},E(t)}O.abs=function(){var t=new this.constructor(this);return t.s=1,t},O.cmp=function(t){var e,r=this,n=r.c,o=(t=new r.constructor(t)).c,i=r.s,a=t.s,u=r.e,l=t.e;if(!n[0]||!o[0])return n[0]?i:o[0]?-a:0;if(i!=a)return i;if(e=i<0,u!=l)return u>l^e?1:-1;for(a=(u=n.length)<(l=o.length)?u:l,i=-1;++i<a;)if(n[i]!=o[i])return n[i]>o[i]^e?1:-1;return u==l?0:u>l^e?1:-1},O.div=function(t){var e=this,r=e.constructor,n=e.c,o=(t=new r(t)).c,i=e.s==t.s?1:-1,a=r.DP;if(a!==~~a||a<0||a>v)throw Error(b);if(!o[0])throw Error(w);if(!n[0])return t.s=i,t.c=[t.e=0],t;var u,l,c,s,f,p=o.slice(),y=u=o.length,h=n.length,m=n.slice(0,u),d=m.length,g=t,O=g.c=[],j=0,_=a+(g.e=e.e-t.e)+1;for(g.s=i,i=_<0?0:_,p.unshift(0);d++<u;)m.push(0);do{for(c=0;c<10;c++){if(u!=(d=m.length))s=u>d?1:-1;else for(f=-1,s=0;++f<u;)if(o[f]!=m[f]){s=o[f]>m[f]?1:-1;break}if(!(s<0))break;for(l=d==u?o:p;d;){if(m[--d]<l[d]){for(f=d;f&&!m[--f];)m[f]=9;--m[f],m[d]+=10}m[d]-=l[d]}for(;!m[0];)m.shift()}O[j++]=s?c:++c,m[0]&&s?m[d]=n[y]||0:m=[n[y]]}while((y++<h||m[0]!==S)&&i--);return O[0]||1==j||(O.shift(),g.e--,_--),j>_&&P(g,_,r.RM,m[0]!==S),g},O.eq=function(t){return 0===this.cmp(t)},O.gt=function(t){return this.cmp(t)>0},O.gte=function(t){return this.cmp(t)>-1},O.lt=function(t){return this.cmp(t)<0},O.lte=function(t){return this.cmp(t)<1},O.minus=O.sub=function(t){var e,r,n,o,i=this,a=i.constructor,u=i.s,l=(t=new a(t)).s;if(u!=l)return t.s=-l,i.plus(t);var c=i.c.slice(),s=i.e,f=t.c,p=t.e;if(!c[0]||!f[0])return f[0]?t.s=-l:c[0]?t=new a(i):t.s=1,t;if(u=s-p){for((o=u<0)?(u=-u,n=c):(p=s,n=f),n.reverse(),l=u;l--;)n.push(0);n.reverse()}else for(r=((o=c.length<f.length)?c:f).length,u=l=0;l<r;l++)if(c[l]!=f[l]){o=c[l]<f[l];break}if(o&&(n=c,c=f,f=n,t.s=-t.s),(l=(r=f.length)-(e=c.length))>0)for(;l--;)c[e++]=0;for(l=e;r>u;){if(c[--r]<f[r]){for(e=r;e&&!c[--e];)c[e]=9;--c[e],c[r]+=10}c[r]-=f[r]}for(;0===c[--l];)c.pop();for(;0===c[0];)c.shift(),--p;return c[0]||(t.s=1,c=[p=0]),t.c=c,t.e=p,t},O.mod=function(t){var e,r=this,n=r.constructor,o=r.s,i=(t=new n(t)).s;if(!t.c[0])throw Error(w);return r.s=t.s=1,e=1==t.cmp(r),r.s=o,t.s=i,e?new n(r):(o=n.DP,i=n.RM,n.DP=n.RM=0,r=r.div(t),n.DP=o,n.RM=i,this.minus(r.times(t)))},O.neg=function(){var t=new this.constructor(this);return t.s=-t.s,t},O.plus=O.add=function(t){var e,r,n,o=this,i=o.constructor;if(t=new i(t),o.s!=t.s)return t.s=-t.s,o.minus(t);var a=o.e,u=o.c,l=t.e,c=t.c;if(!u[0]||!c[0])return c[0]||(u[0]?t=new i(o):t.s=o.s),t;if(u=u.slice(),e=a-l){for(e>0?(l=a,n=c):(e=-e,n=u),n.reverse();e--;)n.push(0);n.reverse()}for(u.length-c.length<0&&(n=c,c=u,u=n),e=c.length,r=0;e;u[e]%=10)r=(u[--e]=u[e]+c[e]+r)/10|0;for(r&&(u.unshift(r),++l),e=u.length;0===u[--e];)u.pop();return t.c=u,t.e=l,t},O.pow=function(t){var e=this,r=new e.constructor("1"),n=r,o=t<0;if(t!==~~t||t<-1e6||t>1e6)throw Error(d+"exponent");for(o&&(t=-t);1&t&&(n=n.times(e)),t>>=1;)e=e.times(e);return o?r.div(n):n},O.prec=function(t,e){if(t!==~~t||t<1||t>v)throw Error(d+"precision");return P(new this.constructor(this),t,e)},O.round=function(t,e){if(t===S)t=0;else if(t!==~~t||t<-v||t>v)throw Error(b);return P(new this.constructor(this),t+this.e+1,e)},O.sqrt=function(){var t,e,r,n=this,o=n.constructor,i=n.s,a=n.e,u=new o("0.5");if(!n.c[0])return new o(n);if(i<0)throw Error(m+"No square root");0===(i=Math.sqrt(n+""))||i===1/0?((e=n.c.join("")).length+a&1||(e+="0"),a=((a+1)/2|0)-(a<0||1&a),t=new o(((i=Math.sqrt(e))==1/0?"5e":(i=i.toExponential()).slice(0,i.indexOf("e")+1))+a)):t=new o(i+""),a=t.e+(o.DP+=4);do{r=t,t=u.times(r.plus(n.div(r)))}while(r.c.slice(0,a).join("")!==t.c.slice(0,a).join(""));return P(t,(o.DP-=4)+t.e+1,o.RM)},O.times=O.mul=function(t){var e,r=this,n=r.constructor,o=r.c,i=(t=new n(t)).c,a=o.length,u=i.length,l=r.e,c=t.e;if(t.s=r.s==t.s?1:-1,!o[0]||!i[0])return t.c=[t.e=0],t;for(t.e=l+c,a<u&&(e=o,o=i,i=e,c=a,a=u,u=c),e=new Array(c=a+u);c--;)e[c]=0;for(l=u;l--;){for(u=0,c=a+l;c>l;)u=e[c]+i[l]*o[c-l-1]+u,e[c--]=u%10,u=u/10|0;e[c]=u}for(u?++t.e:e.shift(),l=e.length;!e[--l];)e.pop();return t.c=e,t},O.toExponential=function(t,e){var r=this,n=r.c[0];if(t!==S){if(t!==~~t||t<0||t>v)throw Error(b);for(r=P(new r.constructor(r),++t,e);r.c.length<t;)r.c.push(0)}return _(r,!0,!!n)},O.toFixed=function(t,e){var r=this,n=r.c[0];if(t!==S){if(t!==~~t||t<0||t>v)throw Error(b);for(t=t+(r=P(new r.constructor(r),t+r.e+1,e)).e+1;r.c.length<t;)r.c.push(0)}return _(r,!1,!!n)},O[Symbol.for("nodejs.util.inspect.custom")]=O.toJSON=O.toString=function(){var t=this,e=t.constructor;return _(t,t.e<=e.NE||t.e>=e.PE,!!t.c[0])},O.toNumber=function(){var t=Number(_(this,!0,!0));if(!0===this.constructor.strict&&!this.eq(t.toString()))throw Error(m+"Imprecise conversion");return t},O.toPrecision=function(t,e){var r=this,n=r.constructor,o=r.c[0];if(t!==S){if(t!==~~t||t<1||t>v)throw Error(d+"precision");for(r=P(new n(r),t,e);r.c.length<t;)r.c.push(0)}return _(r,t<=r.e||r.e<=n.NE||r.e>=n.PE,!!o)},O.valueOf=function(){var t=this,e=t.constructor;if(!0===e.strict)throw Error(m+"valueOf disallowed");return _(t,t.e<=e.NE||t.e>=e.PE,!0)},function t(){function e(r){var n=this;if(!(n instanceof e))return r===S?t():new e(r);if(r instanceof e)n.s=r.s,n.e=r.e,n.c=r.c.slice();else{if("string"!=typeof r){if(!0===e.strict&&"bigint"!=typeof r)throw TypeError(d+"value");r=0===r&&1/r<0?"-0":String(r)}!function(t,e){var r,n,o;if(!j.test(e))throw Error(d+"number");for(t.s="-"==e.charAt(0)?(e=e.slice(1),-1):1,(r=e.indexOf("."))>-1&&(e=e.replace(".","")),(n=e.search(/e/i))>0?(r<0&&(r=n),r+=+e.slice(n+1),e=e.substring(0,n)):r<0&&(r=e.length),o=e.length,n=0;n<o&&"0"==e.charAt(n);)++n;if(n==o)t.c=[t.e=0];else{for(;o>0&&"0"==e.charAt(--o););for(t.e=r-n-1,t.c=[],r=0;n<=o;)t.c[r++]=+e.charAt(n++)}}(n,r)}n.constructor=e}return e.prototype=O,e.DP=20,e.RM=1,e.NE=-7,e.PE=21,e.strict=!1,e.roundDown=0,e.roundHalfUp=1,e.roundHalfEven=2,e.roundUp=3,e}();var T=function(t){function e(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Not enough data";return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),t=function(t,e,r){return e=E(e),function(t,e){if(e&&("object"==N(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,x()?Reflect.construct(e,r||[],E(t).constructor):e.apply(t,r))}(this,e,[r]),Object.setPrototypeOf(t,(this instanceof e?this.constructor:void 0).prototype),t.name="NotEnoughDataError",t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&k(t,e)}(e,t),r=e,Object.defineProperty(r,"prototype",{writable:!1}),r;var r}(A(Error));function M(t){return M="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},M(t)}function I(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,R(n.key),n)}}function D(t,e,r){return(e=R(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function R(t){var e=function(t,e){if("object"!=M(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=M(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==M(e)?e:e+""}var C=function(){return t=function t(){(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),D(this,"previousHighest",void 0),D(this,"highest",void 0),D(this,"previousLowest",void 0),D(this,"lowest",void 0),D(this,"previousResult",void 0),D(this,"result",void 0)},(e=[{key:"isStable",get:function(){return void 0!==this.result}},{key:"getResult",value:function(){if(void 0===this.result)throw new T;return this.result}},{key:"setResult",value:function(t,e){return e&&(this.highest=this.previousHighest,this.lowest=this.previousLowest,this.result=this.previousResult),void 0===this.highest?this.highest=t:t>this.highest?(this.previousHighest=this.highest,this.highest=t):this.previousHighest=this.highest,void 0===this.lowest?this.lowest=t:t<this.lowest?(this.previousLowest=this.lowest,this.lowest=t):this.previousLowest=this.lowest,this.previousResult=this.result,this.result=t}},{key:"replace",value:function(t){return this.update(t,!0)}}])&&I(t.prototype,e),r&&I(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function F(t){return F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},F(t)}function B(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,q(n.key),n)}}function L(t,e,r){return e=V(e),function(t,e){if(e&&("object"==F(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,U()?Reflect.construct(e,r||[],V(t).constructor):e.apply(t,r))}function U(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(U=function(){return!!t})()}function V(t){return V=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},V(t)}function H(t,e){return H=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},H(t,e)}function q(t){var e=function(t,e){if("object"!=F(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=F(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==F(e)?e:e+""}var $=function(t){function e(t){var r,n,o,i;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),n=r=L(this,e),i=void 0,(o=q(o="interval"))in n?Object.defineProperty(n,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[o]=i,r.interval=t,r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&H(t,e)}(e,t),r=e,(n=[{key:"updates",value:function(t){var e=this;return t.forEach((function(t){return e.update(t)})),this.result}},{key:"replace",value:function(t){return this.update(t,!0)}}])&&B(r.prototype,n),o&&B(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(C);function K(t){return K="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},K(t)}function z(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Z(n.key),n)}}function G(t,e,r){return e=J(e),function(t,e){if(e&&("object"==K(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,Y()?Reflect.construct(e,r||[],J(t).constructor):e.apply(t,r))}function Y(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Y=function(){return!!t})()}function J(t){return J=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},J(t)}function W(t,e){return W=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},W(t,e)}function Z(t){var e=function(t,e){if("object"!=K(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=K(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==K(e)?e:e+""}var Q=function(t){function e(){var t,r,n,o;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);for(var i=arguments.length,a=new Array(i),u=0;u<i;u++)a[u]=arguments[u];return r=t=G(this,e,[].concat(a)),o=[],(n=Z(n="prices"))in r?Object.defineProperty(r,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):r[n]=o,t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&W(t,e)}(e,t),r=e,n=[{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.prices.length&&e?this.prices[this.prices.length-1]=t:this.prices.push(t),this.prices.length>this.interval&&this.prices.shift(),this.prices.length===this.interval){var r=this.prices.reduce((function(t,e){return t+e}),0);return this.setResult(r/this.prices.length,e)}}}],n&&z(r.prototype,n),o&&z(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}($);function X(t){return X="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},X(t)}function tt(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,at(n.key),n)}}function et(t,e,r){return e=nt(e),function(t,e){if(e&&("object"==X(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,rt()?Reflect.construct(e,r||[],nt(t).constructor):e.apply(t,r))}function rt(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(rt=function(){return!!t})()}function nt(t){return nt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},nt(t)}function ot(t,e){return ot=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},ot(t,e)}function it(t,e,r){return(e=at(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function at(t){var e=function(t,e){if("object"!=X(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=X(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==X(e)?e:e+""}var ut=function(t){function e(t){var r;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),it(r=et(this,e),"interval",void 0),it(r,"indicator",void 0),it(r,"smoothingFactor",void 0),r.interval=t,r.indicator=new Q(t),r.smoothingFactor=1/r.interval,r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&ot(t,e)}(e,t),r=e,n=[{key:"updates",value:function(t){var e=this;return t.forEach((function(t){return e.update(t)})),this.result}},{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.indicator.update(t);if(e&&void 0!==this.previousResult){var n=(t-this.previousResult)*this.smoothingFactor;return this.setResult(n+this.previousResult,e)}if(!e&&void 0!==this.result){var o=(t-this.result)*this.smoothingFactor;return this.setResult(o+this.result,e)}if(void 0===this.result&&void 0!==r)return this.setResult(r,e)}}],n&&tt(r.prototype,n),o&&tt(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(C);function lt(t){return t.length?t.reduce((function(t,e){return t+e}),0)/t.length:0}function ct(t){return ct="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ct(t)}function st(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,mt(n.key),n)}}function ft(t,e,r){return e=yt(e),function(t,e){if(e&&("object"==ct(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,pt()?Reflect.construct(e,r||[],yt(t).constructor):e.apply(t,r))}function pt(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(pt=function(){return!!t})()}function yt(t){return yt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},yt(t)}function ht(t,e){return ht=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},ht(t,e)}function vt(t,e,r){return(e=mt(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function mt(t){var e=function(t,e){if("object"!=ct(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=ct(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ct(e)?e:e+""}var dt=function(t){function e(){var t;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return vt(t=ft(this,e,[].concat(n)),"previousCandle",void 0),vt(t,"twoPreviousCandle",void 0),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&ht(t,e)}(e,t),r=e,n=[{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=t.high,n=t.low,o=r-n;if(this.previousCandle&&e&&(this.previousCandle=this.twoPreviousCandle),this.previousCandle){var i=Math.abs(r-this.previousCandle.close),a=Math.abs(n-this.previousCandle.close);return this.twoPreviousCandle=this.previousCandle,this.previousCandle=t,this.setResult(Math.max(o,i,a),e)}return this.twoPreviousCandle=this.previousCandle,this.previousCandle=t,this.setResult(o,e)}}],n&&st(r.prototype,n),o&&st(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(C);function bt(t){return bt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},bt(t)}function gt(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,_t(n.key),n)}}function wt(t,e,r){return e=St(e),function(t,e){if(e&&("object"==bt(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,Ot()?Reflect.construct(e,r||[],St(t).constructor):e.apply(t,r))}function Ot(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Ot=function(){return!!t})()}function St(t){return St=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},St(t)}function jt(t,e){return jt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},jt(t,e)}function Pt(t,e,r){return(e=_t(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function _t(t){var e=function(t,e){if("object"!=bt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=bt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==bt(e)?e:e+""}var Nt=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ut;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),Pt(r=wt(this,e),"interval",void 0),Pt(r,"tr",void 0),Pt(r,"smoothing",void 0),r.interval=t,r.tr=new dt,r.smoothing=new n(t),r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&jt(t,e)}(e,t),r=e,n=[{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.tr.update(t,e);if(this.smoothing.update(r,e),this.smoothing.isStable)return this.setResult(this.smoothing.getResult(),e)}}],n&&gt(r.prototype,n),o&&gt(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(C);function At(t){return At="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},At(t)}function xt(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Dt(n.key),n)}}function kt(t,e,r){return e=Tt(e),function(t,e){if(e&&("object"==At(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,Et()?Reflect.construct(e,r||[],Tt(t).constructor):e.apply(t,r))}function Et(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Et=function(){return!!t})()}function Tt(t){return Tt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Tt(t)}function Mt(t,e){return Mt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Mt(t,e)}function It(t,e,r){return(e=Dt(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Dt(t){var e=function(t,e){if("object"!=At(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=At(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==At(e)?e:e+""}var Rt=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ut;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),It(r=kt(this,e),"interval",void 0),It(r,"movesUp",void 0),It(r,"movesDown",void 0),It(r,"previousCandle",void 0),It(r,"atr",void 0),It(r,"mdi",void 0),It(r,"pdi",void 0),r.interval=t,r.atr=new Nt(r.interval,n),r.movesDown=new n(r.interval),r.movesUp=new n(r.interval),r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Mt(t,e)}(e,t),r=e,n=[{key:"updateState",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;this.atr.update(t),this.movesUp.update(e),this.movesDown.update(r),this.previousCandle=t}},{key:"update",value:function(t){if(this.previousCandle){var e=t.high,r=this.previousCandle.high,n=t.low,o=e-r,i=this.previousCandle.low-n,a=o<0||o<i?0:o,u=i<0||i<o?0:i;if(this.updateState(t,a,u),this.movesUp.isStable){this.pdi=this.movesUp.getResult()/this.atr.getResult(),this.mdi=this.movesDown.getResult()/this.atr.getResult();var l=Math.abs(this.pdi-this.mdi),c=this.pdi+this.mdi;return 0===c?this.setResult(0,!1):this.setResult(l/c*100,!1)}}else this.updateState(t)}}],n&&xt(r.prototype,n),o&&xt(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(C);function Ct(t){return Ct="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ct(t)}function Ft(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,qt(n.key),n)}}function Bt(t,e,r){return e=Ut(e),function(t,e){if(e&&("object"==Ct(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,Lt()?Reflect.construct(e,r||[],Ut(t).constructor):e.apply(t,r))}function Lt(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Lt=function(){return!!t})()}function Ut(t){return Ut=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Ut(t)}function Vt(t,e){return Vt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Vt(t,e)}function Ht(t,e,r){return(e=qt(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function qt(t){var e=function(t,e){if("object"!=Ct(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Ct(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Ct(e)?e:e+""}var $t=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ut;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),Ht(r=Bt(this,e),"interval",void 0),Ht(r,"dx",void 0),Ht(r,"adx",void 0),r.interval=t,r.adx=new n(r.interval),r.dx=new Rt(t,n),r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Vt(t,e)}(e,t),r=e,n=[{key:"mdi",get:function(){return this.dx.mdi}},{key:"pdi",get:function(){return this.dx.pdi}},{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.dx.update(t);if(void 0!==r&&this.adx.update(r),this.adx.isStable)return this.setResult(this.adx.getResult(),e)}}],n&&Ft(r.prototype,n),o&&Ft(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(C);function Kt(t){return Kt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Kt(t)}function zt(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Yt(n.key),n)}}function Gt(t,e,r){return(e=Yt(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Yt(t){var e=function(t,e){if("object"!=Kt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Kt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Kt(e)?e:e+""}var Jt=function(){return t=function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),Gt(this,"interval",void 0),Gt(this,"deviationMultiplier",void 0),Gt(this,"prices",[]),Gt(this,"result",void 0),this.interval=e,this.deviationMultiplier=r},(e=[{key:"update",value:function(t){if(this.prices.push(t),this.prices.length>this.interval){this.prices.shift();var e=lt(this.prices),r=function(t,e){var r=e||lt(t),n=lt(t.map((function(t){return t-r})).map((function(t){return t*t})));return Math.sqrt(n)}(this.prices,e);return this.result={lower:e-r*this.deviationMultiplier,middle:e,upper:e+r*this.deviationMultiplier}}}},{key:"getResult",value:function(){if(void 0===this.result)throw new T;return this.result}},{key:"isStable",get:function(){return void 0!==this.result}}])&&zt(t.prototype,e),r&&zt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Wt(t){return Wt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Wt(t)}function Zt(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,ne(n.key),n)}}function Qt(t,e,r){return e=te(e),function(t,e){if(e&&("object"==Wt(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,Xt()?Reflect.construct(e,r||[],te(t).constructor):e.apply(t,r))}function Xt(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Xt=function(){return!!t})()}function te(t){return te=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},te(t)}function ee(t,e){return ee=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},ee(t,e)}function re(t,e,r){return(e=ne(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ne(t){var e=function(t,e){if("object"!=Wt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Wt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Wt(e)?e:e+""}var oe=function(t){function e(t){var r;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),re(r=Qt(this,e,[t]),"interval",void 0),re(r,"pricesCounter",0),re(r,"weightFactor",void 0),r.interval=t,r.weightFactor=2/(r.interval+1),r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&ee(t,e)}(e,t),r=e,n=[{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e?e&&0===this.pricesCounter&&this.pricesCounter++:this.pricesCounter++,e&&void 0!==this.previousResult?this.setResult(t*this.weightFactor+this.previousResult*(1-this.weightFactor),e):this.setResult(t*this.weightFactor+(void 0!==this.result?this.result:t)*(1-this.weightFactor),e)}},{key:"getResult",value:function(){if(this.pricesCounter<this.interval)throw new T;return this.result}},{key:"isStable",get:function(){try{return this.getResult(),!0}catch(t){return!1}}}],n&&Zt(r.prototype,n),o&&Zt(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}($);function ie(t){return ie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ie(t)}function ae(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,le(n.key),n)}}function ue(t,e,r){return(e=le(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function le(t){var e=function(t,e){if("object"!=ie(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=ie(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ie(e)?e:e+""}var ce=function(){return t=function t(e,r,n){(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),ue(this,"short",void 0),ue(this,"long",void 0),ue(this,"signal",void 0),ue(this,"prices",[]),ue(this,"result",void 0),this.short=e,this.long=r,this.signal=n},e=[{key:"getResult",value:function(){if(void 0===this.result)throw new T;return this.result}},{key:"isStable",get:function(){return void 0!==this.result}},{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.prices.length&&e?this.prices[this.prices.length-1]=t:this.prices.push(t);var r=this.short.update(t,e),n=this.long.update(t,e);if(this.prices.length>this.long.interval&&this.prices.shift(),this.prices.length===this.long.interval){var o=r-n,i=this.signal.update(o,e);return this.result={histogram:o-i,macd:o,signal:i}}}}],e&&ae(t.prototype,e),r&&ae(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function se(t){return se="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},se(t)}function fe(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,de(n.key),n)}}function pe(t,e,r){return e=he(e),function(t,e){if(e&&("object"==se(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,ye()?Reflect.construct(e,r||[],he(t).constructor):e.apply(t,r))}function ye(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(ye=function(){return!!t})()}function he(t){return he=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},he(t)}function ve(t,e){return ve=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},ve(t,e)}function me(t,e,r){return(e=de(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function de(t){var e=function(t,e){if("object"!=se(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=se(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==se(e)?e:e+""}var be=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ut;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),me(r=pe(this,e),"interval",void 0),me(r,"previousPrices",[]),me(r,"avgGain",void 0),me(r,"avgLoss",void 0),me(r,"maxValue",100),r.interval=t,r.avgGain=new n(r.interval),r.avgLoss=new n(r.interval),r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&ve(t,e)}(e,t),r=e,n=[{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.previousPrices.length&&e?this.previousPrices[this.previousPrices.length-1]=t:this.previousPrices.push(t),!(this.previousPrices.length<2)){var r=t,n=this.previousPrices[this.previousPrices.length-2];if(r>n?(this.avgLoss.update(0,e),this.avgGain.update(t-n,e)):(this.avgLoss.update(n-r,e),this.avgGain.update(0,e)),this.avgGain.isStable){var o=this.avgLoss.getResult();if(0===o)return this.setResult(100,e);var i=this.avgGain.getResult()/o;return this.setResult(this.maxValue-this.maxValue/(i+1),e)}}}}],n&&fe(r.prototype,n),o&&fe(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(C);function ge(t){return ge="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ge(t)}function we(t){return function(t){if(Array.isArray(t))return Oe(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return Oe(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Oe(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Oe(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function Se(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Pe(n.key),n)}}function je(t,e,r){return(e=Pe(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Pe(t){var e=function(t,e){if("object"!=ge(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=ge(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ge(e)?e:e+""}var _e=function(){return t=function t(e,r,n){(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),je(this,"n",void 0),je(this,"m",void 0),je(this,"p",void 0),je(this,"candles",[]),je(this,"result",void 0),je(this,"periodM",void 0),je(this,"periodP",void 0),this.n=e,this.m=r,this.p=n,this.periodM=new Q(r),this.periodP=new Q(n)},(e=[{key:"getResult",value:function(){if(void 0===this.result)throw new T;return this.result}},{key:"isStable",get:function(){return void 0!==this.result}},{key:"update",value:function(t){if(this.candles.push(t),this.candles.length>this.n&&this.candles.shift(),this.candles.length===this.n){var e=Math.max.apply(Math,we(this.candles.map((function(t){return t.high})))),r=Math.min.apply(Math,we(this.candles.map((function(t){return t.low})))),n=e-r,o=100*(t.close-r);o/=0===n?1:n;var i=this.periodM.update(o),a=i&&this.periodP.update(i);if(void 0!==i&&void 0!==a)return this.result={stochD:a,stochK:i}}}}])&&Se(t.prototype,e),r&&Se(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}(),Ne=function(t,e){var r,n=Math.log(t/e);if(null==(r=n)||!Number.isFinite(r))throw new Error("[BUG] Invalid params passed to mathLog a=".concat(t," b=").concat(e,"."));return n};function Ae(t){return Ae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ae(t)}function xe(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=Ae(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Ae(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Ae(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ke(t){return ke="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ke(t)}function Ee(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=ke(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=ke(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ke(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var Te={ema:oe,sma:Q},Me=function(t,e,r,n,o){var i=o.target,a=o.lag,u=t.verticalOhlcv,l=t.instances,c=t.priceBased,s="close"!==i?"_".concat(i):"",f="".concat(r,"_").concat(n).concat(s);if(0===e){var p=t.len;if(!u.hasOwnProperty(i))throw new Error("Target property ".concat(i," not found in verticalOhlcv for ").concat(r,"."));l[f]=new Te[r](n),u[f]=new Float64Array(p).fill(NaN),c.has(i)&&c.add(f),a>0&&t.lag([f],a)}var y=u[i][e],h=l[f];h.update(y);var v=NaN;try{v=h.getResult()}catch(t){}return t.pushToMain({index:e,key:f,value:v}),!0};function Ie(t){return Ie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ie(t)}function De(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Re(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=Ie(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Ie(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Ie(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ce(t,e){if(t){if("string"==typeof t)return Fe(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Fe(t,e):void 0}}function Fe(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function Be(t){return function(t){if(Array.isArray(t))return Le(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return Le(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Le(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Le(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function Ue(t){return Ue="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ue(t)}function Ve(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=Ue(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Ue(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Ue(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function He(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var qe="close";function $e(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function Ke(t){return Ke="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ke(t)}function ze(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Ge(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=Ke(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Ke(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Ke(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ye(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return Je(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Je(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function Je(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function We(t){return We="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},We(t)}function Ze(t){return Ze="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ze(t)}function Qe(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(t,e)||function(t,e){if(t){if("string"==typeof t)return Xe(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Xe(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Xe(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var tr=function(t,e){if("string"!=typeof t)throw new Error("addPrecisionExact expects a string when precision=true");var r="-"===t.charAt(0),n=Qe((r?t.slice(1):t).split("."),2),o=n[0],i=n[1],a=void 0===i?"":i,u=String(e),l=1===e?0:u.length-1,c=a.padEnd(l,"0").slice(0,l),s=parseInt(o+c||"0",10);return r&&(s=-s),s};function er(t){return er="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},er(t)}var rr={number:function(t){return t},numberCleanString:function(t){return Number(t)},precisionNumberCleanString:function(t,e){return tr(t,e)}},nr=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n="number"==typeof t&&!Number.isNaN(t),o="string"==typeof t&&/^-?\d+(\.\d+)?$/.test(t);if(!0===r){if(o)return"precisionNumberCleanString";if(e)throw new Error("Invalid number forma");return er(t)}if(n)return"number";if(o)return"numberCleanString";if(e)throw new TypeError("Invalid input: expected a number or numeric string");return er(t)};function or(t){return or="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},or(t)}var ir={toString:function(t){return t.toString()},string:function(t){return t.toString()},toISOString:function(t){return t.toISOString()},iso:function(t){return t.toISOString()},toUTCString:function(t){return t.toUTCString()},milliseconds:function(t){return t.getTime()},seconds:function(t){return t.getTime()/1e3},object:function(t){return t}},ar={dateObject:function(t){return t},dateMilliseconds:function(t){return new Date(t)},dateSeconds:function(t){return new Date(1e3*t)},dateIncompleteDayString:function(t){return new Date("".concat(t," 00:00:00"))},dateCompleteDateString:function(t){return new Date(t)}},ur=function(t){var e=["Date -> object","Milliseconds Timestamp -> integer","Seconds Timestamp -> integer","UTC Time Format (ISO 8601) -> string","Including a Timezone Offset (ISO 8601) -> string","Local Time Format (ISO 8601) -> string","YYYY/MM/DD or YYYY-MM-DD -> string"],r=function(){throw new Error('Invalid "'.concat(or(t),'" date value passed in selectDateFormatter. Supported formats: \n-').concat(e.join("\n- ")))};if("object"===or(t)){if(t instanceof Date&&!isNaN(t.valueOf()))return"dateObject";r()}else{if("number"==typeof t)return Math.abs(t)<1e11?"dateSeconds":"dateMillseconds";if("string"==typeof t){if(/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/i.test(t)||/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?([+-]\d{2}:\d{2})$/.test(t)||/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?$/.test(t)&&t.length>10||/^\d{4}\/\d{2}\/\d{2}$/.test(t))return"dateCompleteDateString";if(/^\d{4}-\d{2}-\d{2}$/.test(t))return"dateIncompleteDayString";r()}else r()}};function lr(t){return lr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lr(t)}function cr(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(t,e)||sr(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function sr(t,e){if(t){if("string"==typeof t)return fr(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?fr(t,e):void 0}}function fr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var pr=function(t,e,r){var n,o={Array,Float64Array,Float32Array,Int32Array,Uint8Array,Int8Array,Int16Array}[t];if(!o||"function"!=typeof o.from)throw new Error("Unsupported array type: ".concat(t));return n=void 0!==r?r:"Array"===t?null:NaN,o.from({length:e},(function(){return n}))},yr=function(t,e){if(!e||"object"!==lr(e))throw new TypeError('Invalid array type: "'.concat(t,'"'));return e.constructor.name};function hr(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return vr(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?vr(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function vr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function mr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var dr=function(t,e){var r=new Uint8Array(e);return r[t]=1,r},br=function(t,e,r,n){var o,i,a=(i=2,function(t){if(Array.isArray(t))return t}(o=n)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(o,i)||function(t,e){if(t){if("string"==typeof t)return mr(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?mr(t,e):void 0}}(o,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=a[0],l=a[1];return(Math.min(Math.max(t,e),r)-e)/(r-e)*(l-u)+u},gr=function(t,e,r){return 0===r?0:(t-e)/r};function wr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function Or(t){return Or="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Or(t)}function Sr(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,jr(n.key),n)}}function jr(t){var e=function(t,e){if("object"!=Or(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Or(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Or(e)?e:e+""}var Pr=function(t,e){return t>e},_r=function(t,e){return t<e},Nr=function(){return t=function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),Object.assign(this,{interval:0,prevState:.5,prevFast:NaN,prevSlow:NaN,prevHigh:NaN,prevLow:NaN,areHighAndLowUndefined:!1,crossIndexes:{up:[],down:[]}})},(e=[{key:"update",value:function(t,e){var r=e.fast,n=e.high,o=e.slow,i=e.low,a=this.prevState;this.areHighAndLowUndefined||void 0!==n&&void 0!==i||(this.areHighAndLowUndefined=!0),Number.isNaN(r)||Number.isNaN(o)||function(t,e){return t===e}(r,o)?a=.5:Pr(r,o)?a=this.areHighAndLowUndefined?1:[i,o,this.prevLow,this.prevSlow].every((function(t){return!Number.isNaN(t)}))&&_r(i,o)&&Pr(this.prevLow,this.prevSlow)?0:1:_r(r,o)&&(a=this.areHighAndLowUndefined?0:[n,o,this.prevHigh,this.prevSlow].every((function(t){return!Number.isNaN(t)}))&&Pr(n,o)&&_r(this.prevHigh,this.prevSlow)?1:0),.5===a?this.interval=0:1===a?this.prevState<=.5?this.interval=1:this.interval++:0===a&&(this.prevState>=.5?this.interval=-1:this.interval--),1===this.interval&&this.crossIndexes.up.push(t),-1===this.interval&&this.crossIndexes.down.push(t),Object.assign(this,{prevState:a,prevFast:r,prevSlow:o,prevHigh:n,prevLow:i})}},{key:"getResult",value:function(){return this.interval}}])&&Sr(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}();function Ar(t){return Ar="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ar(t)}function xr(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(t,e)||Mr(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function kr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Er(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?kr(Object(r),!0).forEach((function(e){Tr(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):kr(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function Tr(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=Ar(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Ar(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Ar(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Mr(t,e){if(t){if("string"==typeof t)return Ir(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ir(t,e):void 0}}function Ir(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function Dr(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(t,e)||Cr(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Rr(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Cr(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function Cr(t,e){if(t){if("string"==typeof t)return Fr(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Fr(t,e):void 0}}function Fr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var Br=function(t){return null==t||!Number.isFinite(t)};function Lr(t){return Lr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Lr(t)}function Ur(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=Lr(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Lr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Lr(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Vr(t,e){if(t){if("string"==typeof t)return Hr(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Hr(t,e):void 0}}function Hr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var qr=function(t){var e=t.main,r=t.index,n=e.verticalOhlcv,o=n.close[r],i=n.open[r-1];return{change:(o-i)/i*100}};function $r(t){return $r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$r(t)}function Kr(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=zr(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function zr(t,e){if(t){if("string"==typeof t)return Gr(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Gr(t,e):void 0}}function Gr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function Yr(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=$r(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=$r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==$r(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Jr(t){return function(t){if(Array.isArray(t))return Xr(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||Qr(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Wr(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Qr(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function Zr(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(t,e)||Qr(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qr(t,e){if(t){if("string"==typeof t)return Xr(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Xr(t,e):void 0}}function Xr(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var tn={priceFeatures:function(t,e,r){var n=r.lag,o=r.colKeys,i=r.retLogs,a=t.verticalOhlcv,u=t.priceBased,l=t.scaledGroups,c=function(t,e){return i?Math.log(t/e):(t-e)/e},s=i?"ret_log_":"ret_";if(0===e){var f,p=t.len,y=Yr(Yr(Yr(Yr(Yr(Yr(Yr({},"".concat(s,"change"),new Float64Array(p).fill(NaN)),"".concat(s,"mid_price_change"),new Float64Array(p).fill(NaN)),"".concat(s,"upper_wick"),new Float64Array(p).fill(NaN)),"".concat(s,"lower_wick"),new Float64Array(p).fill(NaN)),"".concat(s,"gap"),new Float64Array(p).fill(NaN)),"".concat(s,"body"),new Float64Array(p).fill(NaN)),"".concat(s,"range"),new Float64Array(p).fill(NaN)),h=Kr(o);try{for(h.s();!(f=h.n()).done;){var v=f.value;if(!a.hasOwnProperty(v))throw new Error('Target property in "options.colKey" array "'.concat(v,'" not found in verticalOhlcv for "priceFeatures".'));if(!u.has(v))throw new Error('Target property in "options.colKey" array "'.concat(v,'" not found in priceBased for "priceFeatures".'));y["".concat(s).concat(v)]=new Float64Array(p).fill(NaN)}}catch(t){h.e(t)}finally{h.f()}Object.assign(a,y),l.priceFeatures=Object.keys(y),n&&t.lag(Object.keys(y),n)}var m,d,b=a.close[e-1],g=a.open[e-1];if(void 0!==b){var w,O,S=a.open[e],j=a.high[e],P=a.low[e],_=a.close[e],N=(b+g)/2,A=(S+_)/2,x=Math.max(S,_),k=Math.min(S,_),E=Yr(Yr(Yr(Yr(Yr(Yr(Yr({},"".concat(s,"change"),c(_,b)),"".concat(s,"mid_price_change"),c(A,N)),"".concat(s,"upper_wick"),c(j,x)),"".concat(s,"lower_wick"),c(k,P)),"".concat(s,"gap"),c(S,b)),"".concat(s,"body"),c(_,S)),"".concat(s,"range"),c(j,P)),T=!1,M=Kr(o);try{for(M.s();!(w=M.n()).done;){var I=w.value,D=a[I][e];if(null==(O=D)||!Number.isFinite(O)){T=!0;break}var R=c(_,D);E["".concat(s).concat(I)]=R}}catch(t){M.e(t)}finally{M.f()}if(!T)for(var C=0,F=Object.entries(E);C<F.length;C++){var B=(m=F[C],d=2,function(t){if(Array.isArray(t))return t}(m)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(m,d)||zr(m,d)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),L=B[0],U=B[1];t.pushToMain({index:e,key:L,value:U})}}},dateTime:function(t,e,r){var n,o=r.lag,i=r.oneHot,a=r.precompute,u=t.instances,l=t.verticalOhlcv,c=a.prefix;if(0===e){var s=t.len;if(!t.dateType)throw Error('dateTime method found and invalid "date" in input ohlcv');Object.assign(u,{dateTime:{colKeys:[].concat((n=a.colKeys,function(t){if(Array.isArray(t))return Ir(t)}(n)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(n)||Mr(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),["".concat(c,"year")]),colKeySizes:Er({},a.colKeySizes)}});var f,p=u.dateTime.colKeys,y=i?Array:Int16Array,h=i?null:NaN,v=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Mr(t))){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(p);try{for(v.s();!(f=v.n()).done;)l[f.value]=new y(s).fill(h)}catch(t){v.e(t)}finally{v.f()}o>0&&t.lag(p,o)}for(var m=u.dateTime.colKeySizes,d=function(t,e,r){var n=t.getFullYear(),o=t.getMonth(),i=t.getHours(),a=t.getMinutes(),u=t.getDay(),l=t.getDate()-1;return e?{one_hot_month:dr(o,r.one_hot_month),one_hot_hour:dr(i,r.one_hot_hour),one_hot_minute:dr(a,r.one_hot_minute),one_hot_day_of_the_week:dr(u,r.one_hot_day_of_the_week),one_hot_day_of_the_month:dr(l,r.one_hot_day_of_the_month)}:{year:n,month:o+1,hour:i,minute:a,day_of_the_week:(u+6)%7+1,day_of_the_month:l+1}}(l.date[e],i,m),b=0,g=Object.entries(d);b<g.length;b++){var w=xr(g[b],2),O=w[0],S=w[1];t.pushToMain({index:e,key:O,value:S})}},heikenAshi:function(t,e,r,n){var o,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},a=i.lag,u=void 0===a?0:a,l=i.bothNull,c=void 0!==l&&l,s=t.verticalOhlcv,f=t.instances,p=t.len,y=t.priceBased,h="".concat(r,"_").concat(n),v=["open","high","low","close"],m=function(t){return c?"heiken_ashi_".concat(t):"heiken_ashi_".concat(t,"_").concat(h)},d=c?"heiken_ashi_cross":"heiken_ashi_cross_".concat(h),b=c?"heiken_ashi":"heiken_ashi_".concat(h);if(0===e){f[b]={emaPre:c?null:Object.fromEntries(v.map((function(t){return[t,new oe(r)]}))),emaPost:c?null:Object.fromEntries(v.map((function(t){return[t,new oe(n)]}))),prevHaOpen:NaN,prevHaClose:NaN,isTrendUp:!1};var g,w=v.map(m),O=Object.fromEntries([].concat((o=w,function(t){if(Array.isArray(t))return Fe(t)}(o)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(o)||Ce(o)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),[d]).map((function(t){return[t,new Float64Array(p).fill(NaN)]}))),S=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Ce(t))){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(w);try{for(S.s();!(g=S.n()).done;){var j=g.value;y.add(j)}}catch(t){S.e(t)}finally{S.f()}Object.assign(s,function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?De(Object(r),!0).forEach((function(e){Re(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):De(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({},O)),u>0&&t.lag(w,u)}var P,_,N,A,x=s.open[e],k=s.high[e],E=s.low[e],T=s.close[e],M=f[b];if(c)P=x,_=k,N=E,A=T;else{M.emaPre.open.update(x),M.emaPre.high.update(k),M.emaPre.low.update(E),M.emaPre.close.update(T);try{P=M.emaPre.open.getResult(),_=M.emaPre.high.getResult(),N=M.emaPre.low.getResult(),A=M.emaPre.close.getResult()}catch(t){return!0}}var I,D,R,C,F=(P+_+N+A)/4,B=Number.isNaN(M.prevHaOpen)||Number.isNaN(M.prevHaClose)?(P+A)/2:(M.prevHaOpen+M.prevHaClose)/2,L=Math.max(_,B,F),U=Math.min(N,B,F);if(M.prevHaOpen=B,M.prevHaClose=F,c)I=B,D=L,R=U,C=F;else{M.emaPost.open.update(B),M.emaPost.high.update(L),M.emaPost.low.update(U),M.emaPost.close.update(F);try{I=M.emaPost.open.getResult(),D=M.emaPost.high.getResult(),R=M.emaPost.low.getResult(),C=M.emaPost.close.getResult()}catch(t){return!0}}var V=e>0?s[d][e-1]:0,H=e>0?s[m("open")][e-1]:NaN,q=e>0?s[m("close")][e-1]:NaN,$=!Number.isNaN(q)&&q<=H&&C>I,K=!Number.isNaN(q)&&q>=H&&C<I;$&&(M.isTrendUp=!0),K&&(M.isTrendUp=!1);var z=0;return e>0&&(z=M.isTrendUp?V>0?V+1:1:V<0?V-1:-1),t.pushToMain({index:e,key:m("open"),value:I}),t.pushToMain({index:e,key:m("high"),value:D}),t.pushToMain({index:e,key:m("low"),value:R}),t.pushToMain({index:e,key:m("close"),value:C}),t.pushToMain({index:e,key:d,value:z}),!0},rsi:function(t,e,r,n){var o=n.target,i=n.lag,a=n.retLogs,u=t.verticalOhlcv,l=t.instances,c="close"===o?"":"_".concat(o),s=a?"ret_log_rsi_".concat(r).concat(c):"rsi_".concat(r).concat(c),f=a?"ret_log_rsi_sma_".concat(r).concat(c):"rsi_sma_".concat(r).concat(c);if(0===e){var p=t.len;if(!u.hasOwnProperty(o))throw new Error("Target property ".concat(o," not found in verticalOhlcv for rsi."));Object.assign(l,xe(xe({},s,new be(r)),f,new Q(r))),Object.assign(u,xe(xe({},s,new Float64Array(p).fill(NaN)),f,new Float64Array(p).fill(NaN)));var y=[s,f];i>0&&t.lag(y,i)}var h=u[o][e],v=NaN,m=NaN;l[s].update(h);try{v=l[s].getResult()}catch(t){v=NaN}var d=Number.isNaN(v)?NaN:a?Ne(v,50):v;t.pushToMain({index:e,key:s,value:d}),Number.isNaN(v)||l[f].update(v);try{m=l[f].getResult()}catch(t){m=NaN}var b=Number.isNaN(m)?NaN:a?Ne(m,50):m;t.pushToMain({index:e,key:f,value:b})},stochastic:function(t,e,r,n,o,i){var a=i.lag,u=i.retLogs,l=t.verticalOhlcv,c=t.instances,s=t.useFullNames,f=14!==r||3!==n||3!==o||s?"_".concat(r,"_").concat(n,"_").concat(o):"",p=u?"ret_log_stochastic_d".concat(f):"stochastic_d".concat(f),y=u?"ret_log_stochastic_k".concat(f):"stochastic_k".concat(f),h=f;if(0===e){var v=t.len;Object.assign(c,Ee({},h,new _e(r,n,o))),Object.assign(l,Ee(Ee({},p,new Float64Array(v).fill(NaN)),y,new Float64Array(v).fill(NaN)));var m=[p,y];a>0&&t.lag(m,a)}var d=l.close[e],b=l.low[e],g=l.high[e],w=null;c[h].update({close:d,low:b,high:g});try{w=c[h].getResult()}catch(t){w=null}var O=w?u?Ne(w.stochK,50):w.stochK:NaN,S=w?u?Ne(w.stochD,50):w.stochD:NaN;t.pushToMain({index:e,key:y,value:O}),t.pushToMain({index:e,key:p,value:S})},atr:function(t,e,r,n){var o=n.lag,i=n.retLogs,a=t.verticalOhlcv,u=t.instances,l=t.priceBased,c=i?"ret_log_atr_".concat(r):"atr_".concat(r);if(0===e){var s=t.instances,f=t.verticalOhlcv,p=t.len;s[c]=new Nt(r,ut);for(var y=[c],h=0,v=y;h<v.length;h++){var m=v[h];f[m]=new Float64Array(p).fill(NaN),l.add(m)}o>0&&t.lag(y,o)}var d={high:a.high[e],low:a.low[e],close:a.close[e]},b=u[c];b.update(d);var g=NaN;try{g=b.getResult()}catch(t){}return t.pushToMain({index:e,key:c,value:Number.isNaN(g)?NaN:i?Ne(g,d.close):g}),!0},adx:function(t,e,r,n){var o=n.lag,i=n.retLogs,a=t.verticalOhlcv,u=t.instances,l=(t.useFullNames,i?"ret_log_adx_".concat(r):"adx_".concat(r)),c="adx_".concat(r);if(0===e){var s=t.len;if(!a.hasOwnProperty("high"))throw new Error("Property high not found in verticalOhlcv for adx.");if(!a.hasOwnProperty("low"))throw new Error("Property low not found in verticalOhlcv for adx.");if(!a.hasOwnProperty("close"))throw new Error("Property close not found in verticalOhlcv for adx.");Object.assign(u,Ur({},c,new $t(r))),Object.assign(a,Ur({},l,new Float64Array(s).fill(NaN))),o>0&&t.lag([l],o)}var f=a.high[e],p=a.low[e],y=a.close[e],h=NaN;u[c].update({high:f,low:p,close:y});try{h=u[c].getResult(),u[c].get}catch(t){h=NaN}var v=Number.isNaN(h)?NaN:i?Ne(h,25):h;t.pushToMain({index:e,key:l,value:v})},ema:Me,sma:Me,vidya:function(t,e,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},i=t.verticalOhlcv,a=t.instances,u=t.len,l=t.priceBased,c=o.target,s=o.lag,f=o.atrLength,p=void 0===f?200:f,y=o.bandDistance,h=void 0===y?2:y,v=o.liquidityLookback,m=void 0===v?5:v,d="".concat(r,"_").concat(n);if(0===e){if(!(c in i))throw new Error('VIDYA could not find target "'.concat(c,'"'));for(var b="vidya_".concat(d),g="close"===c?b:"".concat(b,"_").concat(c),w={vidya:g,upper:"".concat(b,"_upper"),lower:"".concat(b,"_lower"),delta_vol:"".concat(b,"_delta_vol"),cross:"".concat(b,"_cross"),liquidity:"".concat(b,"_liquidity")},O=0,S=[g,w.upper,w.lower,w.liquidity];O<S.length;O++){var j=S[O];l.add(j)}a.vidya||(a.vidya={settings:{}}),a.vidya.settings[d]={momentumBuffer:[],prevVidya:NaN,sma:new Q(15),atrBuffer:[],isTrendUp:!1,upVol:0,downVol:0,liquidity:{high:[],low:[]}},Object.values(w).forEach((function(t){i[t]=new Float64Array(u).fill(NaN)})),s>0&&t.lag(Object.values(w),s)}var P=a.vidya.settings[d],_="vidya_".concat(d),N={vidya:"close"===c?_:"".concat(_,"_").concat(c),upper:"".concat(_,"_upper"),lower:"".concat(_,"_lower"),delta_vol:"".concat(_,"_delta_vol"),cross:"".concat(_,"_cross"),liquidity:"".concat(_,"_liquidity")},A=i[c][e],x=i.high[e],k=i.low[e],E=i.close[e],T=i.open[e],M=i.volume[e],I=e>0?i[N.cross][e-1]:0,D=P.liquidity.high.length===m?Math.max.apply(Math,Be(P.liquidity.high)):NaN,R=P.liquidity.low.length===m?Math.min.apply(Math,Be(P.liquidity.low)):NaN;if(e>0){var C=i.close[e-1],F=Math.max(x-k,Math.abs(x-C),Math.abs(k-C));P.atrBuffer.push(F),P.atrBuffer.length>p&&P.atrBuffer.shift()}var B=P.atrBuffer.length===p?P.atrBuffer.reduce((function(t,e){return t+e}),0)/p:NaN,L=NaN,U=NaN;if(e>0&&(U=A-i[c][e-1]),P.momentumBuffer.push(U),P.momentumBuffer.length>n&&P.momentumBuffer.shift(),P.momentumBuffer.length===n){var V=0,H=0;P.momentumBuffer.forEach((function(t){return t>=0?V+=t:H+=-t}));var q=V+H,$=2/(r+1)*((0===q?0:100*Math.abs((V-H)/q))/100);L=isNaN(P.prevVidya)?A:$*A+(1-$)*P.prevVidya,P.prevVidya=L}P.sma.update(L);var K=NaN;try{K=P.sma.getResult()}catch(t){}var z=isNaN(B)||isNaN(K)?NaN:K+B*h,G=isNaN(B)||isNaN(K)?NaN:K-B*h,Y=e>0?i[c][e-1]:NaN,J=e>0?i[N.upper][e-1]:NaN,W=e>0?i[N.lower][e-1]:NaN,Z=e>0&&Y<=J&&A>z,X=e>0&&Y>=W&&A<G;Z&&(P.isTrendUp=!0),X&&(P.isTrendUp=!1);var tt=0;e>0&&(tt=P.isTrendUp?I>0?I+1:1:I<0?I-1:-1),Z||X?P.upVol=P.downVol=0:(P.upVol+=E>T?M:0,P.downVol+=E<T?M:0);var et=(P.upVol+P.downVol)/2||1,rt=(P.upVol-P.downVol)/et,nt=P.isTrendUp?G:z,ot=NaN;return tt>0?ot=R:tt<0&&(ot=D),t.pushToMain({index:e,key:N.vidya,value:nt}),t.pushToMain({index:e,key:N.upper,value:z}),t.pushToMain({index:e,key:N.lower,value:G}),t.pushToMain({index:e,key:N.delta_vol,value:rt}),t.pushToMain({index:e,key:N.cross,value:tt}),t.pushToMain({index:e,key:N.liquidity,value:ot}),P.liquidity.high.push(x),P.liquidity.low.push(k),P.liquidity.high.length>m&&P.liquidity.high.shift(),P.liquidity.low.length>m&&P.liquidity.low.shift(),!0},macd:function(t,e,r,n,o,i){var a=i.target,u=i.lag,l=i.precomputed,c=t.verticalOhlcv,s=t.instances,f=t.priceBased,p=t.useFullNames,y=l.instanceKey;if(0===e){var h=t.inputParams,v=t.len;if(!c.hasOwnProperty(a))throw new Error("Target property ".concat(a," not found in verticalOhlcv for macd."));var m,d=0,b=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return He(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?He(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(h);try{for(b.s();!(m=b.n()).done;)"macd"===m.value.key&&d++}catch(t){b.e(t)}finally{b.f()}var g=d>1||p,w="".concat(r,"_").concat(n,"_").concat(o),O=function(t){return a===qe?g?"macd_".concat(t,"_").concat(w):"macd_".concat(t):g?"macd_".concat(t,"_").concat(a,"_").concat(w):"macd_".concat(t,"_").concat(a)},S=O("diff"),j=O("dea"),P=O("histogram");s.hasOwnProperty("macd")||(s.macd={numberOfIndicators:d,settings:{}}),s.macd.settings[y]=new ce(new oe(r),new oe(n),new oe(o)),Object.assign(c,Ve(Ve(Ve({},S,new Float64Array(v).fill(NaN)),j,new Float64Array(v).fill(NaN)),P,new Float64Array(v).fill(NaN)));for(var _=[S,j,P],N=0,A=_;N<A.length;N++){var x=A[N];f.add(x)}u>0&&t.lag(_,u)}var k=s.macd,E=k.numberOfIndicators,T=k.settings,M=E>1||p,I="".concat(r,"_").concat(n,"_").concat(o),D=function(t){return a===qe?M?"macd_".concat(t,"_").concat(I):"macd_".concat(t):M?"macd_".concat(t,"_").concat(a,"_").concat(I):"macd_".concat(t,"_").concat(a)},R=D("diff"),C=D("dea"),F=D("histogram"),B=T[y],L=c[a][e];B.update(L);var U={};try{U=B.getResult()}catch(t){}return t.pushToMain({index:e,key:R,value:U?U.macd:NaN}),t.pushToMain({index:e,key:C,value:U?U.signal:NaN}),t.pushToMain({index:e,key:F,value:U?U.histogram:NaN}),!0},volumeDelta:function(t,e,r){var n=r.lag,o=void 0===n?0:n,i=t.verticalOhlcv,a=t.instances,u=t.len,l="volume_delta";if(0===e){a[l]||(a[l]={isBuyVolume:!0,cross:0});for(var c=["".concat(l,"_open"),"".concat(l,"_high"),"".concat(l,"_low"),"".concat(l,"_close"),"".concat(l,"_cross")],s=0,f=c;s<f.length;s++)i[f[s]]=new Float64Array(u).fill(NaN);o>0&&t.lag(c,o)}var p=a[l],y=i.volume[e],h=i.open[e],v=i.close[e],m=e>0?i.close[e-1]:NaN,d=p.isBuyVolume;v>h?d=!0:v<h?d=!1:v>m?d=!0:v<m&&(d=!1),p.isBuyVolume=d,e<1?p.cross=d?1:-1:d?p.cross>0?p.cross=p.cross+1:p.cross=1:p.cross>0?p.cross=-1:p.cross=p.cross-1;var b=Number.isFinite(y)?d?y:-y:NaN,g=Number.isNaN(b)?NaN:0,w=b,O=Number.isNaN(b)?NaN:Math.max(b,0),S=Number.isNaN(b)?NaN:Math.min(b,0);return t.pushToMain({index:e,key:"".concat(l,"_open"),value:g}),t.pushToMain({index:e,key:"".concat(l,"_high"),value:O}),t.pushToMain({index:e,key:"".concat(l,"_low"),value:S}),t.pushToMain({index:e,key:"".concat(l,"_close"),value:w}),t.pushToMain({index:e,key:"".concat(l,"_cross"),value:p.cross}),!0},relativeVolume:function(t,e,r,n){var o=n.lag,i="relative_volume_".concat(r),a=t.instances,u=t.verticalOhlcv;if(0===e){var l=t.len;a[i]={instance:new Q(r),prevRelativeVolumeSma:NaN},u[i]=new Float64Array(l).fill(NaN),o>0&&t.lag([i],o)}var c=u.volume[e],s=a[i].instance;s.update(c);var f=NaN;try{f=s.getResult()}catch(t){}var p=a[i].prevRelativeVolumeSma,y=NaN;return Number.isNaN(f)||Number.isNaN(p)||(y=c/p),t.pushToMain({index:e,key:i,value:y}),a[i].prevRelativeVolumeSma=f,!0},donchianChannels:function(t,e,r,n,o){var i=t.verticalOhlcv,a=t.instances,u=t.len,l=t.inputParams,c=t.priceBased,s=t.useFullNames,f=o.lag,p=void 0===f?0:f,y="".concat(r,"_").concat(n);if(0===e){var h,v=l.filter((function(t){return"donchianChannels"===t.key})).length,m=v>1||s,d=["upper","basis","lower"].map((function(t){return m?"donchian_channel_".concat(t,"_").concat(y):"donchian_channel_".concat(t)})),b=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return $e(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?$e(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(d);try{for(b.s();!(h=b.n()).done;){var g=h.value;c.add(g)}}catch(t){b.e(t)}finally{b.f()}a.donchian_channel||(a.donchian_channel={numberOfIndicators:v,settings:{}}),a.donchian_channel.numberOfIndicators=v,a.donchian_channel.settings[y]={maxDeque:[],minDeque:[]},Object.assign(i,Object.fromEntries(d.map((function(t){return[t,new Float64Array(u).fill(NaN)]})))),p>0&&t.lag(d,p)}var w=a.donchian_channel,O=w.numberOfIndicators,S=w.settings,j=O>1||s,P=function(t){return j?"donchian_channel_".concat(t,"_").concat(y):"donchian_channel_".concat(t)},_=S[y],N=_.maxDeque,A=_.minDeque,x=e-n,k=x-r+1,E=["upper","basis","lower"].map(P);if(k<0||x+1>u)return E.forEach((function(r){return t.pushToMain({index:e,key:r,value:NaN})})),!0;var T=i.high,M=i.low,I=function(t,e,r){for(;t.length&&t[0]<k;)t.shift();for(;t.length&&r(e[t.at(-1)],e[x]);)t.pop();t.push(x)};I(N,T,(function(t,e){return t<=e})),I(A,M,(function(t,e){return t>=e}));var D=N.length&&A.length,R=D?T[N[0]]:NaN,C=D?M[A[0]]:NaN,F=D?(R+C)/2:NaN;return t.pushToMain({index:e,key:P("upper"),value:R}),t.pushToMain({index:e,key:P("basis"),value:F}),t.pushToMain({index:e,key:P("lower"),value:C}),!0},bollingerBands:function(t,e,r,n){var o,i,a,u,l,c,s=(arguments.length>4&&void 0!==arguments[4]?arguments[4]:{}).lag,f=t.verticalOhlcv,p=t.instances,y=t.useFullNames,h="".concat(r,"_").concat(n),v="bollinger_bands",m="close";if(0===e){var d=t.inputParams,b=t.verticalOhlcv,g=t.len,w=t.priceBased;if(!(m in b))throw new Error('bollingerBands could not find target "'.concat(m,'"'));var O,S=0,j=Ye(d);try{for(j.s();!(O=j.n()).done;)"bollingerBands"===O.value.key&&S++}catch(t){j.e(t)}finally{j.f()}p.bollinger_bands||(p.bollinger_bands={numberOfIndicators:S,settings:{}}),p.bollinger_bands.settings[h]=new Jt(r,n);var P=S>1||y?"_".concat(h):"",_=["".concat(v,"_upper").concat(P),"".concat(v,"_middle").concat(P),"".concat(v,"_lower").concat(P)];if(w.has(m)){var N,A=Ye(_);try{for(A.s();!(N=A.n()).done;){var x=N.value;w.add(x)}}catch(t){A.e(t)}finally{A.f()}}var k=Object.fromEntries(_.map((function(t){return[t,new Float64Array(g).fill(NaN)]})));Object.assign(b,function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ze(Object(r),!0).forEach((function(e){Ge(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ze(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({},k)),s>0&&t.lag(_,s)}var E=p.bollinger_bands.numberOfIndicators>1||y?"_".concat(h):"",T=p.bollinger_bands.settings[h],M=f[m][e];T.update(M);var I={};try{I=T.getResult()}catch(t){}var D=null!==(o=null===(i=I)||void 0===i?void 0:i.upper)&&void 0!==o?o:NaN,R=null!==(a=null===(u=I)||void 0===u?void 0:u.middle)&&void 0!==a?a:NaN,C=null!==(l=null===(c=I)||void 0===c?void 0:c.lower)&&void 0!==l?l:NaN;return t.pushToMain({index:e,key:"".concat(v,"_upper").concat(E),value:D}),t.pushToMain({index:e,key:"".concat(v,"_middle").concat(E),value:R}),t.pushToMain({index:e,key:"".concat(v,"_lower").concat(E),value:C}),!0},volumeOscillator:function(t,e,r,n,o){var i,a,u,l=o.lag,c=t.verticalOhlcv,s=t.instances,f=c.volume[e],p="volume_oscillator_".concat(r,"_").concat(n);if(0===e){var y=t.len;Object.assign(s,(i={},a=p,u={fastEMA:new oe(r),slowEMA:new oe(n)},(a=function(t){var e=function(t,e){if("object"!=We(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=We(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==We(e)?e:e+""}(a))in i?Object.defineProperty(i,a,{value:u,enumerable:!0,configurable:!0,writable:!0}):i[a]=u,i)),c[p]=new Float64Array(y).fill(NaN),l>0&&t.lag([p],l)}var h=s[p],v=h.fastEMA,m=h.slowEMA;v.update(f),m.update(f);var d=NaN,b=NaN;try{d=v.getResult()}catch(t){}try{b=m.getResult()}catch(t){}var g=NaN;return Number.isNaN(d)||Number.isNaN(b)||(g=100*(d-b)/b),t.pushToMain({index:e,key:p,value:g}),!0},mapCols:function(t,e,r,n,o){var i=o.lag,a=o.isPriceBased,u=t.verticalOhlcv,l=t.len,c=t.priceBased,s=t.precision;if(0===e){var f,p=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Vr(t))){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(r);try{for(p.s();!(f=p.n()).done;){var y=f.value;if(u.hasOwnProperty(y))throw new Error('New property "'.concat(y,'" already exist in "verticalOhlcv" and can not be modified using mapCols.'));u[y]=new Array(l).fill(0),s&&a&&c.add(y)}}catch(t){p.e(t)}finally{p.f()}i>0&&t.lag(r,i)}var h,v,m=n({index:e,main:t});if(null==m)return!0;for(var d=0,b=Object.entries(m);d<b.length;d++){var g=(h=b[d],v=2,function(t){if(Array.isArray(t))return t}(h)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(h,v)||Vr(h,v)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),w=g[0],O=g[1];t.pushToMain({index:e,key:w,value:O})}},scaler:function(t,e,r,n,o){var i=o.type,a=o.minMaxRange,u=o.lookback,l=o.weights,c=o.euclideanWeights,s=o.byFeatureRange,f=o.offset,p=t.verticalOhlcv,y=t.instances,h="".concat(i,"_").concat(r);if(0===e){var v=t.len;if(t.isAlreadyComputed.has(h))throw new Error('In scaler method can not repeat params "size" and "options.type" together between indicators.');y.hasOwnProperty("scaler")||(y.scaler={}),y.scaler.hasOwnProperty(h)||(y.scaler[h]={extectedFeatures:0===u?n.length:n.length+u*n.length});var m,d=[],b=Rr(n);try{var g=function(){var e=m.value;if(!p.hasOwnProperty(e))throw new Error('Target property "'.concat(e,'" not found in verticalOhlcv'));var r,n="".concat(h,"_").concat(e);if(p[n]=new Float64Array(v).fill(NaN),t.scaledGroups[h]||(t.scaledGroups[h]=[]),t.scaledGroups[h].push(n),u>0){var o,i,a=Array.from({length:u}).map((function(t,e){return"".concat(n,"_lag_").concat(e+1)})),l=Rr(a);try{for(l.s();!(i=l.n()).done;){var c=i.value;p[c]=new Float64Array(v).fill(NaN)}}catch(t){l.e(t)}finally{l.f()}(o=t.scaledGroups[h]).push.apply(o,function(t){if(Array.isArray(t))return Fr(t)}(r=a)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(r)||Cr(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),d.push(n)}};for(b.s();!(m=b.n()).done;)g()}catch(t){b.e(t)}finally{b.f()}for(var w=0,O=Object.keys(l);w<O.length;w++){var S=O[w];if(!p.hasOwnProperty(S))throw new Error('Target property "'.concat(S,'" not found in verticalOhlcv'))}}var j=y.scaler[h].extectedFeatures,P=!1,_={},N=[],A=0,x=e-f;if(!(x<0)){for(var k=0;k<n.length;k++){var E,T,M=n[k],I=p[M],D=null!==(E=null==l||null===(T=l[M])||void 0===T?void 0:T[0])&&void 0!==E?E:1,R=I[x];if(Br(R)){P=!0;break}if(_[M]={val:R,weight:c?Math.sqrt(D):D},N.push(R),A++,u>0){for(var C=1;C<=u;C++){var F,B,L=null!==(F=null==l||null===(B=l[M])||void 0===B?void 0:B[C])&&void 0!==F?F:1,U=I[x-C];if(Br(U)){P=!0;break}_["".concat(M,"_lag_").concat(C)]={val:U,weight:c?Math.sqrt(L):L},N.push(U),A++}if(P)break}}if(!P&&A===j){if("minmax"===i)for(var V=Math.min.apply(Math,N),H=Math.max.apply(Math,N),q=0,$=Object.entries(_);q<$.length;q++){var K=Dr($[q],2),z=K[0],G=K[1],Y=G.val,J=G.weight,W=br(Y,V,H,a),Z=0===W?0:W*J;t.pushToMain({index:e,key:"".concat(h,"_").concat(z),value:Z})}if("zscore"===i)for(var Q=N.length,X=N.reduce((function(t,e){return t+e}),0)/Q,tt=N.reduce((function(t,e){return t+Math.pow(e-X,2)}),0)/Q,et=Math.sqrt(tt),rt=0,nt=Object.entries(_);rt<nt.length;rt++){var ot=Dr(nt[rt],2),it=ot[0],at=ot[1],ut=at.val,lt=at.weight,ct=gr(ut,X,et),st=0===ct?0:ct*lt;t.pushToMain({index:e,key:"".concat(h,"_").concat(it),value:st})}if("byfeature"===i)for(var ft=Dr(s,2),pt=ft[0],yt=ft[1],ht=0,vt=Object.entries(_);ht<vt.length;ht++){var mt=Dr(vt[ht],2),dt=mt[0],bt=mt[1],gt=bt.val,wt=bt.weight,Ot=br(gt,pt,yt,a),St=0===Ot?0:Ot*wt;t.pushToMain({index:e,key:"".concat(h,"_").concat(dt),value:St})}}}},crossPairs:function(t,e,r,n){var o,i=n.oneHot,a=n.limit,u=t.verticalOhlcv,l=t.verticalOhlcvTempCols,c=t.instances,s=t.len,f=t.precision,p=t.precisionMultiplier,y=t.priceBased,h=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return wr(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?wr(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(r);try{for(h.s();!(o=h.n()).done;){var v=o.value,m=v.fast,d=v.slow,b="".concat(m,"_x_").concat(d);if(0===e){if("number"==typeof d){var g=d.toString();l.add(g);var w=f&&("price"===m||y.has(m)),O=w?tr(g,p):d,S=d>=-125&&d<=125&&!1===w?"Int8Array":"Float64Array";u[g]=pr(S,s,O)}c.hasOwnProperty("crossPairs")||(c.crossPairs={}),c.crossPairs[b]={run:new Nr,min:1/0,max:-1/0};var j=null!==a&&a<=125?"Int8Array":"Float64Array";u[b]=pr(j,s,0),i&&(u["one_hot_".concat(b)]=pr("Array",s,null))}else if(e+1===s){if("price"!==m&&!u.hasOwnProperty(m))throw new Error('crossPairs invalid param: fast "'.concat(m,'" not found in "verticalOhlcv": ').concat(JSON.stringify(Object.keys(u))));if(!u.hasOwnProperty(d))throw new Error('crossPairs invalid param: slow "'.concat(d,'" not found in "verticalOhlcv": ').concat(JSON.stringify(Object.keys(u))))}if("price"!==m&&!u.hasOwnProperty(m))return;if(!u.hasOwnProperty(d))return;var P=c.crossPairs[b].run;if("price"===m){var _=u.close[e],N=u[d][e];P.update(e,{fast:_,slow:N,high:u.high[e],low:u.low[e]})}else{var A=u[m][e],x=u[d][e];P.update(e,{fast:A,slow:x})}var k=P.getResult(),E=null!==a?Math.min(Math.max(k,-a),a):k;if(t.pushToMain({index:e,key:b,value:E}),i){var T=E+a,M=2*a+1;t.pushToMain({index:e,key:"one_hot_".concat(b),value:dr(T,M)})}}}catch(t){h.e(t)}finally{h.f()}return!0},lag:function(t,e,r,n){var o=t.verticalOhlcv,i=t.len,a=t.priceBased;if(0===e){var u,l=hr(r);try{for(l.s();!(u=l.n()).done;){var c=u.value;if(!o.hasOwnProperty(c))throw new Error('Lag processing invoked by col "'.concat(c,'" was not found in "verticalOhlcv".'));for(var s=a.has(c),f=1;f<=n;f++){var p="".concat(c,"_lag_").concat(f);s&&a.add(p);var y=yr(c,o[c]);o[p]=pr(y,i)}}}catch(t){l.e(t)}finally{l.f()}}var h,v=hr(r);try{for(v.s();!(h=v.n()).done;)for(var m=h.value,d=o[m],b=1;b<=n;b++){var g="".concat(m,"_lag_").concat(b),w=e-b,O=w<0||void 0===d[w]?null:d[w];t.pushToMain({index:e,key:g,value:O})}}catch(t){v.e(t)}finally{v.f()}return!0}};function en(t,e){if(t){if("string"==typeof t)return rn(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?rn(t,e):void 0}}function rn(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var nn=function(t){var e=t.main,r=t.skipNull,n=void 0!==r&&r,o=t.startIndex,i=void 0===o?0:o,a=t.dateFormat,u=e.verticalOhlcv,l=e.invalidValueIndex,c=e.len,s=e.verticalOhlcvKeyNames,f=e.verticalOhlcvTempCols,p=e.priceBased,y=e.precision,h=e.precisionMultiplier;if(0===s.length)return[];var v,m,d,b=n&&l>=0?l+1:0,g=Math.max(b,i),w=c-g,O=Array.from({length:w},(function(){return{}})),S={},j=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=en(t))){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(s);try{for(j.s();!(v=j.n()).done;){var P=v.value;y&&p.has(P)?S[P]=function(t,e){return function(t,e){if("number"!=typeof t||!Number.isFinite(t))throw new Error("revertPrecisionAsNumber expects a finite number");var r=t<0,n=Math.abs(t);n=Math.trunc(n);var o=1===e?0:String(e).length-1;if(0===o)return r?-n:n;var i=Math.trunc(n/e),a=String(n%e).padStart(o,"0"),u=0===(a=a.replace(/0+$/,"")).length?String(i):"".concat(i,".").concat(a);return Number(r?"-".concat(u):u)}(t,e)}:S[P]=function(t){return t}}}catch(t){j.e(t)}finally{j.f()}for(var _=0,N=Object.entries(u);_<N.length;_++){var A=(m=N[_],d=2,function(t){if(Array.isArray(t))return t}(m)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(m,d)||en(m,d)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),x=A[0],k=A[1];if(!f.has(x))for(var E=g;E<c;E++)O[E-g][x]="date"===x?ir[a](k[E]):S[x](k[E],h)}return O};function on(t){return on="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},on(t)}function an(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],l=!0,c=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);l=!0);}catch(t){c=!0,o=t}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return u}}(t,e)||ln(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function un(t,e,r){return(e=fn(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ln(t,e){if(t){if("string"==typeof t)return cn(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?cn(t,e):void 0}}function cn(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function sn(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,fn(n.key),n)}}function fn(t){var e=function(t,e){if("object"!=on(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=on(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==on(e)?e:e+""}var pn=function(){return t=function t(e){var r=this,n=e.input,o=e.ticker,i=void 0===o?null:o,u=e.inputParams,c=void 0===u?null:u,s=e.chunkProcess,y=void 0===s?2e3:s,h=e.precision,v=void 0!==h&&h,m=e.useFullNames,d=void 0!==m&&m;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),l(n,"input",null!==i?"contructor ".concat(i):"constuctor"),0===n.length)throw Error("input OHLCV must not be empty: "+i);p(y,{min:100,max:5e4,allowDecimals:!1},"chunkProcess","constructor"),f(v,"precision","contructor"),f(v,"useFullNames","contructor"),this.chunkProcess=y,this.input=function(t){return function(t){if(Array.isArray(t))return cn(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||ln(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(n),this.len=this.input.length,this.firstRow=this.input[0],this.precision=v,this.useFullNames=d;var b=["open","high","low","close","mid_price"];this.initialPriceBased=new Set(b),this.priceBased=new Set(b),this.precisionMultiplier=function(t){var e=t.precision,r=t.firstRow,n=t.initialPriceBased;if(!1===e)return 1;for(var o=1,i=0,a=Object.entries(r);i<a.length;i++){var u=Qe(a[i],2),l=u[0],c=u[1];if(n.has(l)){if("string"!=typeof c||!/^\d+(\.\d+)?$/.test(c))throw new Error('If "precision" is set to true all the "open", "high", "low" and "close" values must be numeric strings like "123.45" with no commas or currency symbols. Property "'.concat(l,'" had the value "').concat(c,'" type ').concat(Ze(c),"."));var s=Qe(c.split("."),2),f=s[0],p=s[1],y=void 0===p?"":p,h=Number(f),v=4;if(0===Math.abs(h)){var m=y.length,d=Math.max(4,m),b=y.search(/[1-9]/);if(-1===b)v=d;else{var g=b+1+5;v=Math.max(d,g)}}var w=Math.pow(10,v);w>o&&(o=w)}}return o}(this);var g=function(t){for(var e=t.firstRow,r=t.precision,n=t.initialPriceBased,o={},i={},a=new Map,u=0,l=Object.entries(e);u<l.length;u++){var c=cr(l[u],2),s=c[0],f=c[1];if("date"===s)o[s]=ur(f),i[s]="Array";else if("volume"===s)o[s]=nr(f,!0),i[s]="Int32Array";else if(n.has(s))o[s]=nr(f,!0,r),i[s]="Float64Array",a.set(s,o[s]);else{var p=nr(f,!1,r);o[s]=p,i[s]="number"===p?"Float64Array":"Array"}}if(new Set(a.values()).size>1){var y=function(t){return function(t){if(Array.isArray(t))return fr(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||sr(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(a.entries()).map((function(t){var e=cr(t,2),r=e[0],n=e[1];return"".concat(r,': "').concat(n,'"')})).join(", ");throw new Error("Inconsistent types among price-based columns — ".concat(y,". ")+"All initialPriceBased columns must share the same numeric type.")}return i.hasOwnProperty("open")&&i.hasOwnProperty("close")&&(i.mid_price=i.open,o.mid_price=o.open),{inputTypes:o,arrayTypes:i}}(this),w=g.inputTypes,O=g.arrayTypes;if(this.inputTypes=w,this.arrayTypes=O,!this.firstRow.hasOwnProperty("close"))throw Error('input OHLCV array objects require at least "close" property: '.concat(i));return this.dateType=this.inputTypes.date?this.inputTypes.date:null,this.isComputed=!1,this.instances={},this.verticalOhlcv={},this.verticalOhlcvKeyNames=[],this.verticalOhlcvTempCols=new Set,this.utilities={},this.invalidValueIndex=-1,this.scaledGroups={},this.isAlreadyComputed=new Set,this.pushToMain=function(t){var e=t.index,n=t.key,o=t.value;return function(t){var e=t.index,r=t.key,n=t.value;return t.main.verticalOhlcv[r][e]=n,!0}({main:r,index:e,key:n,value:o})},null!==c?(a(c,this.len),this.inputParams=c.sort((function(t,e){return t.order-e.order})),this.compute()):this.inputParams=[],this},e=[{key:"getData",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.compute();var e=t.skipNull,r=void 0===e||e,n=t.dateFormat,o=void 0===n?"milliseconds":n;return s(Object.keys(ir),o,"dateFormat","getData"),c(t,"options","getData"),nn({main:this,skipNull:r,startIndex:0,dateFormat:o})}},{key:"getLastValues",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.compute();var e=t.dateFormat,r=void 0===e?"milliseconds":e;return s(Object.keys(ir),r,"dateFormat","getData"),nn({skipNull:!1,main:this,startIndex:this.len-1,dateFormat:r})[0]}},{key:"compute",value:function(){return this.isComputed||(this.inputParams=this.inputParams.sort((function(t,e){return t.order-e.order})),this.isComputed=!1,this.len>0&&(function(t,e){var n=e.len,o=e.arrayTypes,i=e.verticalOhlcv,u=e.verticalOhlcvKeyNames,l=e.inputTypes,c=e.chunkProcess,s=e.precisionMultiplier,f=e.inputParams;a(f,n);for(var p=0,y=Object.keys(l);p<y.length;p++){var h=y[p];i[h]=pr(o[h],n)}for(var v=0;v<n;v+=c)for(var m=Math.min(v+c,n),d=v;d<m;d++){for(var b=t[d],g=0,w=Object.entries(l);g<w.length;g++){var O=Zr(w[g],2),S=O[0],j=O[1],P=b[S];if(void 0!==P)if(rr.hasOwnProperty(j)){var _=rr[j](P,s);e.pushToMain({index:d,key:S,value:_})}else ar.hasOwnProperty(j)?e.pushToMain({index:d,key:S,value:ar[j](P)}):e.pushToMain({index:d,key:S,value:P})}var N=(i.open[d]+i.close[d])/2;e.pushToMain({index:d,key:"mid_price",value:N});var A,x=Wr(f);try{for(x.s();!(A=x.n()).done;){var k=A.value,E=k.key,T=k.params;tn[E].apply(tn,[e,d].concat(Jr(T)))}}catch(t){x.e(t)}finally{x.f()}t[d]=null;var M=Object.keys(i);r(e,d,M)||(e.invalidValueIndex=d)}u.push.apply(u,Jr(Object.keys(i)))}(this.input,this),this.isComputed=!0,this.input=[],this.instances={},this.firstRow=[])),this}},{key:"crossPairs",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="crossPairs";u(this),l(t,"arr",r),c(e,"options",r);var n=e.limit,o=void 0===n?null:n,i=e.oneHot,a=void 0!==i&&i;null!==o&&p(o,{min:2,max:this.len},"options.limit",r),f(a,"options.oneHot",r);var s,y=[],h=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=ln(t))){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(t);try{for(h.s();!(s=h.n()).done;){var v=s.value,m=v.fast,d=void 0===m?"":m,b=v.slow,g=void 0===b?"":b;if(""===d||""===g)throw new Error("Invalid crossPairs[".concat(d,"_").concat(g,"]: Object property “fast” must be a non-null column name and “slow” must be a non-null column name or integer."));y.push(d.toString(),g.toString())}}catch(t){h.e(t)}finally{h.f()}if(this.isAlreadyComputed.has(r))throw new Error('You can only call the "'.concat(r,'" method once.'));return this.isAlreadyComputed.add(r),this.inputParams.push({key:r,params:[t,{limit:o,oneHot:a}]}),this}},{key:"lag",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["close"],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r="lag";return u(this),l(t,"colKeys",r),p(e,{min:1,max:this.len,allowDecimals:!1},"lookback",r),this.inputParams.push({key:r,params:[t,e]}),this}},{key:"relativeVolume",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="relativeVolume";if(!this.inputTypes.hasOwnProperty("volume"))throw new Error('If "relativeVolume" is called the input ohlcv must contain valid volume properties.');u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"size",r),c(e,"options",r);var n=e.lag,o=void 0===n?0:n;return p(o,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),this.inputParams.push({key:r,order:0,params:[t,{lag:o}]}),this}},{key:"volumeDelta",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e="volumeDelta";if(!this.inputTypes.hasOwnProperty("volume"))throw new Error('If "volumeDelta" is called the input ohlcv must contain valid volume properties.');u(this),c(t,"options",e);var r=t.lag,n=void 0===r?0:r;return p(n,{min:0,max:this.len,allowDecimals:!1},"options.lag",e),this.inputParams.push({key:e,order:0,params:[{lag:n}]}),this}},{key:"atr",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:14,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="atr";u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"size",r),c(e,"options",r);var n=e.lag,o=void 0===n?0:n,i=e.retLogs,a=void 0!==i&&i;return p(o,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),f(a,"options.retLogs",r),this.inputParams.push({key:r,order:0,params:[t,{lag:o,retLogs:a}]}),this}},{key:"adx",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:14,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="adx";u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"size",r),c(e,"options",r);var n=e.lag,o=void 0===n?0:n,i=e.retLogs,a=void 0!==i&&i;return p(o,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),f(a,"options.retLogs",r),this.inputParams.push({key:r,order:0,params:[t,{lag:o,retLogs:a}]}),this}},{key:"ema",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="ema";u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"size",r),c(e,"options",r);var n=e.target,o=void 0===n?"close":n,i=e.lag,a=void 0===i?0:i;return h(o,"options.target",r),p(a,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),this.inputParams.push({key:r,params:[r,t,{target:o,lag:a}]}),this}},{key:"sma",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="sma";u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"size",r),c(e,"options",r);var n=e.target,o=void 0===n?"close":n,i=e.lag,a=void 0===i?0:i;return h(o,"options.target",r),p(a,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),this.inputParams.push({key:r,params:[r,t,{target:o,lag:a}]}),this}},{key:"heikenAshi",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n="heikenAshi";u(this);var o=null===t&&null===e;!1===o&&(p(t,{min:1,max:this.len,allowDecimals:!1},"smoothLength",n),p(e,{min:1,max:this.len,allowDecimals:!1},"afterSmoothLength",n)),c(r,"options",n);var i=r.lag,a=void 0===i?0:i;return p(a,{min:0,max:this.len,allowDecimals:!1},"options.lag",n),this.inputParams.push({key:n,order:0,params:[t,e,{lag:a,bothNull:o}]}),this}},{key:"vidya",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:14,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n="vidya";u(this),p(t,{min:2,max:this.len,allowDecimals:!1},"size",n),p(e,{min:1,max:this.len,allowDecimals:!1},"momentum",n),c(r,"options",n);var o=r.target,i=void 0===o?"close":o,a=r.lag,l=void 0===a?0:a,s=r.atrLength,f=void 0===s?200:s,y=r.bandDistance,v=void 0===y?2:y,m=r.liquidityLookback,d=void 0===m?20:m;return h(i,"options.target",n),p(l,{min:0,max:this.len,allowDecimals:!1},"options.lag",n),p(v,{min:.01,max:10,allowDecimals:!0},"options.bandDistance",n),p(f,{min:2,max:this.len,allowDecimals:!1},"options.atrLength",n),p(d,{min:1,max:this.len,allowDecimals:!1},"options.liquidityLookback",n),this.inputParams.push({key:n,params:[t,e,{target:i,lag:l}]}),this}},{key:"stochastic",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:14,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o="stochastic",i=this.len;p(t,{min:1,max:i,allowDecimals:!1},"kPeriod",o),p(e,{min:1,max:i,allowDecimals:!1},"kSlowingPeriod",o),p(r,{min:1,max:i,allowDecimals:!1},"dPeriod",o),c(n,"options",o);var a=n.lag,u=void 0===a?0:a,l=n.retLogs;return p(u,{min:0,max:i,allowDecimals:!1},"options.lag",o),f(l,"retLogs",o),this.inputParams.push({key:o,params:[t,e,r,{lag:u,retLogs:l}]}),this}},{key:"macd",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:12,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:26,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:9,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o="macd";u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"fast",o),p(e,{min:1,max:this.len,allowDecimals:!1},"slow",o),p(r,{min:1,max:this.len,allowDecimals:!1},"signal",o),c(n,"options",o);var i=n.target,a=void 0===i?"close":i,l=n.lag,s=void 0===l?0:l;h(a,"options.target",o),p(s,{min:0,max:this.len,allowDecimals:!1},"options.lag",o);var f={instanceKey:"".concat(t,"_").concat(e,"_").concat(r).concat("close"===a?"":"_".concat(a))};return this.inputParams.push({key:o,params:[t,e,r,{target:a,lag:s,precomputed:f}]}),this}},{key:"bollingerBands",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n="bollingerBands";u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"size",n),p(e,{min:.01,max:50,allowDecimals:!0},"stdDev",n),c(r,"options",n);var o=r.lag,i=void 0===o?0:o;return p(i,{min:0,max:this.len,allowDecimals:!1},"options.lag",n),this.inputParams.push({key:n,params:[t,e,{lag:i}]}),this}},{key:"rsi",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:14,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r="rsi";u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"size",r),c(e,"options",r);var n=e.target,o=void 0===n?"close":n,i=e.lag,a=void 0===i?0:i,l=e.retLogs,s=void 0!==l&&l;return h(o,"options.target",r),p(a,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),f(s,"retLogs",r),this.inputParams.push({key:r,params:[t,{target:o,lag:a,retLogs:s}]}),this}},{key:"donchianChannels",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:20,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n="donchianChannels";u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"size",n),p(e,{min:0,max:this.len,allowDecimals:!1},"offset",n),c(r,"options",n);var o=r.lag,i=void 0===o?0:o;return p(i,{min:0,max:this.len,allowDecimals:!1},"options.lag",n),this.inputParams.push({key:n,order:0,params:[t,e,{lag:i}]}),this}},{key:"volumeOscillator",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:5,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n="volumeOscillator";if(!this.inputTypes.hasOwnProperty("volume"))throw new Error('If "volumeOscillator" is called the input ohlcv must contain valid volume properties.');u(this),p(t,{min:1,max:this.len,allowDecimals:!1},"fastsize",n),p(e,{min:t,max:this.len,allowDecimals:!1},"slowsize",n),c(r,"options",n);var o=r.lag,i=void 0===o?0:o;return p(i,{min:0,max:this.len,allowDecimals:!1},"options.lag",n),this.inputParams.push({key:n,order:0,params:[t,e,{lag:i}]}),this}},{key:"dateTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e="dateTime";u(this),c(t,"options",e);var r=t.lag,n=void 0===r?0:r,o=t.oneHot,i=void 0!==o&&o;p(n,{min:0,max:this.len,allowDecimals:!1},"options.lag",e),f(i,"options.oneHot",e);var a=i?"one_hot_":"",l=un(un(un(un(un({},"".concat(a,"month"),12),"".concat(a,"day_of_the_month"),31),"".concat(a,"day_of_the_week"),7),"".concat(a,"hour"),24),"".concat(a,"minute"),60),s={prefix:a,colKeySizes:l,colKeys:Object.keys(l)};return this.inputParams.push({key:e,order:0,params:[{lag:n,oneHot:i,precompute:s}]}),this}},{key:"priceFeatures",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e="priceFeatures";u(this),c(t,"options",e);var r=t.lag,n=void 0===r?0:r,o=t.colKeys,i=void 0===o?[]:o,a=t.retLogs,s=void 0!==a&&a;return p(n,{min:0,max:this.len,allowDecimals:!1},"options.lag",e),l(i,"options.colKeys",e),f(s,"retLogs",e),this.inputParams.push({key:e,params:[{lag:n,colKeys:i,retLogs:s}]}),this}},{key:"scaler",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"zscore",e=arguments.length>1?arguments[1]:void 0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n="scaler";u(this),s(["minmax","zscore","byfeature"],t,"options.type",n),p(e,{min:1,max:this.len,allowDecimals:!1},"size",n);var o="".concat(n,"(").concat(t,", ").concat(e,", options = {})");c(r,"options",o);var i=r.minMaxRange,a=void 0===i?null:i,h=r.lag,v=void 0!==h&&h,m=r.colKeys,d=void 0===m?[]:m,b=r.weights,g=void 0===b?{}:b,w=r.euclideanWeights,O=void 0!==w&&w,S=r.byFeatureRange,j=void 0===S?null:S,P=r.offset,_=void 0===P?0:P;p(_,{min:0,max:this.len,allowDecimals:!1},"offset",n),l(d,"options.colKeys",o),f(v,"options.lag",o),c(g,"options.weights",o);var N=v?e-1:0;if(0===d.length)throw new Error('The property "options.colKeys" must be an array with target keys in '.concat(o,"."));for(var A=0,x=Object.entries(g);A<x.length;A++){var k=an(x[A],2),E=k[0],T=k[1];if(l(T,"options.weights.".concat(E)),!v&&T.size>0)throw new Error('If "options.lag" is set to false "options.weights.'.concat(E,'" can only contain 1 item (float) in ').concat(o,"."));if(T.length>e)throw new Error('The length of the property "options.weights.'.concat(E,'" can not be longer than "size" in ').concat(o,"."));for(var M=0;M<T.length;M++){var I=T[M];p(I,{min:.01,max:10,allowDecimals:!0},"options.weights.".concat(E,"[").concat(M,"]"),o)}}if("byfeature"!==t){if(null==!j)throw new Error('"options.byFeatureRange" is only valid when "type" is "byfeature".')}else y(j,"options.byFeatureRange",o);return["minmax","byfeature"].includes(t)&&y(a,"options.minMaxRange",o),this.inputParams.push({key:n,params:[e,d,{type:t,minMaxRange:a,lookback:N,weights:g,euclideanWeights:O,byFeatureRange:j,offset:_}]}),this}},{key:"mapCols",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["change"],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};u(this);var n="mapCols";null==e&&(e=qr),c(r,"options",n);var o=r.lag,i=void 0===o?0:o,a=r.isPriceBased,s=void 0!==a&&a;if(l(t,"newCols",n),p(i,{min:0,allowDecimals:!1},"options.lag",n),f(s,"isPriceBased","mapCols"),!1===this.precision&&s)throw new Error('Invalid param: If "mapCols.options.isPriceBased" is true, the "constructor.precision" param must be also true.');return this.inputParams.push({key:n,params:[t,e,{lag:i,isPriceBased:s}]}),this}}],e&&sn(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}()})(),OHLCV_INDICATORS=e})();
package/index.js CHANGED
@@ -259,15 +259,33 @@ export default class OHLCV_INDICATORS {
259
259
  validateNumber(size, {min: 1, max: this.len, allowDecimals: false}, 'size', methodName)
260
260
  validateObject(options, 'options', methodName)
261
261
 
262
- const {lag = 0, percentage = false, upper = null, lower = null} = options
262
+ const {lag = 0, retLogs = false} = options
263
263
 
264
264
  validateNumber(lag, {min: 0, max: this.len, allowDecimals: false}, 'options.lag', methodName)
265
- validateBoolean(percentage, 'options.percentage', 'atr')
265
+ validateBoolean(retLogs, 'options.retLogs', methodName)
266
266
 
267
- if(upper !== null) validateNumber(upper, {min: 0.001, max: 100, allowDecimals: true}, 'options.upper', 'atr')
268
- if(lower !== null) validateNumber(lower, {min: 0.001, max: 100, allowDecimals: true}, 'options.lower', 'atr')
269
267
 
270
- this.inputParams.push({key: methodName, order: 0, params: [size, {lag, percentage, upper, lower}]})
268
+ this.inputParams.push({key: methodName, order: 0, params: [size, {lag, retLogs}]})
269
+
270
+ return this
271
+ }
272
+
273
+ adx(size = 14, options = {}) {
274
+
275
+ const methodName = 'adx'
276
+
277
+ isAlreadyComputed(this)
278
+
279
+ validateNumber(size, {min: 1, max: this.len, allowDecimals: false}, 'size', methodName)
280
+ validateObject(options, 'options', methodName)
281
+
282
+ const {lag = 0, retLogs = false} = options
283
+
284
+ validateNumber(lag, {min: 0, max: this.len, allowDecimals: false}, 'options.lag', methodName)
285
+ validateBoolean(retLogs, 'options.retLogs', methodName)
286
+
287
+
288
+ this.inputParams.push({key: methodName, order: 0, params: [size, {lag, retLogs}]})
271
289
 
272
290
  return this
273
291
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ohlcv-indicators",
3
- "version": "3.5.72",
3
+ "version": "3.5.73",
4
4
  "description": "A JavaScript library featuring optimized trading indicators for OHLCV arrays [{open, high, low, close, value}]. This library is optimized for backtesting and trading bot development.",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -12,6 +12,7 @@
12
12
  "author": "https://jaimelias.com/",
13
13
  "license": "ISC",
14
14
  "dependencies": {
15
+ "ohlcv-indicators": "^3.5.72",
15
16
  "trading-signals": "^5.0.4"
16
17
  },
17
18
  "devDependencies": {
@@ -16,6 +16,7 @@ import { crossPairs } from "../studies/findCrosses.js";
16
16
  import { dateTime } from "../studies/dateTime.js";
17
17
  import { scaler } from "../machine-learning/scaler.js";
18
18
  import { atr } from "../volatility/atr.js";
19
+ import { adx } from "../volatility/adx.js";
19
20
  import { mapCols } from "../studies/mapCols.js";
20
21
 
21
22
  import { buildArray } from "../utilities/assignTypes.js";
@@ -32,6 +33,7 @@ const mainFunctions = {
32
33
  rsi,
33
34
  stochastic,
34
35
  atr,
36
+ adx,
35
37
  ema: movingAverages,
36
38
  sma: movingAverages,
37
39
  vidya,
@@ -0,0 +1,65 @@
1
+ import { FasterADX } from 'trading-signals';
2
+ import { mathLog } from '../utilities/math.js';
3
+
4
+ export const adx = (main, index, size, { lag, retLogs }) => {
5
+ const { verticalOhlcv, instances, useFullNames } = main;
6
+
7
+ const adxKey = retLogs ? `ret_log_adx_${size}` : `adx_${size}`;
8
+
9
+ const instanceKey = `adx_${size}`;
10
+
11
+ // Initialization on the first index.
12
+ if (index === 0) {
13
+ const { len } = main;
14
+
15
+ if (!verticalOhlcv.hasOwnProperty('high')) {
16
+ throw new Error('Property high not found in verticalOhlcv for adx.');
17
+ }
18
+
19
+ if (!verticalOhlcv.hasOwnProperty('low')) {
20
+ throw new Error('Property low not found in verticalOhlcv for adx.');
21
+ }
22
+
23
+ if (!verticalOhlcv.hasOwnProperty('close')) {
24
+ throw new Error('Property close not found in verticalOhlcv for adx.');
25
+ }
26
+
27
+ Object.assign(instances, {
28
+ [instanceKey]: new FasterADX(size)
29
+ });
30
+
31
+ Object.assign(verticalOhlcv, {
32
+ [adxKey]: new Float64Array(len).fill(NaN)
33
+ })
34
+
35
+
36
+ if (lag > 0) {
37
+ main.lag([adxKey], lag);
38
+ }
39
+ }
40
+
41
+ const high = verticalOhlcv.high[index];
42
+ const low = verticalOhlcv.low[index];
43
+ const close = verticalOhlcv.close[index];
44
+
45
+ let currentAdx = NaN;
46
+
47
+ // Update the ADX indicator.
48
+ instances[instanceKey].update({ high, low, close });
49
+
50
+ try {
51
+ currentAdx = instances[instanceKey].getResult();
52
+
53
+ instances[instanceKey].get
54
+ } catch (err) {
55
+ currentAdx = NaN;
56
+ }
57
+
58
+
59
+ const adxVal = Number.isNaN(currentAdx)
60
+ ? NaN
61
+ : retLogs ? mathLog(currentAdx, 25) : currentAdx;
62
+
63
+
64
+ main.pushToMain({ index, key: adxKey, value: adxVal });
65
+ };
@@ -1,9 +1,10 @@
1
1
 
2
2
  import {FasterATR, FasterWSMA} from 'trading-signals';
3
+ import { mathLog } from '../utilities/math.js';
3
4
 
4
- export const atr = (main, index, size, {lag, percentage, upper, lower}) => {
5
+ export const atr = (main, index, size, {lag, retLogs}) => {
5
6
  const { verticalOhlcv, instances, priceBased } = main
6
- const baseKeyName = `atr_${size}`
7
+ const baseKeyName = retLogs ? `ret_log_atr_${size}` : `atr_${size}`
7
8
 
8
9
  if (index === 0) {
9
10
 
@@ -13,10 +14,6 @@ export const atr = (main, index, size, {lag, percentage, upper, lower}) => {
13
14
 
14
15
  const keyNames = [baseKeyName]
15
16
 
16
- if(percentage) keyNames.push(`${baseKeyName}_percentage`)
17
- if(upper !== null) keyNames.push(`${baseKeyName}_upper`)
18
- if(lower !== null) keyNames.push(`${baseKeyName}_lower`)
19
-
20
17
  for(const k of keyNames)
21
18
  {
22
19
  verticalOhlcv[k] = new Float64Array(len).fill(NaN)
@@ -46,24 +43,8 @@ export const atr = (main, index, size, {lag, percentage, upper, lower}) => {
46
43
 
47
44
  }
48
45
 
49
- if(percentage)
50
- {
51
- const percentageValue = (Number.isNaN(currAtr)) ? NaN : (currAtr / curr.close)
52
- main.pushToMain({ index, key: `${baseKeyName}_percentage`, value: percentageValue });
53
- }
54
- if(upper !== null)
55
- {
56
- const upperValue = (Number.isNaN(currAtr)) ? NaN : (curr.close + (currAtr * upper))
57
- main.pushToMain({ index, key: `${baseKeyName}_upper`, value: upperValue });
58
- }
59
- if(lower !== null)
60
- {
61
- const lowerValue = (Number.isNaN(currAtr)) ? NaN : (curr.close - (currAtr * lower))
62
- main.pushToMain({ index, key: `${baseKeyName}_lower`, value: lowerValue });
63
- }
64
-
65
46
  // Always push the MA value (even if NaN).
66
- main.pushToMain({ index, key: baseKeyName, value: currAtr });
47
+ main.pushToMain({ index, key: baseKeyName, value: Number.isNaN(currAtr) ? NaN : (retLogs ? mathLog(currAtr, curr.close) : currAtr) });
67
48
 
68
49
  return true;
69
50
  }