ohlcv-indicators 3.5.78 → 3.5.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/AGENTS.md +113 -0
  2. package/README.md +456 -0
  3. package/dist/ohlcv-indicators.min.js +2 -1
  4. package/dist/ohlcv-indicators.min.js.LICENSE.txt +22 -0
  5. package/index.js +112 -84
  6. package/package.json +2 -5
  7. package/src/core-functions/initializeColumns.js +40 -0
  8. package/src/core-functions/mainLoop.js +35 -30
  9. package/src/core-functions/pushToMain.js +8 -27
  10. package/src/core-indicators/README.md +60 -0
  11. package/src/core-indicators/composites.js +136 -0
  12. package/src/core-indicators/index.js +5 -0
  13. package/src/core-indicators/indicator.js +81 -0
  14. package/src/core-indicators/movingAverages.js +88 -0
  15. package/src/core-indicators/rsi.js +41 -0
  16. package/src/core-indicators/volatility.js +107 -0
  17. package/src/moving-averages/bollingerBands.js +39 -31
  18. package/src/moving-averages/donchianChannel.js +62 -36
  19. package/src/moving-averages/heikenAshi.js +33 -52
  20. package/src/moving-averages/macd.js +10 -26
  21. package/src/moving-averages/movingAverages.js +19 -25
  22. package/src/moving-averages/relativeVolume.js +30 -24
  23. package/src/oscillators/mfi.js +56 -0
  24. package/src/oscillators/rsi.js +7 -26
  25. package/src/oscillators/stochastic.js +6 -19
  26. package/src/oscillators/volumeDelta.js +36 -28
  27. package/src/oscillators/volumeOscillator.js +24 -32
  28. package/src/studies/candleFeatures.js +40 -28
  29. package/src/studies/dateTime.js +54 -56
  30. package/src/studies/findCrosses.js +18 -16
  31. package/src/studies/lag.js +32 -20
  32. package/src/utilities/assignTypes.js +1 -1
  33. package/src/utilities/config.js +31 -0
  34. package/src/utilities/numberUtilities.js +5 -3
  35. package/src/utilities/precisionMultiplier.js +11 -6
  36. package/src/utilities/validators.js +40 -1
  37. package/src/utilities/verticalToHorizontal.js +26 -16
  38. package/src/volatility/adx.js +7 -20
  39. package/src/volatility/atr.js +10 -23
  40. package/test/test.js +1230 -0
  41. package/webpack.config.js +0 -11
  42. package/src/moving-averages/vidya.js +0 -181
  43. package/src/studies/mapCols.js +0 -46
@@ -1 +1,2 @@
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:()=>en});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=function(t,e){if(t){if("string"==typeof t)return o(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)?o(t,e):void 0}}(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){(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 i=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()}},a=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.')},u=function(t,e,r){if(!Array.isArray(t))throw new Error('Param "'.concat(e,'" must be an array in "').concat(r,'".'));return!0},l=function(t,e,r){if(t instanceof Object==0)throw new Error('Param "'.concat(e,'" must be an object in "').concat(r,'".'));return!0},c=function(t,e,r,n){if(u(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},s=function(t,e,r){if("boolean"!=typeof t)throw new Error('Param "'.concat(e,'" must be an boolean in "').concat(r,'".'));return!0},f=function(t,e,r,n){l(e,"options","".concat(n,".").concat(r,".validateNumber"));var o=e.allowDecimals,i=void 0!==o&&o,a=e.min,u=e.max,c=i?"number":"integer";if("number"!=typeof t||!1===i&&!Number.isInteger(t))throw new Error('Param "'.concat(r,'" must be an ').concat(c,' in "').concat(n,'".'));if(void 0!==a&&"number"!=typeof a)throw new Error('Param "min" must be a valid '.concat(c,' (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(c,' (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(c," ≥ ").concat(a,' in "').concat(n,'".'));if(void 0!==u&&t>u)throw new Error('Param "'.concat(r,'" must be an ').concat(c," ≤ ").concat(u,' in "').concat(n,'".'));return!0},p=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},y=1e6,h="[big.js] ",v=h+"Invalid ",m=v+"decimal places",d=v+"rounding mode",b=h+"Division by zero",g={},w=void 0,S=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;function O(t,e,r,n){var o=t.c;if(r===w&&(r=t.constructor.RM),0!==r&&1!==r&&2!==r&&3!==r)throw Error(d);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]!==w))),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]!==w||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 j(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 P(t){return P="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},P(t)}function _(t){var e="function"==typeof Map?new Map:void 0;return _=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(N())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var o=new(t.bind.apply(t,n));return r&&A(o,r.prototype),o}(t,arguments,k(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),A(r,t)},_(t)}function N(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(N=function(){return!!t})()}function A(t,e){return A=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},A(t,e)}function k(t){return k=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},k(t)}g.abs=function(){var t=new this.constructor(this);return t.s=1,t},g.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},g.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>y)throw Error(m);if(!o[0])throw Error(b);if(!n[0])return t.s=i,t.c=[t.e=0],t;var u,l,c,s,f,p=o.slice(),h=u=o.length,v=n.length,d=n.slice(0,u),g=d.length,S=t,j=S.c=[],P=0,_=a+(S.e=e.e-t.e)+1;for(S.s=i,i=_<0?0:_,p.unshift(0);g++<u;)d.push(0);do{for(c=0;c<10;c++){if(u!=(g=d.length))s=u>g?1:-1;else for(f=-1,s=0;++f<u;)if(o[f]!=d[f]){s=o[f]>d[f]?1:-1;break}if(!(s<0))break;for(l=g==u?o:p;g;){if(d[--g]<l[g]){for(f=g;f&&!d[--f];)d[f]=9;--d[f],d[g]+=10}d[g]-=l[g]}for(;!d[0];)d.shift()}j[P++]=s?c:++c,d[0]&&s?d[g]=n[h]||0:d=[n[h]]}while((h++<v||d[0]!==w)&&i--);return j[0]||1==P||(j.shift(),S.e--,_--),P>_&&O(S,_,r.RM,d[0]!==w),S},g.eq=function(t){return 0===this.cmp(t)},g.gt=function(t){return this.cmp(t)>0},g.gte=function(t){return this.cmp(t)>-1},g.lt=function(t){return this.cmp(t)<0},g.lte=function(t){return this.cmp(t)<1},g.minus=g.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},g.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(b);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)))},g.neg=function(){var t=new this.constructor(this);return t.s=-t.s,t},g.plus=g.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},g.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(v+"exponent");for(o&&(t=-t);1&t&&(n=n.times(e)),t>>=1;)e=e.times(e);return o?r.div(n):n},g.prec=function(t,e){if(t!==~~t||t<1||t>y)throw Error(v+"precision");return O(new this.constructor(this),t,e)},g.round=function(t,e){if(t===w)t=0;else if(t!==~~t||t<-y||t>y)throw Error(m);return O(new this.constructor(this),t+this.e+1,e)},g.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(h+"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 O(t,(o.DP-=4)+t.e+1,o.RM)},g.times=g.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},g.toExponential=function(t,e){var r=this,n=r.c[0];if(t!==w){if(t!==~~t||t<0||t>y)throw Error(m);for(r=O(new r.constructor(r),++t,e);r.c.length<t;)r.c.push(0)}return j(r,!0,!!n)},g.toFixed=function(t,e){var r=this,n=r.c[0];if(t!==w){if(t!==~~t||t<0||t>y)throw Error(m);for(t=t+(r=O(new r.constructor(r),t+r.e+1,e)).e+1;r.c.length<t;)r.c.push(0)}return j(r,!1,!!n)},g[Symbol.for("nodejs.util.inspect.custom")]=g.toJSON=g.toString=function(){var t=this,e=t.constructor;return j(t,t.e<=e.NE||t.e>=e.PE,!!t.c[0])},g.toNumber=function(){var t=Number(j(this,!0,!0));if(!0===this.constructor.strict&&!this.eq(t.toString()))throw Error(h+"Imprecise conversion");return t},g.toPrecision=function(t,e){var r=this,n=r.constructor,o=r.c[0];if(t!==w){if(t!==~~t||t<1||t>y)throw Error(v+"precision");for(r=O(new n(r),t,e);r.c.length<t;)r.c.push(0)}return j(r,t<=r.e||r.e<=n.NE||r.e>=n.PE,!!o)},g.valueOf=function(){var t=this,e=t.constructor;if(!0===e.strict)throw Error(h+"valueOf disallowed");return j(t,t.e<=e.NE||t.e>=e.PE,!0)},function t(){function e(r){var n=this;if(!(n instanceof e))return r===w?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(v+"value");r=0===r&&1/r<0?"-0":String(r)}!function(t,e){var r,n,o;if(!S.test(e))throw Error(v+"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=g,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 E=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=k(e),function(t,e){if(e&&("object"==P(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,N()?Reflect.construct(e,r||[],k(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&&A(t,e)}(e,t),r=e,Object.defineProperty(r,"prototype",{writable:!1}),r;var r}(_(Error));function T(t){return T="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(t)}function x(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,I(n.key),n)}}function M(t,e,r){return(e=I(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function I(t){var e=function(t,e){if("object"!=T(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=T(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==T(e)?e:e+""}var D=function(){return t=function t(){(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,t),M(this,"previousHighest",void 0),M(this,"highest",void 0),M(this,"previousLowest",void 0),M(this,"lowest",void 0),M(this,"previousResult",void 0),M(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 E;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)}}])&&x(t.prototype,e),r&&x(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();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 C(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,V(n.key),n)}}function F(t,e,r){return e=L(e),function(t,e){if(e&&("object"==R(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,B()?Reflect.construct(e,r||[],L(t).constructor):e.apply(t,r))}function B(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(B=function(){return!!t})()}function L(t){return L=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},L(t)}function U(t,e){return U=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},U(t,e)}function V(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+""}var H=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=F(this,e),i=void 0,(o=V(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&&U(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)}}])&&C(r.prototype,n),o&&C(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(D);function q(t){return q="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},q(t)}function $(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,J(n.key),n)}}function K(t,e,r){return e=G(e),function(t,e){if(e&&("object"==q(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,z()?Reflect.construct(e,r||[],G(t).constructor):e.apply(t,r))}function z(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(z=function(){return!!t})()}function G(t){return G=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},G(t)}function Y(t,e){return Y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Y(t,e)}function J(t){var e=function(t,e){if("object"!=q(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=q(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==q(e)?e:e+""}var Z=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=K(this,e,[].concat(a)),o=[],(n=J(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&&Y(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&&$(r.prototype,n),o&&$(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(H);function Q(t){return Q="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},Q(t)}function W(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,ot(n.key),n)}}function X(t,e,r){return e=et(e),function(t,e){if(e&&("object"==Q(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,tt()?Reflect.construct(e,r||[],et(t).constructor):e.apply(t,r))}function tt(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(tt=function(){return!!t})()}function et(t){return et=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},et(t)}function rt(t,e){return rt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},rt(t,e)}function nt(t,e,r){return(e=ot(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ot(t){var e=function(t,e){if("object"!=Q(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Q(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Q(e)?e:e+""}var it=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),nt(r=X(this,e),"interval",void 0),nt(r,"indicator",void 0),nt(r,"smoothingFactor",void 0),r.interval=t,r.indicator=new Z(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&&rt(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&&W(r.prototype,n),o&&W(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(D);function at(t){return t.length?t.reduce((function(t,e){return t+e}),0)/t.length:0}function ut(t){return ut="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},ut(t)}function lt(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,ht(n.key),n)}}function ct(t,e,r){return e=ft(e),function(t,e){if(e&&("object"==ut(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||[],ft(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 ft(t){return ft=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},ft(t)}function pt(t,e){return pt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},pt(t,e)}function yt(t,e,r){return(e=ht(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ht(t){var e=function(t,e){if("object"!=ut(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=ut(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ut(e)?e:e+""}var vt=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 yt(t=ct(this,e,[].concat(n)),"previousCandle",void 0),yt(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&&pt(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&&lt(r.prototype,n),o&&lt(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(D);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 dt(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,jt(n.key),n)}}function bt(t,e,r){return e=wt(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,gt()?Reflect.construct(e,r||[],wt(t).constructor):e.apply(t,r))}function gt(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(gt=function(){return!!t})()}function wt(t){return wt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},wt(t)}function St(t,e){return St=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},St(t,e)}function Ot(t,e,r){return(e=jt(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function jt(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 Pt=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:it;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),Ot(r=bt(this,e),"interval",void 0),Ot(r,"tr",void 0),Ot(r,"smoothing",void 0),r.interval=t,r.tr=new vt,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&&St(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&&dt(r.prototype,n),o&&dt(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(D);function _t(t){return _t="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(t)}function Nt(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 At(t,e,r){return e=Et(e),function(t,e){if(e&&("object"==_t(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,kt()?Reflect.construct(e,r||[],Et(t).constructor):e.apply(t,r))}function kt(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(kt=function(){return!!t})()}function Et(t){return Et=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Et(t)}function Tt(t,e){return Tt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Tt(t,e)}function xt(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"!=_t(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=_t(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==_t(e)?e:e+""}var It=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:it;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),xt(r=At(this,e),"interval",void 0),xt(r,"movesUp",void 0),xt(r,"movesDown",void 0),xt(r,"previousCandle",void 0),xt(r,"atr",void 0),xt(r,"mdi",void 0),xt(r,"pdi",void 0),r.interval=t,r.atr=new Pt(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&&Tt(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&&Nt(r.prototype,n),o&&Nt(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(D);function Dt(t){return Dt="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},Dt(t)}function Rt(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,Vt(n.key),n)}}function Ct(t,e,r){return e=Bt(e),function(t,e){if(e&&("object"==Dt(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,Ft()?Reflect.construct(e,r||[],Bt(t).constructor):e.apply(t,r))}function Ft(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Ft=function(){return!!t})()}function Bt(t){return Bt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Bt(t)}function Lt(t,e){return Lt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Lt(t,e)}function Ut(t,e,r){return(e=Vt(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Vt(t){var e=function(t,e){if("object"!=Dt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Dt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Dt(e)?e:e+""}var Ht=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:it;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),Ut(r=Ct(this,e),"interval",void 0),Ut(r,"dx",void 0),Ut(r,"adx",void 0),r.interval=t,r.adx=new n(r.interval),r.dx=new It(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&&Lt(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&&Rt(r.prototype,n),o&&Rt(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(D);function qt(t){return qt="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},qt(t)}function $t(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,zt(n.key),n)}}function Kt(t,e,r){return(e=zt(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function zt(t){var e=function(t,e){if("object"!=qt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=qt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==qt(e)?e:e+""}var Gt=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),Kt(this,"interval",void 0),Kt(this,"deviationMultiplier",void 0),Kt(this,"prices",[]),Kt(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=at(this.prices),r=function(t,e){var r=e||at(t),n=at(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 E;return this.result}},{key:"isStable",get:function(){return void 0!==this.result}}])&&$t(t.prototype,e),r&&$t(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function Yt(t){return Yt="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},Yt(t)}function Jt(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,ee(n.key),n)}}function Zt(t,e,r){return e=Wt(e),function(t,e){if(e&&("object"==Yt(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,Qt()?Reflect.construct(e,r||[],Wt(t).constructor):e.apply(t,r))}function Qt(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Qt=function(){return!!t})()}function Wt(t){return Wt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Wt(t)}function Xt(t,e){return Xt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Xt(t,e)}function te(t,e,r){return(e=ee(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ee(t){var e=function(t,e){if("object"!=Yt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Yt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Yt(e)?e:e+""}var re=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),te(r=Zt(this,e,[t]),"interval",void 0),te(r,"pricesCounter",0),te(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&&Xt(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 E;return this.result}},{key:"isStable",get:function(){try{return this.getResult(),!0}catch(t){return!1}}}],n&&Jt(r.prototype,n),o&&Jt(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(H);function ne(t){return ne="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},ne(t)}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"!=ne(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=ne(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ne(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,"short",void 0),ie(this,"long",void 0),ie(this,"signal",void 0),ie(this,"prices",[]),ie(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 E;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&&oe(t.prototype,e),r&&oe(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}();function le(t){return le="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},le(t)}function ce(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,ve(n.key),n)}}function se(t,e,r){return e=pe(e),function(t,e){if(e&&("object"==le(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,fe()?Reflect.construct(e,r||[],pe(t).constructor):e.apply(t,r))}function fe(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(fe=function(){return!!t})()}function pe(t){return pe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},pe(t)}function ye(t,e){return ye=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},ye(t,e)}function he(t,e,r){return(e=ve(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ve(t){var e=function(t,e){if("object"!=le(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=le(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==le(e)?e:e+""}var me=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:it;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),he(r=se(this,e),"interval",void 0),he(r,"previousPrices",[]),he(r,"avgGain",void 0),he(r,"avgLoss",void 0),he(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&&ye(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&&ce(r.prototype,n),o&&ce(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(D);function de(t){return de="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},de(t)}function be(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)||function(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}}(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 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,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,Oe(n.key),n)}}function Se(t,e,r){return(e=Oe(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Oe(t){var e=function(t,e){if("object"!=de(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=de(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==de(e)?e:e+""}var je=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),Se(this,"n",void 0),Se(this,"m",void 0),Se(this,"p",void 0),Se(this,"candles",[]),Se(this,"result",void 0),Se(this,"periodM",void 0),Se(this,"periodP",void 0),this.n=e,this.m=r,this.p=n,this.periodM=new Z(r),this.periodP=new Z(n)},(e=[{key:"getResult",value:function(){if(void 0===this.result)throw new E;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,be(this.candles.map((function(t){return t.high})))),r=Math.min.apply(Math,be(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}}}}])&&we(t.prototype,e),r&&we(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}(),Pe=function(t,e){if(0===t&&(t=.001),0===e&&(e=.001),Math.sign(t)!==Math.sign(e))throw new Error("[BUG] Params must have the same sign in mathLog a=".concat(t," b=").concat(e,"."));t<0&&(t=-t,e=-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 _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 Ne(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=_e(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=_e(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==_e(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}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,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}var Ee={ema:re,sma:Z},Te=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 Ee[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 xe(t){return xe="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},xe(t)}function Me(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)||De(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 Ie(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=xe(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=xe(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==xe(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function De(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}}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){return null==t||!Number.isFinite(t)};function Fe(t){return function(t){if(Array.isArray(t))return Be(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 Be(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)?Be(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 Be(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 Le(t){return Le="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},Le(t)}function Ue(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=Le(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Le(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Le(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ve(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 He="close";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}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){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 ze(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=$e(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=$e(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==$e(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ge(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 Ye(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)?Ye(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 Ye(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 Je(t){return Je="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},Je(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 We(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)?We(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 We(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){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 tr(t){return tr="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},tr(t)}var er={number:function(t){return t},numberCleanString:function(t){return Number(t)},precisionNumberCleanString:function(t,e){return Xe(t,e)}},rr=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 tr(t)}if(n)return"number";if(o)return"numberCleanString";if(e)throw new TypeError("Invalid input: expected a number or numeric string");return tr(t)};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)}var or={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}},ir={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)}},ar=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(nr(t),'" date value passed in selectDateFormatter. Supported formats: \n-').concat(e.join("\n- ")))};if("object"===nr(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 ur(t){return ur="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},ur(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)||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 cr(t,e){if(t){if("string"==typeof t)return sr(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)?sr(t,e):void 0}}function sr(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,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}))},pr=function(t,e){if(!e||"object"!==ur(e))throw new TypeError('Invalid array type: "'.concat(t,'"'));return e.constructor.name};function yr(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 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}}(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 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 vr=function(t,e){var r=new Uint8Array(e);return r[t]=1,r};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}function dr(t){return dr="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},dr(t)}function br(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,gr(n.key),n)}}function gr(t){var e=function(t,e){if("object"!=dr(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=dr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==dr(e)?e:e+""}var wr=function(t,e){return t>e},Sr=function(t,e){return t<e},Or=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:wr(r,o)?a=this.areHighAndLowUndefined?1:[i,o,this.prevLow,this.prevSlow].every((function(t){return!Number.isNaN(t)}))&&Sr(i,o)&&wr(this.prevLow,this.prevSlow)?0:1:Sr(r,o)&&(a=this.areHighAndLowUndefined?0:[n,o,this.prevHigh,this.prevSlow].every((function(t){return!Number.isNaN(t)}))&&wr(n,o)&&Sr(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}}])&&br(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}();function jr(t){return jr="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},jr(t)}function Pr(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)||kr(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 _r(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 Nr(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?_r(Object(r),!0).forEach((function(e){Ar(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):_r(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function Ar(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=jr(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=jr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==jr(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function kr(t,e){if(t){if("string"==typeof t)return Er(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)?Er(t,e):void 0}}function Er(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 Tr(t){return Tr="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},Tr(t)}function xr(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=Tr(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Tr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Tr(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}var Dr=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 Rr(t){return Rr="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},Rr(t)}function Cr(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Fr(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 Fr(t,e){if(t){if("string"==typeof t)return Br(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)?Br(t,e):void 0}}function Br(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 Lr(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=Rr(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Rr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Rr(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ur(t){return function(t){if(Array.isArray(t))return $r(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 Vr(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 Hr(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 $r(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)?$r(t,e):void 0}}function $r(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 Kr={candleFeatures: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=Lr(Lr(Lr(Lr(Lr(Lr(Lr({},"".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=Cr(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 "candleFeatures".'));if(!u.has(v))throw new Error('Target property in "options.colKey" array "'.concat(v,'" not found in priceBased for "candleFeatures".'));y["".concat(s).concat(v)]=new Float64Array(p).fill(NaN)}}catch(t){h.e(t)}finally{h.f()}Object.assign(a,y),l.candleFeatures=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],_=a.close[e],N=(b+g)/2,A=(O+_)/2,k=Math.max(O,_),E=Math.min(O,_),T=Lr(Lr(Lr(Lr(Lr(Lr(Lr({},"".concat(s,"change"),c(_,b)),"".concat(s,"mid_price_change"),c(A,N)),"".concat(s,"upper_wick"),c(j,k)),"".concat(s,"lower_wick"),c(E,P)),"".concat(s,"gap"),c(O,b)),"".concat(s,"body"),c(_,O)),"".concat(s,"range"),c(j,P)),x=!1,M=Cr(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(_,D);T["".concat(s).concat(I)]=R}}catch(t){M.e(t)}finally{M.f()}if(!x)for(var C=0,F=Object.entries(T);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)||Fr(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 Er(t)}(n)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(n)||kr(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")]).filter((function(t){return"one_hot_year"!==t})),colKeySizes:Nr({},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=kr(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:vr(o,r.one_hot_month),one_hot_hour:vr(i,r.one_hot_hour),one_hot_minute:vr(a,r.one_hot_minute),one_hot_day_of_the_week:vr(u,r.one_hot_day_of_the_week),one_hot_day_of_the_month:vr(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=Pr(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=i.retLogs,f=void 0===s||s,p=t.verticalOhlcv,y=t.instances,h=t.len,v=t.scaledGroups,m="".concat(r,"_").concat(n),d=["open","high","low","close"],b=function(t,e){return f?Math.log(t/e):(t-e)/e},g=f?"ret_log_":"ret_",w=c?"":"_".concat(m),S=function(t){return"".concat(g,"heiken_ashi_").concat(t).concat(w)},O=c?"heiken_ashi_cross":"heiken_ashi_cross_".concat(m),j=c?"heiken_ashi":"heiken_ashi_".concat(m);if(0===e){y[j]={emaPre:c?null:Object.fromEntries(d.map((function(t){return[t,new re(r)]}))),emaPost:c?null:Object.fromEntries(d.map((function(t){return[t,new re(n)]}))),prevHaOpen:NaN,prevHaClose:NaN,prevSmOpen:NaN,prevSmClose:NaN,isTrendUp:!1};var P=["body","upper_wick","lower_wick","range"].map(S),_=Object.fromEntries([].concat((o=P,function(t){if(Array.isArray(t))return Re(t)}(o)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(o)||De(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.")}()),[O]).map((function(t){return[t,new Float64Array(h).fill(NaN)]})));Object.assign(p,_),v&&(v.heikenAshi=P),u>0&&t.lag(P,u)}var N,A,k,E,T=p.open[e],x=p.high[e],M=p.low[e],I=p.close[e],D=y[j];if(Ce(T)||Ce(x)||Ce(M)||Ce(I))return!0;if(c)N=T,A=x,k=M,E=I;else{D.emaPre.open.update(T),D.emaPre.high.update(x),D.emaPre.low.update(M),D.emaPre.close.update(I);try{N=D.emaPre.open.getResult(),A=D.emaPre.high.getResult(),k=D.emaPre.low.getResult(),E=D.emaPre.close.getResult()}catch(t){return!0}}if(Ce(N)||Ce(A)||Ce(k)||Ce(E))return!0;var R,C,F,B,L=(N+A+k+E)/4,U=Number.isNaN(D.prevHaOpen)||Number.isNaN(D.prevHaClose)?(N+E)/2:(D.prevHaOpen+D.prevHaClose)/2,V=Math.max(A,U,L),H=Math.min(k,U,L);if(D.prevHaOpen=U,D.prevHaClose=L,c)R=U,C=V,F=H,B=L;else{D.emaPost.open.update(U),D.emaPost.high.update(V),D.emaPost.low.update(H),D.emaPost.close.update(L);try{R=D.emaPost.open.getResult(),C=D.emaPost.high.getResult(),F=D.emaPost.low.getResult(),B=D.emaPost.close.getResult()}catch(t){return!0}}if(Ce(R)||Ce(C)||Ce(F)||Ce(B)||R<=0||C<=0||F<=0||B<=0)return!0;var q=e>0?p[O][e-1]:0,$=D.prevSmOpen,K=D.prevSmClose,z=Number.isFinite($)&&Number.isFinite(K)&&K<=$&&B>R,G=Number.isFinite($)&&Number.isFinite(K)&&K>=$&&B<R;z&&(D.isTrendUp=!0),G&&(D.isTrendUp=!1);var Y=0;e>0&&(Y=D.isTrendUp?q>0?q+1:1:q<0?q-1:-1),D.prevSmOpen=R,D.prevSmClose=B;for(var J=Math.max(R,B),Z=Math.min(R,B),Q=Ie(Ie(Ie(Ie({},S("body"),b(B,R)),S("upper_wick"),b(C,J)),S("lower_wick"),b(Z,F)),S("range"),b(C,F)),W=0,X=Object.entries(Q);W<X.length;W++){var tt=Me(X[W],2),et=tt[0],rt=tt[1];Ce(rt)||t.pushToMain({index:e,key:et,value:rt})}return t.pushToMain({index:e,key:O,value:Y}),!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,Ne(Ne({},s,new me(r)),f,new Z(r))),Object.assign(u,Ne(Ne({},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?Pe(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?Pe(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,ke({},h,new je(r,n,o))),Object.assign(l,ke(ke({},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?Pe(w.stochK,50):w.stochK:NaN,O=w?u?Pe(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.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 Pt(r,it);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?Pe(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,xr({},c,new Ht(r))),Object.assign(a,xr({},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?Pe(h,20):h;t.pushToMain({index:e,key:l,value:v})},ema:Te,sma:Te,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 Z(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],k=i.high[e],E=i.low[e],T=i.close[e],x=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,Fe(P.liquidity.high)):NaN,R=P.liquidity.low.length===m?Math.min.apply(Math,Fe(P.liquidity.low)):NaN;if(e>0){var C=i.close[e-1],F=Math.max(k-E,Math.abs(k-C),Math.abs(E-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,Q=e>0?i[N.lower][e-1]:NaN,W=e>0&&Y<=J&&A>z,X=e>0&&Y>=Q&&A<G;W&&(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),W||X?P.upVol=P.downVol=0:(P.upVol+=T>x?M:0,P.downVol+=T<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: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(k),P.liquidity.low.push(E),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 Ve(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)?Ve(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===He?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 ue(new re(r),new re(n),new re(o)),Object.assign(c,Ue(Ue(Ue({},O,new Float64Array(v).fill(NaN)),j,new Float64Array(v).fill(NaN)),P,new Float64Array(v).fill(NaN)));for(var _=[O,j,P],N=0,A=_;N<A.length;N++){var k=A[N];f.add(k)}u>0&&t.lag(_,u)}var E=s.macd,T=E.numberOfIndicators,x=E.settings,M=T>1||p,I="".concat(r,"_").concat(n,"_").concat(o),D=function(t){return a===He?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 Z(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 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}}(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)},_=O[y],N=_.maxDeque,A=_.minDeque,k=e-n,E=k-r+1,T=["upper","basis","lower"].map(P);if(E<0||k+1>u)return T.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]<E;)t.shift();for(;t.length&&r(e[t.at(-1)],e[k]);)t.pop();t.push(k)};I(N,x,(function(t,e){return t<=e})),I(A,M,(function(t,e){return t>=e}));var D=N.length&&A.length,R=D?x[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 S,O=0,j=Ge(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 Gt(r,n);var P=O>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=Ge(_);try{for(A.s();!(N=A.n()).done;){var k=N.value;w.add(k)}}catch(t){A.e(t)}finally{A.f()}}var E=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?Ke(Object(r),!0).forEach((function(e){ze(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}({},E)),s>0&&t.lag(_,s)}var T=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(T),value:D}),t.pushToMain({index:e,key:"".concat(v,"_middle").concat(T),value:R}),t.pushToMain({index:e,key:"".concat(v,"_lower").concat(T),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 re(r),slowEMA:new re(n)},(a=function(t){var e=function(t,e){if("object"!=Je(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Je(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Je(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=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}}}}(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)||Mr(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})}},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 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}}(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?Xe(g,p):d,O=d>=-125&&d<=125&&!1===w?"Int8Array":"Float64Array";u[g]=fr(O,s,S)}c.hasOwnProperty("crossPairs")||(c.crossPairs={}),c.crossPairs[b]={run:new Or,min:1/0,max:-1/0};var j=null!==a&&a<=125?"Int8Array":"Float64Array";u[b]=fr(j,s,0),i&&(u["one_hot_".concat(b)]=fr("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],k=u[d][e];P.update(e,{fast:A,slow:k})}var E=P.getResult(),T=null!==a?Math.min(Math.max(E,-a),a):E;if(t.pushToMain({index:e,key:b,value:T}),i){var x=T+a,M=2*a+1;t.pushToMain({index:e,key:"one_hot_".concat(b),value:vr(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=yr(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=pr(c,o[c]);o[p]=fr(y,i)}}}catch(t){l.e(t)}finally{l.f()}}var h,v=yr(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 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}var Yr=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=zr(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 _=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)||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.")}()),k=A[0],E=A[1];if(!f.has(k))for(var T=g;T<c;T++)S[T-g][k]="date"===k?or[a](E[T]):O[k](E[T],h)}return S};function Jr(t){return Jr="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},Jr(t)}function Zr(t,e,r){return(e=tn(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Qr(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}}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 Xr(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,tn(n.key),n)}}function tn(t){var e=function(t,e){if("object"!=Jr(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Jr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Jr(e)?e:e+""}var en=function(){return t=function t(e){var r=this,n=e.input,o=e.ticker,a=void 0===o?null:o,l=e.inputParams,c=void 0===l?null:l,p=e.chunkProcess,y=void 0===p?2e3:p,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),u(n,"input",null!==a?"contructor ".concat(a):"constuctor"),0===n.length)throw Error("input OHLCV must not be empty: "+a);f(y,{min:100,max:5e4,allowDecimals:!1},"chunkProcess","constructor"),s(v,"precision","contructor"),s(v,"useFullNames","contructor"),this.chunkProcess=y,this.input=function(t){return function(t){if(Array.isArray(t))return Wr(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.")}()}(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=lr(l[u],2),s=c[0],f=c[1];if("date"===s)o[s]=ar(f),i[s]="Array";else if("volume"===s)o[s]=rr(f,!0),i[s]="Int32Array";else if(n.has(s))o[s]=rr(f,!0,r),i[s]="Float64Array",a.set(s,o[s]);else{var p=rr(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 sr(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||cr(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=lr(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(a));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?(i(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 c(Object.keys(or),o,"dateFormat","getData"),l(t,"options","getData"),Yr({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 c(Object.keys(or),r,"dateFormat","getData"),Yr({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,a=e.verticalOhlcv,u=e.verticalOhlcvKeyNames,l=e.inputTypes,c=e.chunkProcess,s=e.precisionMultiplier,f=e.inputParams;i(f,n);for(var p=0,y=Object.keys(l);p<y.length;p++){var h=y[p];a[h]=fr(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=Hr(w[g],2),O=S[0],j=S[1],P=b[O];if(void 0!==P)if(er.hasOwnProperty(j)){var _=er[j](P,s);e.pushToMain({index:d,key:O,value:_})}else ir.hasOwnProperty(j)?e.pushToMain({index:d,key:O,value:ir[j](P)}):e.pushToMain({index:d,key:O,value:P})}var N=(a.open[d]+a.close[d])/2;e.pushToMain({index:d,key:"mid_price",value:N});var A,k=Vr(f);try{for(k.s();!(A=k.n()).done;){var E=A.value,T=E.key,x=E.params;Kr[T].apply(Kr,[e,d].concat(Ur(x)))}}catch(t){k.e(t)}finally{k.f()}t[d]=null;var M=Object.keys(a);r(e,d,M)||(e.invalidValueIndex=d)}u.push.apply(u,Ur(Object.keys(a)))}(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";a(this),u(t,"arr",r),l(e,"options",r);var n=e.limit,o=void 0===n?null:n,i=e.oneHot,c=void 0!==i&&i;null!==o&&f(o,{min:2,max:this.len},"options.limit",r),s(c,"options.oneHot",r);var p,y=[],h=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Qr(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();!(p=h.n()).done;){var v=p.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:c}]}),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 a(this),u(t,"colKeys",r),f(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.');a(this),f(t,{min:1,max:this.len,allowDecimals:!1},"size",r),l(e,"options",r);var n=e.lag,o=void 0===n?0:n;return f(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.');a(this),l(t,"options",e);var r=t.lag,n=void 0===r?0:r;return f(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";a(this),f(t,{min:1,max:this.len,allowDecimals:!1},"size",r),l(e,"options",r);var n=e.lag,o=void 0===n?0:n,i=e.retLogs,u=void 0!==i&&i;return f(o,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),s(u,"options.retLogs",r),this.inputParams.push({key:r,order:0,params:[t,{lag:o,retLogs:u}]}),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";a(this),f(t,{min:1,max:this.len,allowDecimals:!1},"size",r),l(e,"options",r);var n=e.lag,o=void 0===n?0:n,i=e.retLogs,u=void 0!==i&&i;return f(o,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),s(u,"options.retLogs",r),this.inputParams.push({key:r,order:0,params:[t,{lag:o,retLogs:u}]}),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";a(this),f(t,{min:1,max:this.len,allowDecimals:!1},"size",r),l(e,"options",r);var n=e.target,o=void 0===n?"close":n,i=e.lag,u=void 0===i?0:i;return p(o,"options.target",r),f(u,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),this.inputParams.push({key:r,params:[r,t,{target:o,lag:u}]}),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";a(this),f(t,{min:1,max:this.len,allowDecimals:!1},"size",r),l(e,"options",r);var n=e.target,o=void 0===n?"close":n,i=e.lag,u=void 0===i?0:i;return p(o,"options.target",r),f(u,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),this.inputParams.push({key:r,params:[r,t,{target:o,lag:u}]}),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";a(this);var o=null===t&&null===e;!1===o&&(f(t,{min:1,max:this.len,allowDecimals:!1},"smoothLength",n),f(e,{min:1,max:this.len,allowDecimals:!1},"afterSmoothLength",n)),l(r,"options",n);var i=r.lag,u=void 0===i?0:i,c=r.retLogs,p=void 0!==c&&c;return f(u,{min:0,max:this.len,allowDecimals:!1},"options.lag",n),s(p,"option.retLogs",n),this.inputParams.push({key:n,order:0,params:[t,e,{lag:u,bothNull:o,retLogs:p}]}),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";a(this),f(t,{min:2,max:this.len,allowDecimals:!1},"size",n),f(e,{min:1,max:this.len,allowDecimals:!1},"momentum",n),l(r,"options",n);var o=r.target,i=void 0===o?"close":o,u=r.lag,c=void 0===u?0:u,s=r.atrLength,y=void 0===s?200:s,h=r.bandDistance,v=void 0===h?2:h,m=r.liquidityLookback,d=void 0===m?20:m;return p(i,"options.target",n),f(c,{min:0,max:this.len,allowDecimals:!1},"options.lag",n),f(v,{min:.01,max:10,allowDecimals:!0},"options.bandDistance",n),f(y,{min:2,max:this.len,allowDecimals:!1},"options.atrLength",n),f(d,{min:1,max:this.len,allowDecimals:!1},"options.liquidityLookback",n),this.inputParams.push({key:n,params:[t,e,{target:i,lag:c}]}),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;f(t,{min:1,max:i,allowDecimals:!1},"kPeriod",o),f(e,{min:1,max:i,allowDecimals:!1},"kSlowingPeriod",o),f(r,{min:1,max:i,allowDecimals:!1},"dPeriod",o),l(n,"options",o);var a=n.lag,u=void 0===a?0:a,c=n.retLogs;return f(u,{min:0,max:i,allowDecimals:!1},"options.lag",o),s(c,"retLogs",o),this.inputParams.push({key:o,params:[t,e,r,{lag:u,retLogs:c}]}),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";a(this),f(t,{min:1,max:this.len,allowDecimals:!1},"fast",o),f(e,{min:1,max:this.len,allowDecimals:!1},"slow",o),f(r,{min:1,max:this.len,allowDecimals:!1},"signal",o),l(n,"options",o);var i=n.target,u=void 0===i?"close":i,c=n.lag,s=void 0===c?0:c;p(u,"options.target",o),f(s,{min:0,max:this.len,allowDecimals:!1},"options.lag",o);var y={instanceKey:"".concat(t,"_").concat(e,"_").concat(r).concat("close"===u?"":"_".concat(u))};return this.inputParams.push({key:o,params:[t,e,r,{target:u,lag:s,precomputed:y}]}),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";a(this),f(t,{min:1,max:this.len,allowDecimals:!1},"size",n),f(e,{min:.01,max:50,allowDecimals:!0},"stdDev",n),l(r,"options",n);var o=r.lag,i=void 0===o?0:o;return f(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";a(this),f(t,{min:1,max:this.len,allowDecimals:!1},"size",r),l(e,"options",r);var n=e.target,o=void 0===n?"close":n,i=e.lag,u=void 0===i?0:i,c=e.retLogs,y=void 0!==c&&c;return p(o,"options.target",r),f(u,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),s(y,"retLogs",r),this.inputParams.push({key:r,params:[t,{target:o,lag:u,retLogs:y}]}),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";a(this),f(t,{min:1,max:this.len,allowDecimals:!1},"size",n),f(e,{min:0,max:this.len,allowDecimals:!1},"offset",n),l(r,"options",n);var o=r.lag,i=void 0===o?0:o;return f(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.');a(this),f(t,{min:1,max:this.len,allowDecimals:!1},"fastsize",n),f(e,{min:t,max:this.len,allowDecimals:!1},"slowsize",n),l(r,"options",n);var o=r.lag,i=void 0===o?0:o;return f(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";a(this),l(t,"options",e);var r=t.lag,n=void 0===r?0:r,o=t.oneHot,i=void 0!==o&&o;f(n,{min:0,max:this.len,allowDecimals:!1},"options.lag",e),s(i,"options.oneHot",e);var u=i?"one_hot_":"",c=Zr(Zr(Zr(Zr(Zr({},"".concat(u,"month"),12),"".concat(u,"day_of_the_month"),31),"".concat(u,"day_of_the_week"),7),"".concat(u,"hour"),24),"".concat(u,"minute"),60),p={prefix:u,colKeySizes:c,colKeys:Object.keys(c)};return this.inputParams.push({key:e,order:0,params:[{lag:n,oneHot:i,precompute:p}]}),this}},{key:"candleFeatures",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e="candleFeatures";a(this),l(t,"options",e);var r=t.lag,n=void 0===r?0:r,o=t.colKeys,i=void 0===o?[]:o,c=t.retLogs,p=void 0!==c&&c;return f(n,{min:0,max:this.len,allowDecimals:!1},"options.lag",e),u(i,"options.colKeys",e),s(p,"retLogs",e),this.inputParams.push({key:e,params:[{lag:n,colKeys:i,retLogs:p}]}),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]:{};a(this);var n="mapCols";null==e&&(e=Dr),l(r,"options",n);var o=r.lag,i=void 0===o?0:o,c=r.isPriceBased,p=void 0!==c&&c;if(u(t,"newCols",n),f(i,{min:0,allowDecimals:!1},"options.lag",n),s(p,"isPriceBased","mapCols"),!1===this.precision&&p)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:p}]}),this}}],e&&Xr(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}()})(),OHLCV_INDICATORS=e})();
1
+ /*! For license information please see ohlcv-indicators.min.js.LICENSE.txt */
2
+ 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:()=>Je});var r=function(t,e){if(0===t.length)return!1;for(var r=0;r<t.length;r++){var n=t[r][e];if(null==n||Number.isNaN(n))return!1}return!0};function n(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 o(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)?o(t,e):void 0}}(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,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return u=t.done,t},e:function(t){c=!0,a=t},f:function(){try{u||null==r.return||r.return()}finally{if(c)throw a}}}}function o(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 i=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=r.value;if(!i||"string"!=typeof i.key||!Array.isArray(i.params))throw new TypeError("Each inputParams entry must have an indicator key and a params array.");if(void 0!==i.order&&!Number.isFinite(i.order))throw new TypeError("Indicator order must be a finite number when provided.");var a,u=n(i.params);try{for(u.s();!(a=u.n()).done;){var c=a.value;if("number"==typeof c&&c>e)throw console.log(c,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){u.e(t)}finally{u.f()}}}catch(t){o.e(t)}finally{o.f()}},a=function(t){if(!0===t.isComputing)throw Error("You cannot add indicators while computation is in progress.");if(!0===t.isComputed)throw Error('ohlcv is already computed, you can not add new indicators after "compute", "getLastValues" or "getData" methods are called.')},u=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},l=function(t,e,r,n){if(u(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},s=function(t,e,r){if("boolean"!=typeof t)throw new Error('Param "'.concat(e,'" must be an boolean in "').concat(r,'".'));return!0},f=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},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=function(t,e,r,n){if(0!==r)return!0;for(var o=[],i=0,a=Object.keys(t);i<a.length;i++){var u,c=a[i],l=null===(u=e[c])||void 0===u?void 0:u[r];("volume"===c?Number.isInteger(l)&&l>=0:Number.isFinite(l)&&l>0)||o.push(c)}if(o.length>0)throw new TypeError("Invalid or missing input value(s) [".concat(o.join(", "),"] ")+"at index ".concat(r,' in "').concat(n,'".'));return!0};function p(t){return p="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},p(t)}function y(t,e,r){return(e=b(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function m(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,b(n.key),n)}}function d(t,e,r){return e&&m(t.prototype,e),r&&m(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function b(t){var e=function(t,e){if("object"!=p(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=p(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==p(e)?e:e+""}function g(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function w(t,e,r){return e=P(e),function(t,e){if(e&&("object"==p(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,_()?Reflect.construct(e,r||[],P(t).constructor):e.apply(t,r))}function S(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&&j(t,e)}function O(t){var e="function"==typeof Map?new Map:void 0;return O=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(_())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var o=new(t.bind.apply(t,n));return r&&j(o,r.prototype),o}(t,arguments,P(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),j(r,t)},O(t)}function _(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(_=function(){return!!t})()}function j(t,e){return j=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},j(t,e)}function P(t){return P=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},P(t)}var k=function(t){function e(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Not enough data";return g(this,e),(t=w(this,e,[r])).name="NotEnoughDataError",t}return S(e,t),d(e)}(O(Error)),N=function(){return d((function t(){g(this,t),y(this,"result",void 0)}),[{key:"isStable",get:function(){return void 0!==this.result}},{key:"getResult",value:function(){if(!this.isStable)throw new k;return this.result}}])}(),A=function(t){function e(){var t;g(this,e);for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return y(t=w(this,e,[].concat(n)),"previousResult",void 0),y(t,"highest",void 0),y(t,"lowest",void 0),y(t,"previousHighest",void 0),y(t,"previousLowest",void 0),t}return S(e,t),d(e,[{key:"setResult",value:function(t){return arguments.length>1&&void 0!==arguments[1]&&arguments[1]&&(this.highest=this.previousHighest,this.lowest=this.previousLowest,this.result=this.previousResult),void 0===this.highest?this.highest=t:(this.previousHighest=this.highest,t>this.highest&&(this.highest=t)),void 0===this.lowest?this.lowest=t:(this.previousLowest=this.lowest,t<this.lowest&&(this.lowest=t)),this.previousResult=this.result,this.result=t,t}},{key:"replace",value:function(t){return this.update(t,!0)}},{key:"updates",value:function(t){var e=this;return t.forEach((function(t){return e.update(t)})),this.result}}])}(N);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 T(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function E(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,M(n.key),n)}}function I(t,e,r){return e&&E(t.prototype,e),r&&E(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function M(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+""}function C(t,e,r){return e=F(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,D()?Reflect.construct(e,r||[],F(t).constructor):e.apply(t,r))}function D(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(D=function(){return!!t})()}function F(t){return F=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},F(t)}function L(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&&R(t,e)}function R(t,e){return R=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},R(t,e)}var U=function(t){function e(t){var r;return T(this,e),(r=C(this,e)).interval=t,r.pricesCounter=0,r.weightFactor=2/(t+1),r}return L(e,t),I(e,[{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e&&0!==this.pricesCounter||this.pricesCounter++;var r=e&&void 0!==this.previousResult?this.previousResult:void 0!==this.result?this.result:t;return this.setResult(t*this.weightFactor+r*(1-this.weightFactor),e)}},{key:"isStable",get:function(){return this.pricesCounter>=this.interval}}])}(A),B=function(t){function e(t){var r;return T(this,e),(r=C(this,e)).interval=t,r.prices=new Float64Array(t),r.count=0,r.head=0,r}return L(e,t),I(e,[{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];"number"==typeof t||Array.isArray(this.prices)||(this.prices=Array.from(this.prices));var r=this.interval,n=this.prices;if(e&&this.count){var o=this.head+this.count-1;o>=r&&(o-=r),n[o]=t}else this.count<r?n[this.count++]=t:(n[this.head]=t,++this.head===r&&(this.head=0));if(this.count===r){for(var i=0,a=this.head;a<r;a++)i+=n[a];for(var u=0;u<this.head;u++)i+=n[u];return this.setResult(i/r,e)}}}])}(A),H=function(t){function e(t){var r;return T(this,e),(r=C(this,e)).interval=t,r.indicator=new B(t),r.smoothingFactor=1/t,r}return L(e,t),I(e,[{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(void 0===this.result){var r=this.indicator.update(t);if(void 0!==r)return this.indicator=void 0,this.setResult(r,e)}else{if(e&&void 0!==this.previousResult){var n=(t-this.previousResult)*this.smoothingFactor;return this.setResult(n+this.previousResult,e)}if(!e){var o=(t-this.result)*this.smoothingFactor;return this.setResult(o+this.result,e)}}}}])}(A);function V(t){return V="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},V(t)}function K(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,$(n.key),n)}}function $(t){var e=function(t,e){if("object"!=V(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=V(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==V(e)?e:e+""}function z(t,e,r){return e=G(e),function(t,e){if(e&&("object"==V(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,Z()?Reflect.construct(e,r||[],G(t).constructor):e.apply(t,r))}function Z(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(Z=function(){return!!t})()}function G(t){return G=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},G(t)}function Y(t,e){return Y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Y(t,e)}var q=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:H;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),(r=z(this,e)).interval=t,r.avgGain=new n(t),r.avgLoss=new n(t),r.maxValue=100,r.priceCount=0,r.previousPrice=void 0,r.currentPrice=void 0,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&&Y(t,e)}(e,t),r=e,n=[{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e&&0!==this.priceCount||(this.previousPrice=this.currentPrice,this.priceCount<2&&this.priceCount++),this.currentPrice=t,!(this.priceCount<2)){var r=this.previousPrice;if(t>r?(this.avgLoss.update(0,e),this.avgGain.update(t-r,e)):(this.avgLoss.update(r-t,e),this.avgGain.update(0,e)),this.avgGain.isStable){var n=this.avgLoss.getResult();if(0===n)return this.setResult(100,e);var o=this.avgGain.getResult()/n;return this.setResult(this.maxValue-this.maxValue/(o+1),e)}}}}],n&&K(r.prototype,n),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n}(A),J=function(t,e){if(0===t&&(t=.001),0===e&&(e=.001),Math.sign(t)!==Math.sign(e))throw new Error("[BUG] Params must have the same sign in mathLog a=".concat(t," b=").concat(e,"."));t<0&&(t=-t,e=-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 W(t){return W="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},W(t)}function Q(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=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(t,e)||function(t,e){if(t){if("string"==typeof t)return X(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)?X(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 X(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 tt=function(t){var e=String(t);return 1===t?0:e.length-1},et=function(t,e,r){if("string"!=typeof t)throw new Error("addPrecisionExact expects a string when precision=true");var n="-"===t.charAt(0),o=Q((n?t.slice(1):t).split("."),2),i=o[0],a=o[1],u=void 0===a?"":a,c=void 0===r?tt(e):r,l=u.padEnd(c,"0").slice(0,c),s=parseInt(i+l||"0",10);return n&&(s=-s),s};function rt(t){return rt="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},rt(t)}var nt={number:function(t){return t},numberCleanString:function(t){return Number(t)},precisionNumberCleanString:function(t,e,r){return et(t,e,r)}},ot=function(t,e,r){return function(t,e,r){if("number"!=typeof t||!Number.isFinite(t))throw new Error("revertPrecisionAsNumber expects a finite number");var n=t<0,o=Math.abs(t);o=Math.trunc(o);var i=void 0===r?tt(e):r;if(0===i)return n?-o:o;var a=Math.trunc(o/e),u=String(o%e).padStart(i,"0"),c=0===(u=u.replace(/0+$/,"")).length?String(a):"".concat(a,".").concat(u);return Number(n?"-".concat(c):c)}(t,e,r)},it=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 rt(t)}if(n)return"number";if(o)return"numberCleanString";if(e)throw new TypeError("Invalid input: expected a number or numeric string");return rt(t)};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)}var ut={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}},ct={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)}},lt=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(at(t),'" date value passed in selectDateFormatter. Supported formats: \n-').concat(e.join("\n- ")))};if("object"===at(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 st(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=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(t,e)||ft(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 ft(t,e){if(t){if("string"==typeof t)return ht(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)?ht(t,e):void 0}}function ht(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 vt=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,new o(e).fill(n)};function pt(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 yt=function(t,e){var r,n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).lag,o=void 0===n?0:n,i=[],a=[],u=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 pt(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)?pt(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}}}}(e);try{for(u.s();!(r=u.n()).done;){var c=r.value,l=c.key,s=c.type,h=void 0===s?"Float64Array":s,v=c.fill,p=c.enabled,y=void 0===p||p,m=c.priceBased,d=void 0!==m&&m,b=c.includeInLag,g=void 0===b||b;if(y){if(Object.prototype.hasOwnProperty.call(t.verticalOhlcv,l))throw new Error('Output column "'.concat(l,'" already exists in verticalOhlcv.'));if(/^(?:Int|Uint)/.test(h)&&void 0===v)throw new Error('Integer output column "'.concat(l,'" requires an explicit fill value.'));t.verticalOhlcv[l]=vt(h,t.len,v),d&&t.priceBased.add(l),i.push(l),g&&a.push(l)}}}catch(t){u.e(t)}finally{u.f()}return o>0&&a.length>0&&(f(o,{min:1,max:t.len},"lag","initializeColumns"),t.executionParams.push({key:"lag",params:[a,o]})),i};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 dt(t,e,r){return(e=function(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+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}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){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function wt(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,Ot(n.key),n)}}function St(t,e,r){return e&&wt(t.prototype,e),r&&wt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function Ot(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+""}function _t(t,e,r){return e=Pt(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,jt()?Reflect.construct(e,r||[],Pt(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 Pt(t){return Pt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Pt(t)}function kt(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&&Nt(t,e)}function Nt(t,e){return Nt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Nt(t,e)}var At=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return gt(this,e),(r=_t(this,e)).interval=t,r.deviationMultiplier=n,r.prices=new Float64Array(t),r.count=0,r.head=0,r}return kt(e,t),St(e,[{key:"update",value:function(t){if("number"==typeof t||Array.isArray(this.prices)||(this.prices=Array.from(this.prices)),!(this.count<this.interval)){this.prices[this.head]=t,this.head=(this.head+1)%this.interval;for(var e=0,r=this.head,n=0;n<this.count;n++)e+=this.prices[r],++r===this.interval&&(r=0);var o=this.count?e/this.count:0,i=o;if(!i&&Array.isArray(this.prices)){e=0,r=this.head;for(var a=0;a<this.count;a++)e+=this.prices[r],++r===this.interval&&(r=0);i=this.count?e/this.count:0}var u=0;r=this.head;for(var c=0;c<this.count;c++){var l=this.prices[r]-i;u+=l*l,++r===this.interval&&(r=0)}var s=Math.sqrt(this.count?u/this.count:0);return this.result={lower:o-s*this.deviationMultiplier,middle:o,upper:o+s*this.deviationMultiplier}}this.prices[this.count++]=t}}])}(N),xt=function(t){function e(t,r,n){var o;return gt(this,e),(o=_t(this,e)).short=t,o.long=r,o.signal=n,o.pricesCounter=0,o}return kt(e,t),St(e,[{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e&&0!==this.pricesCounter||this.pricesCounter++;var r=this.short.update(t,e),n=this.long.update(t,e);if(this.pricesCounter>this.long.interval&&this.pricesCounter--,this.pricesCounter===this.long.interval){var o=r-n,i=this.signal.update(o,e);return this.result={histogram:o-i,macd:o,signal:i}}}}])}(N),Tt=function(t){function e(t,r,n){var o;return gt(this,e),(o=_t(this,e)).n=t,o.m=r,o.p=n,o.periodM=new B(r),o.periodP=new B(n),o.candles=new Array(t),o.count=0,o.head=0,o}return kt(e,t),St(e,[{key:"update",value:function(t){if(this.count<this.n?this.candles[this.count++]=t:(this.candles[this.head]=t,this.head=(this.head+1)%this.n),this.count===this.n){for(var e=-1/0,r=1/0,n=this.head,o=0;o<this.count;o++)e=Math.max(e,this.candles[n].high),++n===this.n&&(n=0);n=this.head;for(var i=0;i<this.count;i++)r=Math.min(r,this.candles[n].low),++n===this.n&&(n=0);var a=e-r,u=100*(t.close-r)/(0===a?1:a),c=this.periodM.update(u),l=c&&this.periodP.update(c);if(void 0!==c&&void 0!==l)return this.result={stochD:l,stochK:c}}}}])}(N);function Et(t){return Et="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},Et(t)}function It(t){return It="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},It(t)}var Mt={ema:U,sma:B},Ct=function(t,e,r,n,o){var i,a,u,c=o.target,l=o.lag,s=o.retLogs,f=void 0!==s&&s,h=t.verticalOhlcv,p=t.instances,y=t.priceBased,m="close"!==c?"_".concat(c):"",d="".concat(f?"ret_log_":"").concat(r,"_").concat(n).concat(m);if(0===e){if(v((i={},u=!0,(a=function(t){var e=function(t,e){if("object"!=It(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=It(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==It(e)?e:e+""}(a=c))in i?Object.defineProperty(i,a,{value:u,enumerable:!0,configurable:!0,writable:!0}):i[a]=u,i),h,e,r),!h.hasOwnProperty(c))throw new Error("Target property ".concat(c," not found in verticalOhlcv for ").concat(r,"."));p[d]=new Mt[r](n),yt(t,[{key:d,priceBased:!f&&y.has(c)}],{lag:l})}var b=h[c][e],g=p[d];g.update(b);var w=g.isStable?g.getResult():NaN,S=w;if(f){var O=b/w;S=b>0&&w>0&&O>0&&Number.isFinite(O)?J(O,1):NaN}t.pushToMain({index:e,key:d,value:S})};function Dt(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 Ft=function(t){return null==t||!Number.isFinite(t)};function Lt(t){return Lt="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},Lt(t)}function Rt(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 Ut="close";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 Ht(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 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 Kt(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 $t(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)?$t(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 $t(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 zt=Symbol("lagColumns"),Zt=function(t,e){var r=new Uint8Array(e);return r[t]=1,r};function Gt(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 Yt(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?Gt(Object(r),!0).forEach((function(e){qt(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Gt(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}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 Jt(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 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 Qt(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 Xt(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 te=function(t,e){return t>e},ee=function(t,e){return t<e},re=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})},(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:te(r,o)?a=this.areHighAndLowUndefined?1:[i,o,this.prevLow,this.prevSlow].every((function(t){return!Number.isNaN(t)}))&&ee(i,o)&&te(this.prevLow,this.prevSlow)?0:1:ee(r,o)&&(a=this.areHighAndLowUndefined?0:[n,o,this.prevHigh,this.prevSlow].every((function(t){return!Number.isNaN(t)}))&&te(n,o)&&ee(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--),Object.assign(this,{prevState:a,prevFast:r,prevSlow:o,prevHigh:n,prevLow:i})}},{key:"getResult",value:function(){return this.interval}}])&&Qt(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}();function ne(t){return ne="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},ne(t)}function oe(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 ie(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?oe(Object(r),!0).forEach((function(e){ae(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):oe(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function ae(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=ne(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=ne(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ne(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ue(t,e){if(t){if("string"==typeof t)return ce(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)?ce(t,e):void 0}}function ce(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 le=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];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){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function he(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 ve(t,e,r){return e&&he(t.prototype,e),r&&he(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function pe(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+""}function ye(t,e,r){return e=de(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,me()?Reflect.construct(e,r||[],de(t).constructor):e.apply(t,r))}function me(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(me=function(){return!!t})()}function de(t){return de=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},de(t)}function be(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&&ge(t,e)}function ge(t,e){return ge=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},ge(t,e)}var we=function(t){function e(){var t;return fe(this,e),(t=ye(this,e)).previousCandle=void 0,t.twoPreviousCandle=void 0,t}return be(e,t),ve(e,[{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)}}])}(A),Se=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:H;return fe(this,e),(r=ye(this,e)).interval=t,r.tr=new we,r.smoothing=new n(t),r}return be(e,t),ve(e,[{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)}}])}(A),Oe=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:H;return fe(this,e),(r=ye(this,e)).interval=t,r.atr=new Se(t,n),r.movesDown=new n(t),r.movesUp=new n(t),r.previousCandle=void 0,r.mdi=void 0,r.pdi=void 0,r}return be(e,t),ve(e,[{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-this.previousCandle.high,r=this.previousCandle.low-t.low,n=e<0||e<r?0:e,o=r<0||r<e?0:r;if(this.updateState(t,n,o),this.movesUp.isStable){var i=this.atr.getResult();this.pdi=this.movesUp.getResult()/i,this.mdi=this.movesDown.getResult()/i;var a=Math.abs(this.pdi-this.mdi),u=this.pdi+this.mdi;return 0===u?this.setResult(0,!1):this.setResult(a/u*100,!1)}}else this.updateState(t)}}])}(A),_e=function(t){function e(t){var r,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:H;return fe(this,e),(r=ye(this,e)).interval=t,r.adx=new n(t),r.dx=new Oe(t,n),r}return be(e,t),ve(e,[{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)}}])}(A);function je(t){return je="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},je(t)}function Pe(t){return Pe="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},Pe(t)}function ke(t,e,r){return(e=function(t){var e=function(t,e){if("object"!=Pe(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Pe(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Pe(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Ne(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Ae(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 Ae(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}}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 Te(t){return function(t){if(Array.isArray(t))return Me(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||Ie(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 Ee(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=Ie(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 Ie(t,e){if(t){if("string"==typeof t)return Me(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)?Me(t,e):void 0}}function Me(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={candleFeatures:function(t,e,r){var n=r.lag,o=r.colKeys,i=r.retLogs,a=t.verticalOhlcv,u=t.priceBased,c=t.scaledGroups,l=function(t,e){return i?Math.log(t/e):(t-e)/e},s=i?"ret_log_":"ret_";if(0===e){v({open:!0,high:!0,low:!0,close:!0},a,e,"candleFeatures");var f,h=["change","mid_price_change","upper_wick","lower_wick","gap","body","range"].map((function(t){return{key:"".concat(s).concat(t)}})),p=Ne(o);try{for(p.s();!(f=p.n()).done;){var y=f.value;if(v(ke({},y,!0),a,e,"candleFeatures"),!a.hasOwnProperty(y))throw new Error('Target property in "options.colKey" array "'.concat(y,'" not found in verticalOhlcv for "candleFeatures".'));if(!u.has(y))throw new Error('Target property in "options.colKey" array "'.concat(y,'" not found in priceBased for "candleFeatures".'));h.push({key:"".concat(s).concat(y)})}}catch(t){p.e(t)}finally{p.f()}c.candleFeatures=yt(t,h,{lag:n})}var m,d,b=a.close[e-1],g=a.open[e-1];if(void 0!==b){var w=a.open[e],S=a.high[e],O=a.low[e],_=a.close[e],j=(b+g)/2,P=(w+_)/2,k=Math.max(w,_),N=Math.min(w,_),A=l(_,b),x=l(P,j),T=l(S,k),E=l(N,O),I=l(w,b),M=l(_,w),C=l(S,O);if(0===o.length)return t.pushToMain({index:e,key:"".concat(s,"change"),value:A}),t.pushToMain({index:e,key:"".concat(s,"mid_price_change"),value:x}),t.pushToMain({index:e,key:"".concat(s,"upper_wick"),value:T}),t.pushToMain({index:e,key:"".concat(s,"lower_wick"),value:E}),t.pushToMain({index:e,key:"".concat(s,"gap"),value:I}),t.pushToMain({index:e,key:"".concat(s,"body"),value:M}),void t.pushToMain({index:e,key:"".concat(s,"range"),value:C});var D,F,L=ke(ke(ke(ke(ke(ke(ke({},"".concat(s,"change"),A),"".concat(s,"mid_price_change"),x),"".concat(s,"upper_wick"),T),"".concat(s,"lower_wick"),E),"".concat(s,"gap"),I),"".concat(s,"body"),M),"".concat(s,"range"),C),R=!1,U=Ne(o);try{for(U.s();!(D=U.n()).done;){var B=D.value,H=a[B][e];if(null==(F=H)||!Number.isFinite(F)){R=!0;break}var V=l(_,H);L["".concat(s).concat(B)]=V}}catch(t){U.e(t)}finally{U.f()}if(!R)for(var K=0,$=Object.entries(L);K<$.length;K++){var z=(m=$[K],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=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(m,d)||Ae(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.")}()),Z=z[0],G=z[1];t.pushToMain({index:e,key:Z,value:G})}}},dateTime:function(t,e,r){var n,o=r.lag,i=r.oneHot,a=r.precompute,u=t.instances,c=t.verticalOhlcv,l=a.prefix;if(0===e){if(!t.dateType)throw Error('dateTime method found and invalid "date" in input ohlcv');Object.assign(u,{dateTime:{formatter:new Intl.DateTimeFormat("en-US-u-ca-gregory-nu-latn",{timeZone:t.timeZone,year:"numeric",month:"numeric",day:"numeric",weekday:"short",hour:"numeric",minute:"numeric",hourCycle:"h23"}),colKeys:[].concat((n=a.colKeys,function(t){if(Array.isArray(t))return ce(t)}(n)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(n)||ue(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(l,"year")]).filter((function(t){return"one_hot_year"!==t})),colKeySizes:ie({},a.colKeySizes)}});var s=u.dateTime.colKeys;yt(t,s.map((function(t){return{key:t,type:i?"Array":"Int16Array",fill:i?null:0}})),{lag:o})}var f,h,v,p,y,m,d,b=u.dateTime,g=b.colKeySizes,w=b.formatter,S=c.date[e],O=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=ue(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.formatToParts(S));try{for(O.s();!(d=O.n()).done;){var _=d.value;switch(_.type){case"year":f=_.value;break;case"month":h=_.value;break;case"hour":v=_.value;break;case"minute":p=_.value;break;case"weekday":y=_.value;break;case"day":m=_.value}}}catch(t){O.e(t)}finally{O.f()}var j=Number(f),P=Number(h)-1,k=Number(v),N=Number(p),A=le.indexOf(y),x=Number(m)-1;if(!i)return t.pushToMain({index:e,key:"year",value:j}),t.pushToMain({index:e,key:"month",value:P+1}),t.pushToMain({index:e,key:"hour",value:k}),t.pushToMain({index:e,key:"minute",value:N}),t.pushToMain({index:e,key:"day_of_the_week",value:(A+6)%7+1}),void t.pushToMain({index:e,key:"day_of_the_month",value:x+1});var T=Zt(P,g.one_hot_month),E=Zt(k,g.one_hot_hour),I=Zt(N,g.one_hot_minute),M=Zt(A,g.one_hot_day_of_the_week),C=Zt(x,g.one_hot_day_of_the_month);t.pushToMain({index:e,key:"one_hot_month",value:T}),t.pushToMain({index:e,key:"one_hot_hour",value:E}),t.pushToMain({index:e,key:"one_hot_minute",value:I}),t.pushToMain({index:e,key:"one_hot_day_of_the_week",value:M}),t.pushToMain({index:e,key:"one_hot_day_of_the_month",value:C})},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,c=i.bothNull,l=void 0!==c&&c,s=i.retLogs,f=void 0===s||s,h=t.verticalOhlcv,p=t.instances,y=t.scaledGroups,m="".concat(r,"_").concat(n),d=function(t,e){return f?Math.log(t/e):(t-e)/e},b=f?"ret_log_":"ret_",g=l?"":"_".concat(m),w=function(t){return"".concat(b,"heiken_ashi_").concat(t).concat(g)},S=l?"heiken_ashi_cross":"heiken_ashi_cross_".concat(m),O=l?"heiken_ashi":"heiken_ashi_".concat(m);if(0===e){v({open:!0,high:!0,low:!0,close:!0},h,e,"heikenAshi");var _=["open","high","low","close"];p[O]={emaPre:l?null:Object.fromEntries(_.map((function(t){return[t,new U(r)]}))),emaPost:l?null:Object.fromEntries(_.map((function(t){return[t,new U(n)]}))),prevHaOpen:NaN,prevHaClose:NaN,prevSmOpen:NaN,prevSmClose:NaN,isTrendUp:!1};var j=["body","upper_wick","lower_wick","range"].map(w);yt(t,[].concat((o=j,function(t){if(Array.isArray(t))return Dt(t)}(o)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(o)||function(t,e){if(t){if("string"==typeof t)return Dt(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)?Dt(t,e):void 0}}(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.")}()),[S]).map((function(t){return{key:t}})),{lag:u}),y&&(y.heikenAshi=j)}var P=h.open[e],k=h.high[e],N=h.low[e],A=h.close[e],x=p[O];if(!(Ft(P)||Ft(k)||Ft(N)||Ft(A))){var T,E,I,M;if(l)T=P,E=k,I=N,M=A;else{if(x.emaPre.open.update(P),x.emaPre.high.update(k),x.emaPre.low.update(N),x.emaPre.close.update(A),!(x.emaPre.open.isStable&&x.emaPre.high.isStable&&x.emaPre.low.isStable&&x.emaPre.close.isStable))return;T=x.emaPre.open.getResult(),E=x.emaPre.high.getResult(),I=x.emaPre.low.getResult(),M=x.emaPre.close.getResult()}if(!(Ft(T)||Ft(E)||Ft(I)||Ft(M))){var C,D,F,L,R=(T+E+I+M)/4,B=Number.isNaN(x.prevHaOpen)||Number.isNaN(x.prevHaClose)?(T+M)/2:(x.prevHaOpen+x.prevHaClose)/2,H=Math.max(E,B,R),V=Math.min(I,B,R);if(x.prevHaOpen=B,x.prevHaClose=R,l)C=B,D=H,F=V,L=R;else{if(x.emaPost.open.update(B),x.emaPost.high.update(H),x.emaPost.low.update(V),x.emaPost.close.update(R),!(x.emaPost.open.isStable&&x.emaPost.high.isStable&&x.emaPost.low.isStable&&x.emaPost.close.isStable))return;C=x.emaPost.open.getResult(),D=x.emaPost.high.getResult(),F=x.emaPost.low.getResult(),L=x.emaPost.close.getResult()}if(!(Ft(C)||Ft(D)||Ft(F)||Ft(L)||C<=0||D<=0||F<=0||L<=0)){var K=e>0?h[S][e-1]:0,$=x.prevSmOpen,z=x.prevSmClose,Z=Number.isFinite($)&&Number.isFinite(z)&&z<=$&&L>C,G=Number.isFinite($)&&Number.isFinite(z)&&z>=$&&L<C;Z&&(x.isTrendUp=!0),G&&(x.isTrendUp=!1);var Y=0;e>0&&(Y=x.isTrendUp?K>0?K+1:1:K<0?K-1:-1),x.prevSmOpen=C,x.prevSmClose=L;var q=Math.max(C,L),J=Math.min(C,L),W=d(L,C),Q=d(D,q),X=d(J,F),tt=d(D,F);Ft(W)||t.pushToMain({index:e,key:w("body"),value:W}),Ft(Q)||t.pushToMain({index:e,key:w("upper_wick"),value:Q}),Ft(X)||t.pushToMain({index:e,key:w("lower_wick"),value:X}),Ft(tt)||t.pushToMain({index:e,key:w("range"),value:tt}),t.pushToMain({index:e,key:S,value:Y})}}}},rsi:function(t,e,r,n){var o=n.target,i=n.lag,a=n.retLogs,u=t.verticalOhlcv,c=t.instances,l="close"===o?"":"_".concat(o),s=a?"ret_log_rsi_".concat(r).concat(l):"rsi_".concat(r).concat(l),f=a?"ret_log_rsi_sma_".concat(r).concat(l):"rsi_sma_".concat(r).concat(l);if(0===e){if(v(dt({},o,!0),u,e,"rsi"),!u.hasOwnProperty(o))throw new Error("Target property ".concat(o," not found in verticalOhlcv for rsi."));Object.assign(c,dt(dt({},s,new q(r)),f,new B(r))),yt(t,[{key:s},{key:f}],{lag:i})}var h=u[o][e];c[s].update(h);var p=c[s].isStable?c[s].getResult():NaN,y=Number.isNaN(p)?NaN:a?J(p,50):p;t.pushToMain({index:e,key:s,value:y}),Number.isNaN(p)||c[f].update(p);var m=c[f].isStable?c[f].getResult():NaN,d=Number.isNaN(m)?NaN:a?J(m,50):m;t.pushToMain({index:e,key:f,value:d})},mfi:function(t,e,r,n){var o=n.lag,i=n.retLogs,a=t.verticalOhlcv,u=t.instances,c="".concat(i?"ret_log_":"","mfi_").concat(r);0===e&&(v({high:!0,low:!0,close:!0,volume:!0},a,e,"mfi"),yt(t,[{key:c}],{lag:o}),u[c]={flows:new Float64Array(r),next:0,count:0,previousTypical:NaN});var l=u[c],s=(a.high[e]+a.low[e]+a.close[e])/3,f=s-l.previousTypical;if(l.previousTypical=s,0!==e){var h=s*a.volume[e];if(l.flows[l.next]=Number.isFinite(f)&&Number.isFinite(h)&&h>=0?Math.sign(f)*h:NaN,l.next=(l.next+1)%r,l.count<r&&l.count++,!(l.count<r)){for(var p=0,y=0,m=l.next,d=0;d<r;d++){var b=l.flows[m];if(Number.isNaN(b))return;b>0?p+=b:b<0&&(y-=b),++m===r&&(m=0)}if(Number.isFinite(p)&&Number.isFinite(y)){var g=0===p&&0===y?NaN:100-100/(1+p/y);t.pushToMain({index:e,key:c,value:Number.isNaN(g)?NaN:i?J(g,50):g})}}}},stochastic:function(t,e,r,n,o,i){var a,u,c,l=i.lag,s=i.retLogs,f=t.verticalOhlcv,h=t.instances,p=t.useFullNames,y=14!==r||3!==n||3!==o||p?"_".concat(r,"_").concat(n,"_").concat(o):"",m=s?"ret_log_stochastic_d".concat(y):"stochastic_d".concat(y),d=s?"ret_log_stochastic_k".concat(y):"stochastic_k".concat(y),b=y;0===e&&(v({high:!0,low:!0,close:!0},f,e,"stochastic"),Object.assign(h,(a={},u=b,c=new Tt(r,n,o),(u=function(t){var e=function(t,e){if("object"!=Et(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Et(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Et(e)?e:e+""}(u))in a?Object.defineProperty(a,u,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[u]=c,a)),yt(t,[{key:m},{key:d}],{lag:l}));var g=f.close[e],w=f.low[e],S=f.high[e];h[b].update({close:g,low:w,high:S});var O=h[b].isStable?h[b].getResult():null,_=O?s?J(O.stochK,50):O.stochK:NaN,j=O?s?J(O.stochD,50):O.stochD:NaN;t.pushToMain({index:e,key:d,value:_}),t.pushToMain({index:e,key:m,value:j})},atr:function(t,e,r,n){var o=n.lag,i=n.retLogs,a=t.verticalOhlcv,u=t.instances,c=i?"ret_log_atr_".concat(r):"atr_".concat(r);if(0===e){var l=t.instances,s=t.verticalOhlcv;v({high:!0,low:!0,close:!0},s,e,"atr"),l[c]=new Se(r,H),yt(t,[{key:c,priceBased:!i}],{lag:o})}var f={high:a.high[e],low:a.low[e],close:a.close[e]},h=u[c];h.update(f);var p=h.isStable?h.getResult():NaN;t.pushToMain({index:e,key:c,value:Number.isNaN(p)?NaN:i?J(p,f.close):p})},adx:function(t,e,r,n){var o,i,a,u=n.lag,c=n.retLogs,l=t.verticalOhlcv,s=t.instances,f=(t.useFullNames,c?"ret_log_adx_".concat(r):"adx_".concat(r)),h="adx_".concat(r);if(0===e){if(v({high:!0,low:!0,close:!0},l,e,"adx"),!l.hasOwnProperty("high"))throw new Error("Property high not found in verticalOhlcv for adx.");if(!l.hasOwnProperty("low"))throw new Error("Property low not found in verticalOhlcv for adx.");if(!l.hasOwnProperty("close"))throw new Error("Property close not found in verticalOhlcv for adx.");Object.assign(s,(o={},i=h,a=new _e(r),(i=function(t){var e=function(t,e){if("object"!=je(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=je(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==je(e)?e:e+""}(i))in o?Object.defineProperty(o,i,{value:a,enumerable:!0,configurable:!0,writable:!0}):o[i]=a,o)),yt(t,[{key:f}],{lag:u})}var p=l.high[e],y=l.low[e],m=l.close[e];s[h].update({high:p,low:y,close:m});var d=s[h].isStable?s[h].getResult():NaN,b=Number.isNaN(d)?NaN:c?J(d,20):d;t.pushToMain({index:e,key:f,value:b})},ema:Ct,sma:Ct,macd:function(t,e,r,n,o,i){var a,u,c,l=i.target,s=i.lag,f=i.precomputed,h=t.verticalOhlcv,p=t.instances,y=t.useFullNames,m=f.instanceKey;if(0===e){v((a={},c=!0,(u=function(t){var e=function(t,e){if("object"!=Lt(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=Lt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==Lt(e)?e:e+""}(u=l))in a?Object.defineProperty(a,u,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[u]=c,a),h,e,"macd");var d=t.inputParams;if(!h.hasOwnProperty(l))throw new Error("Target property ".concat(l," not found in verticalOhlcv for macd."));var b,g=0,w=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 Rt(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)?Rt(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(w.s();!(b=w.n()).done;)"macd"===b.value.key&&g++}catch(t){w.e(t)}finally{w.f()}var S=g>1||y,O="".concat(r,"_").concat(n,"_").concat(o),_=function(t){return l===Ut?S?"macd_".concat(t,"_").concat(O):"macd_".concat(t):S?"macd_".concat(t,"_").concat(l,"_").concat(O):"macd_".concat(t,"_").concat(l)},j=_("diff"),P=_("dea"),k=_("histogram");p.hasOwnProperty("macd")||(p.macd={numberOfIndicators:g,settings:{}}),p.macd.settings[m]=new xt(new U(r),new U(n),new U(o)),yt(t,[j,P,k].map((function(t){return{key:t,priceBased:!0}})),{lag:s})}var N=p.macd,A=N.numberOfIndicators,x=N.settings,T=A>1||y,E="".concat(r,"_").concat(n,"_").concat(o),I=function(t){return l===Ut?T?"macd_".concat(t,"_").concat(E):"macd_".concat(t):T?"macd_".concat(t,"_").concat(l,"_").concat(E):"macd_".concat(t,"_").concat(l)},M=I("diff"),C=I("dea"),D=I("histogram"),F=x[m],L=h[l][e];F.update(L);var R=F.isStable?F.getResult():null;t.pushToMain({index:e,key:M,value:R?R.macd:NaN}),t.pushToMain({index:e,key:C,value:R?R.signal:NaN}),t.pushToMain({index:e,key:D,value:R?R.histogram:NaN})},volumeDelta:function(t,e,r){var n=r.lag,o=void 0===n?0:n,i=t.verticalOhlcv,a=t.instances,u="volume_delta";if(0===e){v({open:!0,close:!0,volume:!0},i,e,"volumeDelta"),a[u]||(a[u]={isBuyVolume:!0,cross:0});var c=["".concat(u,"_high"),"".concat(u,"_low"),"".concat(u,"_close"),"".concat(u,"_cross")];yt(t,c.map((function(t){return{key:t}})),{lag:o})}var l=a[u],s=(l.hasInvalidInputValue,i.volume[e]);if(0!==s){var f=i.open[e],h=i.close[e],p=e>0?i.close[e-1]:NaN,y=l.isBuyVolume;h>f?y=!0:h<f?y=!1:h>p?y=!0:h<p&&(y=!1),l.isBuyVolume=y,e<1?l.cross=y?1:-1:y?l.cross>0?l.cross=l.cross+1:l.cross=1:l.cross>0?l.cross=-1:l.cross=l.cross-1;var m=y?s:-s,d=m,b=Math.max(m,0),g=Math.min(m,0);t.pushToMain({index:e,key:"".concat(u,"_high"),value:b}),t.pushToMain({index:e,key:"".concat(u,"_low"),value:g}),t.pushToMain({index:e,key:"".concat(u,"_close"),value:d}),t.pushToMain({index:e,key:"".concat(u,"_cross"),value:l.cross})}},relativeVolume:function(t,e,r,n){var o=n.lag,i=n.retLogs,a=void 0!==i&&i,u="".concat(a?"ret_log_":"","relative_volume_").concat(r),c=t.instances,l=t.verticalOhlcv;0===e&&(v({volume:!0},l,e,"relativeVolume"),c[u]={instance:new B(r),prevRelativeVolumeSma:NaN},yt(t,[{key:u}],{lag:o}));var s=l.volume[e];if(0!==s){var f=c[u].instance;f.update(s);var h=f.isStable?f.getResult():NaN,p=c[u].prevRelativeVolumeSma;if(c[u].prevRelativeVolumeSma=h,!Number.isNaN(h)&&!Number.isNaN(p)){var y=s/p,m=a?s>0&&p>0&&y>0&&Number.isFinite(y)?J(y,1):NaN:y;t.pushToMain({index:e,key:u,value:m})}}},donchianChannels:function(t,e,r,n,o){var i=t.verticalOhlcv,a=t.instances,u=t.len,c=t.inputParams,l=t.useFullNames,s=o.lag,f=void 0===s?0:s,h=o.retLogs,p=void 0!==h&&h,y="".concat(r,"_").concat(n),m="".concat(p?"ret_log_":"").concat(y),d="".concat(p?"ret_log_":"","donchian_channel");if(0===e){v({high:!0,low:!0},i,e,"donchianChannels"),p&&v({close:!0},i,e,"donchianChannels");var b=c.filter((function(t){return"donchianChannels"===t.key})).length,g=b>1||l,w=(p?["width","position"]:["upper","basis","lower"]).map((function(t){return g?"".concat(d,"_").concat(t,"_").concat(y):"".concat(d,"_").concat(t)}));a.donchian_channel||(a.donchian_channel={numberOfIndicators:b,settings:{}}),a.donchian_channel.numberOfIndicators=b,a.donchian_channel.settings[m]={maxDeque:{indices:[],head:0,length:0},minDeque:{indices:[],head:0,length:0}},yt(t,w.map((function(t){return{key:t,priceBased:!p}})),{lag:f})}var S=a.donchian_channel,O=S.numberOfIndicators,_=S.settings,j=O>1||l,P=function(t){return j?"".concat(d,"_").concat(t,"_").concat(y):"".concat(d,"_").concat(t)},k=_[m],N=k.maxDeque,A=k.minDeque,x=e-n,T=x-r+1;if(!(x<0||x>=u)){var E=i.high,I=i.low,M=function(t,e,n){for(var o=t.indices;t.length&&o[t.head]<T;)t.head=(t.head+1)%r,t.length--;for(;t.length&&n(e[o[(t.head+t.length-1)%r]],e[x]);)t.length--;o[(t.head+t.length)%r]=x,t.length++};if(M(N,E,(function(t,e){return t<=e})),M(A,I,(function(t,e){return t>=e})),!(T<0)){var C=N.length&&A.length,D=C?E[N.indices[N.head]]:NaN,F=C?I[A.indices[A.head]]:NaN;if(p){var L=NaN,R=NaN,U=D/F;if(F>0&&D>=F&&Number.isFinite(D)&&Number.isFinite(U)){var B=J(U,1);L=B/2;var H=i.close[e],V=H/F;if(B>0&&H>0&&V>0&&Number.isFinite(V)){var K=2*J(V,1)/B-1;Number.isFinite(K)&&(R=K)}}return t.pushToMain({index:e,key:P("width"),value:L}),void t.pushToMain({index:e,key:P("position"),value:R})}var $=C?(D+F)/2:NaN;t.pushToMain({index:e,key:P("upper"),value:D}),t.pushToMain({index:e,key:P("basis"),value:$}),t.pushToMain({index:e,key:P("lower"),value:F})}}},bollingerBands:function(t,e,r,n){var o,i,a,u,c,l,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},f=s.lag,h=s.retLogs,p=void 0!==h&&h,y=t.verticalOhlcv,m=t.instances,d=t.useFullNames,b="".concat(r,"_").concat(n),g="".concat(p?"ret_log_":"").concat(b),w="".concat(p?"ret_log_":"","bollinger_bands"),S="close";if(0===e){var O=t.inputParams,_=t.verticalOhlcv,j=t.priceBased;if(v((u={},l=!0,(c=function(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+""}(c=S))in u?Object.defineProperty(u,c,{value:l,enumerable:!0,configurable:!0,writable:!0}):u[c]=l,u),_,e,"bollingerBands"),!(S in _))throw new Error('bollingerBands could not find target "'.concat(S,'"'));var P,k=0,N=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 Ht(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)?Ht(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}}}}(O);try{for(N.s();!(P=N.n()).done;)"bollingerBands"===P.value.key&&k++}catch(t){N.e(t)}finally{N.f()}m.bollinger_bands||(m.bollinger_bands={numberOfIndicators:k,settings:{}}),m.bollinger_bands.settings[g]=new At(r,n);var A=k>1||d?"_".concat(b):"",x=p?["".concat(w,"_width").concat(A),"".concat(w,"_position").concat(A)]:["".concat(w,"_upper").concat(A),"".concat(w,"_middle").concat(A),"".concat(w,"_lower").concat(A)];yt(t,x.map((function(t){return{key:t,priceBased:!p&&j.has(S)}})),{lag:f})}var T=m.bollinger_bands.numberOfIndicators>1||d?"_".concat(b):"",E=m.bollinger_bands.settings[g],I=y[S][e];E.update(I);var M=E.isStable?E.getResult():null,C=null!==(o=null==M?void 0:M.upper)&&void 0!==o?o:NaN,D=null!==(i=null==M?void 0:M.middle)&&void 0!==i?i:NaN,F=null!==(a=null==M?void 0:M.lower)&&void 0!==a?a:NaN;if(p){var L=NaN,R=NaN,U=C/F;if(F>0&&C>=F&&Number.isFinite(C)&&Number.isFinite(U)){var B=J(U,1);L=B/2;var H=I/F;if(B>0&&I>0&&H>0&&Number.isFinite(H)){var V=2*J(H,1)/B-1;Number.isFinite(V)&&(R=V)}}return t.pushToMain({index:e,key:"".concat(w,"_width").concat(T),value:L}),void t.pushToMain({index:e,key:"".concat(w,"_position").concat(T),value:R})}t.pushToMain({index:e,key:"".concat(w,"_upper").concat(T),value:C}),t.pushToMain({index:e,key:"".concat(w,"_middle").concat(T),value:D}),t.pushToMain({index:e,key:"".concat(w,"_lower").concat(T),value:F})},volumeOscillator:function(t,e,r,n,o){var i,a,u,c=o.lag,l=o.retLogs,s=t.verticalOhlcv,f=t.instances,h=l?"ret_log_volume_oscillator_".concat(r,"_").concat(n):"volume_oscillator_".concat(r,"_").concat(n);0===e&&(v({volume:!0},s,e,"volumeOscillator"),Object.assign(f,(i={},a=h,u={fastEMA:new U(r),slowEMA:new U(n)},(a=function(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+""}(a))in i?Object.defineProperty(i,a,{value:u,enumerable:!0,configurable:!0,writable:!0}):i[a]=u,i)),yt(t,[{key:h}],{lag:c}));var p=f[h],y=p.fastEMA,m=p.slowEMA,d=s.volume[e];if(0!==d){y.update(d),m.update(d);var b,g=y.isStable?y.getResult():NaN,w=m.isStable?m.getResult():NaN;Number.isNaN(g)||Number.isNaN(w)||(b=l?J(g,w):100*(g-w)/w,t.pushToMain({index:e,key:h,value:b}))}},crossPairs:function(t,e,r,n){var o,i=n.oneHot,a=n.limit,u=t.verticalOhlcv,c=t.verticalOhlcvTempCols,l=t.instances,s=t.len,f=t.precision,h=t.precisionMultiplier,p=t.priceBased,y=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 Jt(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)?Jt(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(y.s();!(o=y.n()).done;){var m=o.value,d=m.fast,b=m.slow,g="".concat(d,"_x_").concat(b);if(0===e){if(v(Yt(Yt({},"price"===d?{high:!0,low:!0,close:!0}:qt({},d,!0)),"number"==typeof b?{}:qt({},b,!0)),u,e,"crossPairs"),"number"==typeof b){var w=b.toString();c.add(w);var S=f&&("price"===d||p.has(d)),O=S?et(w,h):b,_=b>=-125&&b<=125&&!1===S?"Int8Array":"Float64Array";u[w]=vt(_,s,O)}l.hasOwnProperty("crossPairs")||(l.crossPairs={}),l.crossPairs[g]={run:new re,min:1/0,max:-1/0},yt(t,[{key:g,type:null!==a&&a<=125?"Int8Array":"Float64Array",fill:0},{key:"one_hot_".concat(g),type:"Array",enabled:i}])}else if(e+1===s){if("price"!==d&&!u.hasOwnProperty(d))throw new Error('crossPairs invalid param: fast "'.concat(d,'" not found in "verticalOhlcv": ').concat(JSON.stringify(Object.keys(u))));if(!u.hasOwnProperty(b))throw new Error('crossPairs invalid param: slow "'.concat(b,'" not found in "verticalOhlcv": ').concat(JSON.stringify(Object.keys(u))))}if("price"!==d&&!u.hasOwnProperty(d))return;if(!u.hasOwnProperty(b))return;var j=l.crossPairs[g].run;if("price"===d){var P=u.close[e],k=u[b][e];j.update(e,{fast:P,slow:k,high:u.high[e],low:u.low[e]})}else{var N=u[d][e],A=u[b][e];j.update(e,{fast:N,slow:A})}var x=j.getResult(),T=null!==a?Math.min(Math.max(x,-a),a):x;if(t.pushToMain({index:e,key:g,value:T}),i){var E=T+a,I=2*a+1;t.pushToMain({index:e,key:"one_hot_".concat(g),value:Zt(E,I)})}}}catch(t){y.e(t)}finally{y.f()}},lag:function(t,e,r,n){var o,i=t.verticalOhlcv,a=t.priceBased,u=t.instances;if(0===e){var c,l=new Map,s=Kt(r);try{for(s.s();!(c=s.n()).done;){var f=c.value;if(!i.hasOwnProperty(f))throw new Error('Lag processing invoked by col "'.concat(f,'" was not found in "verticalOhlcv".'));for(var h=a.has(f),v=Array.isArray(i[f])?"Array":"Float64Array",p=[],y=[],m=1;m<=n;m++){var d="".concat(f,"_lag_").concat(m);p.push({key:d,type:v,priceBased:h,includeInLag:!1}),y.push(d)}yt(t,p),l.set(f,y)}}catch(t){s.e(t)}finally{s.f()}u[zt]||(u[zt]=new WeakMap),u[zt].set(r,l)}var b,g=null===(o=u[zt])||void 0===o?void 0:o.get(r),w=Kt(r);try{for(w.s();!(b=w.n()).done;)for(var S=b.value,O=null==g?void 0:g.get(S),_=i[S],j=Array.isArray(_)?null:NaN,P=1;P<=n;P++){var k,N=null!==(k=null==O?void 0:O[P-1])&&void 0!==k?k:"".concat(S,"_lag_").concat(P),A=e-P,x=A<0||null==_[A]?j:_[A];t.pushToMain({index:e,key:N,value:x})}}catch(t){w.e(t)}finally{w.f()}}};function De(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 Fe=function(t){var e,r,n=t.main,o=t.skipNull,i=void 0!==o&&o,a=t.startIndex,u=void 0===a?0:a,c=t.dateFormat,l=n.verticalOhlcv,s=n.invalidValueIndex,f=n.len,h=n.verticalOhlcvKeyNames,v=n.verticalOhlcvTempCols,p=n.priceBased,y=n.precision,m=n.precisionMultiplier;if(0===h.length)return[];for(var d=y&&"number"==typeof m?tt(m):void 0,b=i&&s>=0?s+1:0,g=Math.max(b,u),w=f-g,S=Array.from({length:w},(function(){return{}})),O=0,_=Object.entries(l);O<_.length;O++){var j=(e=_[O],r=2,function(t){if(Array.isArray(t))return t}(e)||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=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(e,r)||function(t,e){if(t){if("string"==typeof t)return De(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)?De(t,e):void 0}}(e,r)||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.")}()),P=j[0],k=j[1];if(!v.has(P))if("date"===P)for(var N=ut[c],A=g;A<f;A++)S[A-g][P]=N(k[A]);else if(y&&p.has(P))for(var x=ot,T=g;T<f;T++){var E=k[T];S[T-g][P]=null==E||Number.isNaN(E)?E:x(E,m,d)}else for(var I=g;I<f;I++)S[I-g][P]=k[I]}return S};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 Re(t){return Re="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},Re(t)}var Ue=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Set;if(null===t||"string"==typeof t||"boolean"==typeof t)return t;if("number"==typeof t&&Number.isFinite(t))return t;if("object"!==Re(t)||null===t)throw new TypeError("Configuration values must be JSON-safe: no undefined, non-finite numbers, or functions.");if(e.has(t))throw new TypeError("Configuration must not contain circular references.");var r=Object.getPrototypeOf(t);if(!Array.isArray(t)&&r!==Object.prototype&&null!==r)throw new TypeError("Configuration must contain only plain objects and arrays.");if(Object.getOwnPropertySymbols(t).length)throw new TypeError("Configuration must not contain symbol keys.");e.add(t);var n=Array.isArray(t)?Array.from(t,(function(t){return Ue(t,e)})):Object.fromEntries(Object.entries(t).map((function(t){var r,n,o=(n=2,function(t){if(Array.isArray(t))return t}(r=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=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(r,n)||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}}(r,n)||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.")}()),i=o[0],a=o[1];return[i,Ue(a,e)]})));return e.delete(t),n},Be=function(t){if(null!==t&&"object"===Re(t)){for(var e=0,r=Object.values(t);e<r.length;e++){var n=r[e];Be(n)}Object.freeze(t)}return t};function He(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 Ve(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?He(Object(r),!0).forEach((function(e){Ke(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):He(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function Ke(t,e,r){return(e=qe(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function $e(t){return function(t){if(Array.isArray(t))return Ze(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.")}()}function ze(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}}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 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 Ye(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,qe(n.key),n)}}function qe(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 Je=function(){return t=function t(e){var r=this,n=e.input,o=e.ticker,a=void 0===o?null:o,c=e.chunkProcess,v=void 0===c?2e3:c,p=e.config,y=void 0===p?{}:p;if(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),null===y||Array.isArray(y)||"object"!==Ge(y))throw new TypeError('Constructor "config" must be a plain object.');for(var m=Ue(y),d=["schemaVersion","precision","useFullNames","inputParams","dateFormat","skipNull","timeZone"],b=0,g=Object.keys(m);b<g.length;b++){var w=g[b];if(!d.includes(w))throw new Error('Unknown configuration option "'.concat(w,'".'))}var S=m.schemaVersion,O=void 0===S?1:S,_=m.precision,j=void 0!==_&&_,P=m.useFullNames,k=void 0!==P&&P,N=m.inputParams,A=void 0===N?null:N,x=m.dateFormat,T=void 0===x?"milliseconds":x,E=m.skipNull,I=void 0===E||E,M=m.timeZone,C=void 0===M?Intl.DateTimeFormat().resolvedOptions().timeZone:M;if(1!==O)throw new Error("Unsupported configuration schemaVersion: ".concat(O,"."));s(I,"config.skipNull","constructor"),h(T,"config.dateFormat","constructor"),l(Object.keys(ut),T,"config.dateFormat","constructor"),h(C,"config.timeZone","constructor");var D=new Intl.DateTimeFormat("en-US",{timeZone:C}).resolvedOptions().timeZone;if(this.config=Object.freeze({schemaVersion:O,precision:j,useFullNames:k,dateFormat:T,skipNull:I,timeZone:D}),this.timeZone=D,u(n,"input",null!==a?"contructor ".concat(a):"constuctor"),0===n.length)throw Error("input OHLCV must not be empty: "+a);f(v,{min:100,max:5e4,allowDecimals:!1},"chunkProcess","constructor"),s(j,"precision","contructor"),s(k,"config.useFullNames","constructor"),this.chunkProcess=v,this.input=$e(n),this.len=this.input.length,this.firstRow=this.input[0],this.precision=j,this.useFullNames=k;var F=["open","high","low","close","mid_price"];this.initialPriceBased=new Set(F),this.priceBased=new Set(F),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=Q(a[i],2),c=u[0],l=u[1];if(n.has(c)){if("string"!=typeof l||!/^\d+(\.\d+)?$/.test(l))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(c,'" had the value "').concat(l,'" type ').concat(W(l),"."));var s=Q(l.split("."),2),f=s[0],h=s[1],v=void 0===h?"":h,p=Number(f),y=4;if(0===Math.abs(p)){var m=v.length,d=Math.max(4,m),b=v.search(/[1-9]/);if(-1===b)y=d;else{var g=b+1+5;y=Math.max(d,g)}}var w=Math.pow(10,y);w>o&&(o=w)}}return o}(this);var L=function(t){for(var e=t.firstRow,r=t.precision,n=t.initialPriceBased,o={},i={},a=new Map,u=0,c=Object.entries(e);u<c.length;u++){var l=st(c[u],2),s=l[0],f=l[1];if("date"===s)o[s]=lt(f),i[s]="Array";else if("volume"===s)o[s]=it(f,!0),i[s]="Int32Array";else if(n.has(s))o[s]=it(f,!0,r),i[s]="Float64Array",a.set(s,o[s]);else{var h=it(f,!1,r);o[s]=h,i[s]="number"===h?"Float64Array":"Array"}}if(new Set(a.values()).size>1){var v=function(t){return function(t){if(Array.isArray(t))return ht(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||ft(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=st(t,2),r=e[0],n=e[1];return"".concat(r,': "').concat(n,'"')})).join(", ");throw new Error("Inconsistent types among price-based columns — ".concat(v,". ")+"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),R=L.inputTypes,U=L.arrayTypes;if(this.inputTypes=R,this.arrayTypes=U,!this.firstRow.hasOwnProperty("close"))throw Error('input OHLCV array objects require at least "close" property: '.concat(a));return this.dateType=this.inputTypes.date?this.inputTypes.date:null,this.isComputed=!1,this.isComputing=!1,this.executionParams=[],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;r.verticalOhlcv[n][e]=o},null!==A?(i(A,this.len),this.inputParams=Be(Ue(A)),this.compute()):this.inputParams=Object.freeze([]),this},e=[{key:"exportConfig",value:function(){return Ve(Ve({},this.config),{},{inputParams:Ue(this.inputParams)})}},{key:"_registerIndicator",value:function(t){return a(this),this.inputParams=Object.freeze([].concat($e(this.inputParams),[Be(Ue(t))])),this}},{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?this.config.skipNull:e,n=t.dateFormat,o=void 0===n?this.config.dateFormat:n;return l(Object.keys(ut),o,"dateFormat","getData"),c(t,"options","getData"),Fe({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?this.config.dateFormat:e;return l(Object.keys(ut),r,"dateFormat","getData"),Fe({skipNull:!1,main:this,startIndex:this.len-1,dateFormat:r})[0]}},{key:"compute",value:function(){if(this.isComputed)return this;if(this.isComputing)throw new Error("Computation is already in progress.");if(this.executionParams=Ue(this.inputParams).sort((function(t,e){var r,n;return(null!==(r=t.order)&&void 0!==r?r:0)-(null!==(n=e.order)&&void 0!==n?n:0)})),this.isComputed=!1,this.len>0){this.isComputing=!0;try{!function(t,e){var n=e.len,o=e.arrayTypes,a=e.verticalOhlcv,u=e.verticalOhlcvKeyNames,c=e.inputTypes,l=e.chunkProcess,s=e.precisionMultiplier,f=e.executionParams;i(f,n);var h,v=Ee(f);try{for(v.s();!(h=v.n()).done;){var p=h.value.key;if(!Object.prototype.hasOwnProperty.call(Ce,p))throw new Error('Unknown indicator "'.concat(p,'" in configuration.'))}}catch(t){v.e(t)}finally{v.f()}for(var y=0,m=Object.keys(c);y<m.length;y++){var d=m[y];a[d]=vt(o[d],n)}for(var b=Object.entries(c).map((function(t){var e=function(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=[],c=!0,l=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);c=!0);}catch(t){l=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return u}}(t,e)||Ie(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.")}()}(t,2),r=e[0],n=e[1],o=nt.hasOwnProperty(n);return{key:r,formatter:o?nt[n]:ct.hasOwnProperty(n)?ct[n]:null,numeric:o}})),g="number"==typeof s?tt(s):void 0,w=null,S=0;S<n;S+=l)for(var O=Math.min(S+l,n),_=S;_<O;_++){var j,P=t[_],k=Ee(b);try{for(k.s();!(j=k.n()).done;){var N=j.value,A=N.key,x=N.formatter,T=N.numeric,E=P[A];if(void 0!==E){var I=null===x?E:T?x(E,s,g):x(E);e.pushToMain({index:_,key:A,value:I})}}}catch(t){k.e(t)}finally{k.f()}var M=(a.open[_]+a.close[_])/2;e.pushToMain({index:_,key:"mid_price",value:M});var C,D=Ee(f);try{for(D.s();!(C=D.n()).done;){var F=C.value,L=F.key,R=F.params;Ce[L].apply(Ce,[e,_].concat(Te(R)))}}catch(t){D.e(t)}finally{D.f()}t[_]=null,null===w&&(w=Object.values(a)),r(w,_)||(e.invalidValueIndex=_)}u.push.apply(u,Te(Object.keys(a)))}(this.input,this)}finally{this.isComputing=!1}this.isComputed=!0,this.input=[],this.instances={},this.firstRow=[]}return 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";a(this),u(t,"arr",r),c(e,"options",r);var n=e.limit,o=void 0===n?null:n,i=e.oneHot,l=void 0!==i&&i;null!==o&&f(o,{min:2,max:this.len},"options.limit",r),s(l,"options.oneHot",r);var h,v=[],p=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=ze(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(p.s();!(h=p.n()).done;){var y=h.value,m=y.fast,d=void 0===m?"":m,b=y.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."));v.push(d.toString(),g.toString())}}catch(t){p.e(t)}finally{p.f()}if(this.isAlreadyComputed.has(r))throw new Error('You can only call the "'.concat(r,'" method once.'));return this.isAlreadyComputed.add(r),this._registerIndicator({key:r,params:[t,{limit:o,oneHot:l}]}),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";a(this),u(t,"colKeys",r);var n=t.find((function(t){return"string"!=typeof t||""===t}));if(void 0!==n)throw new Error('Invalid item "'.concat(n,'" (column name) in "colKeys" array param of "').concat(r,'()".'));return f(e,{min:1,max:this.len,allowDecimals:!1},"lookback",r),this._registerIndicator({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.');a(this),f(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,u=void 0!==i&&i;return f(o,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),s(u,"options.retLogs",r),this._registerIndicator({key:r,order:0,params:[t,{lag:o,retLogs:u}]}),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.');a(this),c(t,"options",e);var r=t.lag,n=void 0===r?0:r;return f(n,{min:0,max:this.len,allowDecimals:!1},"options.lag",e),this._registerIndicator({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";a(this),f(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,u=void 0!==i&&i;return f(o,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),s(u,"options.retLogs",r),this._registerIndicator({key:r,order:0,params:[t,{lag:o,retLogs:u}]}),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";a(this),f(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,u=void 0!==i&&i;return f(o,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),s(u,"options.retLogs",r),this._registerIndicator({key:r,order:0,params:[t,{lag:o,retLogs:u}]}),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";a(this),f(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,u=void 0===i?0:i,l=e.retLogs,v=void 0!==l&&l;return h(o,"options.target",r),f(u,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),s(v,"options.retLogs",r),this._registerIndicator({key:r,params:[r,t,{target:o,lag:u,retLogs:v}]}),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";a(this),f(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,u=void 0===i?0:i,l=e.retLogs,v=void 0!==l&&l;return h(o,"options.target",r),f(u,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),s(v,"options.retLogs",r),this._registerIndicator({key:r,params:[r,t,{target:o,lag:u,retLogs:v}]}),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";a(this);var o=null===t&&null===e;!1===o&&(f(t,{min:1,max:this.len,allowDecimals:!1},"smoothLength",n),f(e,{min:1,max:this.len,allowDecimals:!1},"afterSmoothLength",n)),c(r,"options",n);var i=r.lag,u=void 0===i?0:i,l=r.retLogs,h=void 0!==l&&l;return f(u,{min:0,max:this.len,allowDecimals:!1},"options.lag",n),s(h,"option.retLogs",n),this._registerIndicator({key:n,order:0,params:[t,e,{lag:u,bothNull:o,retLogs:h}]}),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";a(this);var i=this.len;f(t,{min:1,max:i,allowDecimals:!1},"kPeriod",o),f(e,{min:1,max:i,allowDecimals:!1},"kSlowingPeriod",o),f(r,{min:1,max:i,allowDecimals:!1},"dPeriod",o),c(n,"options",o);var u=n.lag,l=void 0===u?0:u,h=n.retLogs;return f(l,{min:0,max:i,allowDecimals:!1},"options.lag",o),s(h,"retLogs",o),this._registerIndicator({key:o,params:[t,e,r,{lag:l,retLogs:h}]}),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";a(this),f(t,{min:1,max:this.len,allowDecimals:!1},"fast",o),f(e,{min:1,max:this.len,allowDecimals:!1},"slow",o),f(r,{min:1,max:this.len,allowDecimals:!1},"signal",o),c(n,"options",o);var i=n.target,u=void 0===i?"close":i,l=n.lag,s=void 0===l?0:l;h(u,"options.target",o),f(s,{min:0,max:this.len,allowDecimals:!1},"options.lag",o);var v={instanceKey:"".concat(t,"_").concat(e,"_").concat(r).concat("close"===u?"":"_".concat(u))};return this._registerIndicator({key:o,params:[t,e,r,{target:u,lag:s,precomputed:v}]}),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";a(this),f(t,{min:1,max:this.len,allowDecimals:!1},"size",n),f(e,{min:.01,max:50,allowDecimals:!0},"stdDev",n),c(r,"options",n);var o=r.lag,i=void 0===o?0:o,u=r.retLogs,l=void 0!==u&&u;return f(i,{min:0,max:this.len,allowDecimals:!1},"options.lag",n),s(l,"options.retLogs",n),this._registerIndicator({key:n,params:[t,e,{lag:i,retLogs:l}]}),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";a(this),f(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,u=void 0===i?0:i,l=e.retLogs,v=void 0!==l&&l;return h(o,"options.target",r),f(u,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),s(v,"retLogs",r),this._registerIndicator({key:r,params:[t,{target:o,lag:u,retLogs:v}]}),this}},{key:"mfi",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="mfi";a(this),f(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,u=void 0!==i&&i;return f(o,{min:0,max:this.len,allowDecimals:!1},"options.lag",r),s(u,"options.retLogs",r),this._registerIndicator({key:r,params:[t,{lag:o,retLogs:u}]}),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";a(this),f(t,{min:1,max:this.len,allowDecimals:!1},"size",n),f(e,{min:0,max:this.len,allowDecimals:!1},"offset",n),c(r,"options",n);var o=r.lag,i=void 0===o?0:o,u=r.retLogs,l=void 0!==u&&u;return f(i,{min:0,max:this.len,allowDecimals:!1},"options.lag",n),s(l,"options.retLogs",n),this._registerIndicator({key:n,order:0,params:[t,e,{lag:i,retLogs:l}]}),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.');a(this),f(t,{min:1,max:this.len,allowDecimals:!1},"fastsize",n),f(e,{min:t,max:this.len,allowDecimals:!1},"slowsize",n),c(r,"options",n);var o=r.lag,i=void 0===o?0:o,u=r.retLogs,l=void 0!==u&&u;return f(i,{min:0,max:this.len,allowDecimals:!1},"options.lag",n),s(l,"retLogs",n),this._registerIndicator({key:n,order:0,params:[t,e,{lag:i,retLogs:l}]}),this}},{key:"dateTime",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e="dateTime";a(this),c(t,"options",e);var r=t.lag,n=void 0===r?0:r,o=t.oneHot,i=void 0!==o&&o;f(n,{min:0,max:this.len,allowDecimals:!1},"options.lag",e),s(i,"options.oneHot",e);var u=i?"one_hot_":"",l=Ke(Ke(Ke(Ke(Ke({},"".concat(u,"month"),12),"".concat(u,"day_of_the_month"),31),"".concat(u,"day_of_the_week"),7),"".concat(u,"hour"),24),"".concat(u,"minute"),60),h={prefix:u,colKeySizes:l,colKeys:Object.keys(l)};return this._registerIndicator({key:e,order:0,params:[{lag:n,oneHot:i,precompute:h}]}),this}},{key:"candleFeatures",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e="candleFeatures";a(this),c(t,"options",e);var r=t.lag,n=void 0===r?0:r,o=t.colKeys,i=void 0===o?[]:o,l=t.retLogs,h=void 0!==l&&l;return f(n,{min:0,max:this.len,allowDecimals:!1},"options.lag",e),u(i,"options.colKeys",e),s(h,"retLogs",e),this._registerIndicator({key:e,params:[{lag:n,colKeys:i,retLogs:h}]}),this}}],e&&Ye(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}()})(),OHLCV_INDICATORS=e})();