/** * Highstock JS v11.2.0 (2023-10-30) * * All technical indicators for Highcharts Stock * * (c) 2010-2021 Pawel Fus * * License: www.highcharts.com/license */!function(t){"object"==typeof module&&module.exports?(t.default=t,module.exports=t):"function"==typeof define&&define.amd?define("highcharts/indicators/indicators-all",["highcharts","highcharts/modules/stock"],function(e){return t(e),t.Highcharts=e,t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){"use strict";var e=t?t._modules:{};function o(t,e,o,r){t.hasOwnProperty(e)||(t[e]=r.apply(null,o),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:e,module:t[e]}})))}o(e,"Stock/Indicators/SMA/SMAIndicator.js",[e["Core/Chart/Chart.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e,o){var r,n=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),i=e.seriesTypes.line,s=o.addEvent,a=o.fireEvent,p=o.error,l=o.extend,u=o.isArray,c=o.merge,h=o.pick,d=o.splat,y=function(e){function o(){var t=null!==e&&e.apply(this,arguments)||this;return t.data=void 0,t.dataEventsToUnbind=void 0,t.linkedParent=void 0,t.options=void 0,t.points=void 0,t}return n(o,e),o.prototype.destroy=function(){this.dataEventsToUnbind.forEach(function(t){t()}),e.prototype.destroy.apply(this,arguments)},o.prototype.getName=function(){var t=[],e=this.name;return e||((this.nameComponents||[]).forEach(function(e,o){t.push(this.options.params[e]+h(this.nameSuffixes[o],""))},this),e=(this.nameBase||this.type.toUpperCase())+(this.nameComponents?" ("+t.join(", ")+")":"")),e},o.prototype.getValues=function(t,e){var o,r,n=e.period,i=t.xData,s=t.yData,a=s.length,p=[],l=[],c=[],h=-1,d=0,y=0;if(!(i.length0&&(s[1]+=y[r-1][1]),y.push(s),f.push(s[0]),v.push(s[1]);return{values:y,xData:f,yData:v}}},e.defaultOptions=a(n.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),e}(n);return s(p.prototype,{nameComponents:!1,nameBase:"Accumulation/Distribution"}),t.registerSeriesType("ad",p),p}),o(e,"Stock/Indicators/AO/AOIndicator.js",[e["Core/Globals.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e,o){var r,n=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),i=t.noop,s=e.seriesTypes,a=s.column.prototype,p=s.sma,l=o.extend,u=o.merge,c=o.correctFloat,h=o.isArray,d=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.options=void 0,e.points=void 0,e}return n(e,t),e.prototype.drawGraph=function(){var t,e=this.options,o=this.points,r=this.userOptions.color,n=e.greaterBarColor,i=e.lowerBarColor,s=o[0];if(!r&&s)for(t=1,s.color=n;to[t-1].y?o[t].color=n:o[t].y=29&&(v=c(v+n)),f=c(f+n);for(s=33;s=0;i--)o.push(n[i])}}else o=r.getGraphPath.apply(this,arguments);return o}function y(t){var e=[];return(this.pointArrayMap||[]).forEach(function(o){e.push(t[o])}),e}function f(){var t,e=this,o=this.pointArrayMap,n=[];n=c(this),r.translate.apply(this,arguments),this.points.forEach(function(r){o.forEach(function(o,i){t=r[o],e.dataModify&&(t=e.dataModify.modifyValue(t)),null!==t&&(r[n[i]]=e.yAxis.toPixels(t,!0))})})}t.compose=function(t){if(e.pushUnique(o,t)){var r=t.prototype;r.linesApiNames=r.linesApiNames||a.slice(),r.pointArrayMap=r.pointArrayMap||p.slice(),r.pointValKey=r.pointValKey||"top",r.areaLinesNames=r.areaLinesNames||l.slice(),r.drawGraph=h,r.getGraphPath=d,r.toYData=y,r.translate=f}return t}}(o||(o={})),o}),o(e,"Stock/Indicators/Aroon/AroonIndicator.js",[e["Stock/Indicators/MultipleLinesComposition.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e,o){var r,n=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),i=e.seriesTypes.sma,s=o.extend,a=o.merge,p=o.pick;function l(t,e){var o,r=t[0],n=0;for(o=1;o=r||"min"===e&&t[o]<=r)&&(r=t[o],n=o);return n}var u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.options=void 0,e.points=void 0,e}return n(e,t),e.prototype.getValues=function(t,e){var o,r,n,i,s,a=e.period,u=t.xData,c=t.yData,h=c?c.length:0,d=[],y=[],f=[];for(i=a-1;i {series.name}
Aroon Up: {point.y}
Aroon Down: {point.aroonDown}
'},aroonDown:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}}),e}(i);return s(u.prototype,{areaLinesNames:[],linesApiNames:["aroonDown"],nameBase:"Aroon",pointArrayMap:["y","aroonDown"],pointValKey:"y"}),t.compose(u),e.registerSeriesType("aroon",u),u}),o(e,"Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js",[e["Stock/Indicators/MultipleLinesComposition.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e,o){var r,n=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),i=e.seriesTypes.aroon,s=o.extend,a=o.merge,p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.options=void 0,e.points=void 0,e}return n(e,t),e.prototype.getValues=function(e,o){var r,n,i=[],s=[],a=[],p=t.prototype.getValues.call(this,e,o);for(n=0;n {series.name}: {point.y}'}}),e}(i);return s(p.prototype,{nameBase:"Aroon Oscillator",linesApiNames:[],pointArrayMap:["y"],pointValKey:"y"}),t.compose(i),e.registerSeriesType("aroonoscillator",p),p}),o(e,"Stock/Indicators/ATR/ATRIndicator.js",[e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e){var o,r=this&&this.__extends||(o=function(t,e){return(o=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),n=t.seriesTypes.sma,i=e.isArray,s=e.merge;function a(t,e){return Math.max(t[1]-t[2],void 0===e?0:Math.abs(t[1]-e[3]),void 0===e?0:Math.abs(t[2]-e[3]))}var p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.points=void 0,e.options=void 0,e}return r(e,t),e.prototype.getValues=function(t,e){var o,r,n,s,p=e.period,l=t.xData,u=t.yData,c=u?u.length:0,h=[[l[0],u[0]]],d=[],y=[],f=[],v=0,g=1,m=0;if(!(l.length<=p)&&i(u[0])&&4===u[0].length){for(s=1;s<=c;s++)((function(t,e,o,r){var n=e[r],i=o[r];t.push([n,i])})(h,l,u,s),p {series.name}
Top: {point.top}
Middle: {point.middle}
Bottom: {point.bottom}
'},marker:{enabled:!1},dataGrouping:{approximation:"averages"}}),o}(i);return s(l.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameComponents:["period","standardDeviation"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),t.compose(l),e.registerSeriesType("bb",l),l}),o(e,"Stock/Indicators/CCI/CCIIndicator.js",[e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e){var o,r=this&&this.__extends||(o=function(t,e){return(o=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),n=t.seriesTypes.sma,i=e.isArray,s=e.merge,a=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.points=void 0,e.options=void 0,e}return r(e,t),e.prototype.getValues=function(t,e){var o,r,n,s,a,p,l,u=e.period,c=t.xData,h=t.yData,d=h?h.length:0,y=[],f=[],v=[],g=[],m=[],x=1;if(!(c.length<=u)&&i(h[0])&&4===h[0].length){for(;x=e.params.period}return!!(o&&r&&i(o)&&i(r)&&n)},e.prototype.getValues=function(t,e){if(this.isValid())return this.getMoneyFlow(t.xData,t.yData,this.volumeSeries.yData,e.period)},e.prototype.getMoneyFlow=function(t,e,o,r){var n,i,s=e.length,a=[],p=[],l=[],u=[],c=-1,h=0,d=0;function y(t,e){var o=t[1],r=t[2],i=t[3];return null!==e&&null!==o&&null!==r&&null!==i&&o!==r?(i-r-(o-i))/(o-r)*e:(c=n,null)}if(r>0&&r<=s){for(n=0;n=r&&0!==h?d/h:null),u.push([p[0],l[0]]);n=r?d/h:null],p.push(i[0]),l.push(i[1]),u.push([i[0],i[1]])}return{values:u,xData:p,yData:l}},e.defaultOptions=i(n.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),e}(n);return t.registerSeriesType("cmf",s),s}),o(e,"Stock/Indicators/DMI/DMIIndicator.js",[e["Stock/Indicators/MultipleLinesComposition.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e,o){var r,n=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),i=e.seriesTypes.sma,s=o.correctFloat,a=o.extend,p=o.isArray,l=o.merge,u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.options=void 0,e}return n(e,t),e.prototype.calculateDM=function(t,e,o){var r=t[e][1],n=t[e][2],i=t[e-1][1],a=t[e-1][2];return s(r-i>a-n?o?Math.max(r-i,0):0:o?0:Math.max(a-n,0))},e.prototype.calculateDI=function(t,e){return t/e*100},e.prototype.calculateDX=function(t,e){return s(Math.abs(t-e)/Math.abs(t+e)*100)},e.prototype.smoothValues=function(t,e,o){return s(t-t/o+e)},e.prototype.getTR=function(t,e){return s(Math.max(t[1]-t[2],e?Math.abs(t[1]-e[3]):0,e?Math.abs(t[2]-e[3]):0))},e.prototype.getValues=function(t,e){var o=e.period,r=t.xData,n=t.yData,i=n?n.length:0,s=[],a=[],l=[];if(!(r.length<=o)&&p(n[0])&&4===n[0].length){var u,c=0,h=0,d=0;for(u=1;u {series.name}
DX: {point.y}
+DI: {point.plusDI}
-DI: {point.minusDI}
'},plusDILine:{styles:{lineWidth:1,lineColor:"#06b535"}},minusDILine:{styles:{lineWidth:1,lineColor:"#f21313"}},dataGrouping:{approximation:"averages"}}),e}(i);return a(u.prototype,{areaLinesNames:[],nameBase:"DMI",linesApiNames:["plusDILine","minusDILine"],pointArrayMap:["y","plusDI","minusDI"],parallelArrays:["x","y","plusDI","minusDI"],pointValKey:"y"}),t.compose(u),e.registerSeriesType("dmi",u),u}),o(e,"Stock/Indicators/DPO/DPOIndicator.js",[e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e){var o,r=this&&this.__extends||(o=function(t,e){return(o=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),n=t.seriesTypes.sma,i=e.extend,s=e.merge,a=e.correctFloat,p=e.pick;function l(t,e,o,r,n){var i=p(e[o][r],e[o]);return n?a(t-i):a(t+i)}var u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.options=void 0,e.data=void 0,e.points=void 0,e}return r(e,t),e.prototype.getValues=function(t,e){var o,r,n,i,s,a=e.period,u=e.index,c=a+Math.floor(a/2+1),h=t.xData||[],d=t.yData||[],y=d.length,f=[],v=[],g=[],m=0;if(!(h.length<=c)){for(i=0;i0;g--)r[g]>r[g-1]?f+=r[g]-r[g-1]:r[g]0?100*(f-v)/(f+v):0,u.push(s[n]),c.push(d),l.push([s[n],d]),o=n+1;or[o-1]?f+=r[o]-r[o-1]:r[o]r[o-n-1]?f-=y:v-=y,d=f+v>0?100*(f-v)/(f+v):0,u.push(s[o]),c.push(d),l.push([s[o],d]);return{values:l,xData:u,yData:c}}},e.defaultOptions=s(n.defaultOptions,{params:{period:20,index:3}}),e}(n);return t.registerSeriesType("cmo",a),a}),o(e,"Stock/Indicators/DEMA/DEMAIndicator.js",[e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e){var o,r=this&&this.__extends||(o=function(t,e){return(o=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),n=t.seriesTypes.ema,i=e.correctFloat,s=e.isArray,a=e.merge,p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.EMApercent=void 0,e.data=void 0,e.options=void 0,e.points=void 0,e}return r(e,t),e.prototype.getEMA=function(e,o,r,n,i,s){return t.prototype.calculateEma.call(this,s||[],e,void 0===i?1:i,this.EMApercent,o,void 0===n?-1:n,r)},e.prototype.getValues=function(e,o){var r,n,a,p,l,u=o.period,c=[],h=2*u,d=e.xData,y=e.yData,f=y?y.length:0,v=[],g=[],m=[],x=0,_=0,S=-1,D=0;if(this.EMApercent=2/(u+1),!(f<2*u-1)){for(s(y[0])&&(S=o.index?o.index:0),D=(x=t.prototype.accumulatePeriodPoints.call(this,u,S,y))/u,x=0,p=u;pe)return[t[r-3],0!==o.prevLevel3?i(o.level3-o.prevLevel3)/o.prevLevel3*100:null]},e.defaultOptions=s(n.defaultOptions),e}(n);return t.registerSeriesType("trix",a),a}),o(e,"Stock/Indicators/APO/APOIndicator.js",[e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e){var o,r=this&&this.__extends||(o=function(t,e){return(o=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),n=t.seriesTypes.ema,i=e.extend,s=e.merge,a=e.error,p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.options=void 0,e.points=void 0,e}return r(e,t),e.prototype.getValues=function(e,o){var r,n,i=o.periods,s=o.index,p=[],l=[],u=[];if(2!==i.length||i[1]<=i[0]){a('Error: "APO requires two periods. Notice, first period should be lower than the second one."');return}var c=t.prototype.getValues.call(this,e,{index:s,period:i[0]}),h=t.prototype.getValues.call(this,e,{index:s,period:i[1]});if(c&&h){var d=i[1]-i[0];for(n=0;n=0&&u<=1&&c>=0&&c<=1)return{plotX:t.plotX+c*n,plotY:t.plotY+c*i}}}(j.senkouSpanA[E-1],j.senkouSpanA[E],j.senkouSpanB[E-1],j.senkouSpanB[E]);if(V){var R={plotX:V.plotX,plotY:V.plotY,isNull:!1,intersectPoint:!0};j.senkouSpanA.splice(E,0,R),j.senkouSpanB.splice(E,0,R),A.push(E)}}}if(y(j,function(t,e){_[e]&&"senkouSpan"!==e&&(m.points=b[L],m.options=d(_[e].styles,O),m.graph=m["graph"+e],m.fillGraph=!1,m.color=D,o.seriesTypes.sma.prototype.drawGraph.call(m),m["graph"+e]=m.graph),L++}),m.graphCollection)for(var N=0,B=m.graphCollection;N=1){var G=Math.floor(s.length/2);if(s[G].plotY===a[G].plotY){for(g=0,l=0,u=0;gu?0:1]=I[h].concat(s),k[h]=k[h].concat(a)}else I[h=s[G].plotY>a[G].plotY?0:1]=I[h].concat(s),k[h]=k[h].concat(a)}else I[h=s[0].plotY>a[0].plotY?0:1]=I[h].concat(s),k[h]=k[h].concat(a);["graphsenkouSpanColor","graphsenkouSpanNegativeColor"].forEach(function(t,e){I[e].length&&k[e].length&&(c=0===e?T:w,v({indicator:m,points:I[e],nextPoints:k[e],color:c,options:_,gap:O,graph:m[t]}),m[t]=m.graph,m.graphCollection.push(t))})}else v({indicator:m,points:j.senkouSpanB,nextPoints:j.senkouSpanA,color:T,options:_,gap:O,graph:m.graphsenkouSpan}),m.graphsenkouSpan=m.graph;delete m.nextPoints,delete m.fillGraph,m.points=x,m.options=_,m.graph=S,m.color=D},e.prototype.getGraphPath=function(t){var e,r=[],n=[];if(t=t||this.points,this.fillGraph&&this.nextPoints){if((e=o.seriesTypes.sma.prototype.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",r=o.seriesTypes.sma.prototype.getGraphPath.call(this,t),n=e.slice(0,r.length);for(var i=n.length-1;i>=0;i--)r.push(n[i])}}else r=o.seriesTypes.sma.prototype.getGraphPath.apply(this,arguments);return r},e.prototype.getValues=function(t,e){var o,r,n,i,s,a,p,l,c,d,y=e.period,v=e.periodTenkan,g=e.periodSenkouSpanB,m=t.xData,x=t.yData,_=t.xAxis,S=x&&x.length||0,D=h(_.series.map(function(t){return t.xData||[]})),O=[],C=[];if(!(m.length<=y)&&u(x[0])&&4===x[0].length){var b=m[0]-y*D;for(s=0;s=v&&(a=((r=f(x.slice(s-v,s))).high+r.low)/2),s>=y&&(c=(a+(p=((n=f(x.slice(s-y,s))).high+n.low)/2))/2),s>=g&&(d=((i=f(x.slice(s-g,s))).high+i.low)/2),l=x[s][3],o=m[s],void 0===O[s]&&(O[s]=[]),void 0===O[s+y-1]&&(O[s+y-1]=[]),O[s+y-1][0]=a,O[s+y-1][1]=p,O[s+y-1][2]=void 0,void 0===O[s+1]&&(O[s+1]=[]),O[s+1][2]=l,s<=y&&(O[s+y-1][3]=void 0,O[s+y-1][4]=void 0),void 0===O[s+2*y-2]&&(O[s+2*y-2]=[]),O[s+2*y-2][3]=c,O[s+2*y-2][4]=d,C.push(o);for(s=1;s<=y;s++)C.push(o+s*D);return{values:O,xData:C,yData:O}}},e.defaultOptions=d(a.defaultOptions,{params:{index:void 0,period:26,periodTenkan:9,periodSenkouSpanB:52},marker:{enabled:!1},tooltip:{pointFormat:' {series.name}
TENKAN SEN: {point.tenkanSen:.3f}
KIJUN SEN: {point.kijunSen:.3f}
CHIKOU SPAN: {point.chikouSpan:.3f}
SENKOU SPAN A: {point.senkouSpanA:.3f}
SENKOU SPAN B: {point.senkouSpanB:.3f}
'},tenkanLine:{styles:{lineWidth:1,lineColor:void 0}},kijunLine:{styles:{lineWidth:1,lineColor:void 0}},chikouLine:{styles:{lineWidth:1,lineColor:void 0}},senkouSpanA:{styles:{lineWidth:1,lineColor:void 0}},senkouSpanB:{styles:{lineWidth:1,lineColor:void 0}},senkouSpan:{styles:{fill:"rgba(255, 0, 0, 0.5)"}},dataGrouping:{approximation:"ichimoku-averages"}}),e}(a);return l(g.prototype,{pointArrayMap:["tenkanSen","kijunSen","chikouSpan","senkouSpanA","senkouSpanB"],pointValKey:"tenkanSen",nameComponents:["periodSenkouSpanB","period","periodTenkan"]}),t["ichimoku-averages"]=function(){var e,o=[];return[].forEach.call(arguments,function(r,n){o.push(t.average(r)),e=!e&&void 0===o[n]}),e?void 0:o},o.registerSeriesType("ikh",g),g}),o(e,"Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js",[e["Stock/Indicators/MultipleLinesComposition.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e,o){var r,n=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),i=e.seriesTypes.sma,s=o.correctFloat,a=o.extend,p=o.merge,l=function(t){function o(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.options=void 0,e.points=void 0,e}return n(o,t),o.prototype.init=function(){e.seriesTypes.sma.prototype.init.apply(this,arguments),this.options=p({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)},o.prototype.getValues=function(t,o){var r,n,i,a,p,l,u,c=o.period,h=o.periodATR,d=o.multiplierATR,y=o.index,f=t.yData,v=f?f.length:0,g=[],m=e.seriesTypes.ema.prototype.getValues(t,{period:c,index:y}),x=e.seriesTypes.atr.prototype.getValues(t,{period:h}),_=[],S=[];if(!(v {series.name}
Upper Channel: {point.top}
EMA({series.options.params.period}): {point.middle}
Lower Channel: {point.bottom}
'},marker:{enabled:!1},dataGrouping:{approximation:"averages"},lineWidth:1}),o}(i);return a(l.prototype,{nameBase:"Keltner Channels",areaLinesNames:["top","bottom"],nameComponents:["period","periodATR","multiplierATR"],linesApiNames:["topLine","bottomLine"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),t.compose(l),e.registerSeriesType("keltnerchannels",l),l}),o(e,"Stock/Indicators/Klinger/KlingerIndicator.js",[e["Stock/Indicators/MultipleLinesComposition.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e,o){var r,n=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),i=e.seriesTypes,s=i.ema,a=i.sma,p=o.correctFloat,l=o.error,u=o.extend,c=o.isArray,h=o.merge,d=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.points=void 0,e.options=void 0,e.volumeSeries=void 0,e}return n(e,t),e.prototype.calculateTrend=function(t,e){return t[e][1]+t[e][2]+t[e][3]>t[e-1][1]+t[e-1][2]+t[e-1][3]?1:-1},e.prototype.isValidData=function(t){var e=this.chart,o=this.options,r=this.linkedParent,n=c(t)&&4===t.length,i=this.volumeSeries||(this.volumeSeries=e.get(o.params.volumeSeriesID));return i||l("Series "+o.params.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,r.chart),!!([r,i].every(function(t){return t&&t.xData&&t.xData.length>=o.params.slowAvgPeriod})&&n)},e.prototype.getCM=function(t,e,o,r,n){return p(e+(o===r?t:n))},e.prototype.getDM=function(t,e){return p(t-e)},e.prototype.getVolumeForce=function(t){for(var e,o,r=[],n=0,i=1,s=0,a=t[0][1]-t[0][2],p=0;i=e.fastAvgPeriod&&(d=h=this.getEMA(v,d,g,x,0,c,i)[1]),c>=e.slowAvgPeriod&&(y=r=this.getEMA(v,y,m,_,0,c,i)[1],o=p(h-r),u.push(o),u.length>=e.signalPeriod&&(f=u.slice(-e.signalPeriod).reduce(function(t,e){return t+e})/e.signalPeriod),n.push([i[c],o,f]),a.push(i[c]),l.push([o,f]));return{values:n,xData:a,yData:l}}},e.defaultOptions=h(a.defaultOptions,{params:{fastAvgPeriod:34,slowAvgPeriod:55,signalPeriod:13,volumeSeriesID:"volume"},signalLine:{styles:{lineWidth:1,lineColor:"#ff0000"}},dataGrouping:{approximation:"averages"},tooltip:{pointFormat:' {series.name}
Klinger: {point.y}
Signal: {point.signal}
'}}),e}(a);return u(d.prototype,{areaLinesNames:[],linesApiNames:["signalLine"],nameBase:"Klinger",nameComponents:["fastAvgPeriod","slowAvgPeriod"],pointArrayMap:["y","signal"],parallelArrays:["x","y","signal"],pointValKey:"y"}),t.compose(d),e.registerSeriesType("klinger",d),d}),o(e,"Stock/Indicators/MACD/MACDIndicator.js",[e["Core/Globals.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e,o){var r,n=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),i=t.noop,s=e.seriesTypes,a=(s.column,s.sma),p=o.extend,l=o.correctFloat,u=o.defined,c=o.merge,h=function(o){function r(){var t=null!==o&&o.apply(this,arguments)||this;return t.data=void 0,t.macdZones=void 0,t.options=void 0,t.points=void 0,t.signalZones=void 0,t}return n(r,o),r.prototype.init=function(){e.seriesTypes.sma.prototype.init.apply(this,arguments);var t=this.color;this.options&&(u(this.colorIndex)&&(this.options.signalLine&&this.options.signalLine.styles&&!this.options.signalLine.styles.lineColor&&(this.options.colorIndex=this.colorIndex+1,this.getCyclic("color",void 0,this.chart.options.colors),this.options.signalLine.styles.lineColor=this.color),this.options.macdLine&&this.options.macdLine.styles&&!this.options.macdLine.styles.lineColor&&(this.options.colorIndex=this.colorIndex+1,this.getCyclic("color",void 0,this.chart.options.colors),this.options.macdLine.styles.lineColor=this.color)),this.macdZones={zones:this.options.macdLine.zones,startIndex:0},this.signalZones={zones:this.macdZones.zones.concat(this.options.signalLine.zones),startIndex:this.macdZones.zones.length},this.resetZones=!0),this.color=t},r.prototype.toYData=function(t){return[t.y,t.signal,t.MACD]},r.prototype.translate=function(){var e=this,o=["plotSignal","plotMACD"];t.seriesTypes.column.prototype.translate.apply(e),e.points.forEach(function(t){[t.signal,t.MACD].forEach(function(r,n){null!==r&&(t[o[n]]=e.yAxis.toPixels(r,!0))})})},r.prototype.destroy=function(){this.graph=null,this.graphmacd=this.graphmacd&&this.graphmacd.destroy(),this.graphsignal=this.graphsignal&&this.graphsignal.destroy(),e.seriesTypes.sma.prototype.destroy.apply(this,arguments)},r.prototype.drawGraph=function(){for(var t,o=this,r=o.points,n=o.options,i=o.zones,s={options:{gapSize:n.gapSize}},a=[[],[]],p=r.length;p--;)u((t=r[p]).plotMACD)&&a[0].push({plotX:t.plotX,plotY:t.plotMACD,isNull:!u(t.plotMACD)}),u(t.plotSignal)&&a[1].push({plotX:t.plotX,plotY:t.plotSignal,isNull:!u(t.plotMACD)});["macd","signal"].forEach(function(t,r){o.points=a[r],o.options=c(n[t+"Line"].styles,s),o.graph=o["graph"+t],o.currentLineZone=t+"Zones",o.zones=o[o.currentLineZone].zones,e.seriesTypes.sma.prototype.drawGraph.call(o),o["graph"+t]=o.graph}),o.points=r,o.options=n,o.zones=i,o.currentLineZone=void 0},r.prototype.getZonesGraphs=function(t){var e=o.prototype.getZonesGraphs.call(this,t),r=e;return this.currentLineZone&&((r=e.splice(this[this.currentLineZone].startIndex+1)).length?r.splice(0,0,t[0]):r=[t[0]]),r},r.prototype.applyZones=function(){var t=this.zones;this.zones=this.signalZones.zones,e.seriesTypes.sma.prototype.applyZones.call(this),this.graphmacd&&this.options.macdLine.zones.length&&this.graphmacd.hide(),this.zones=t},r.prototype.getValues=function(t,o){var r,n,i,s=o.longPeriod-o.shortPeriod,a=[],p=[],c=[],h=0,d=[];if(!(t.xData.length=d[0][0]&&(a[i][2]=d[h][1],c[i]=[0,d[h][1],a[i][3]],null===a[i][3]?(a[i][1]=0,c[i][0]=0):(a[i][1]=l(a[i][3]-d[h][1]),c[i][0]=l(a[i][3]-d[h][1])),h++);return{values:a,xData:p,yData:c}}},r.defaultOptions=c(a.defaultOptions,{params:{shortPeriod:12,longPeriod:26,signalPeriod:9,period:26},signalLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},macdLine:{zones:[],styles:{lineWidth:1,lineColor:void 0}},threshold:0,groupPadding:.1,pointPadding:.1,crisp:!1,states:{hover:{halo:{size:0}}},tooltip:{pointFormat:' {series.name}
Value: {point.MACD}
Signal: {point.signal}
Histogram: {point.y}
'},dataGrouping:{approximation:"averages"},minPointLength:0}),r}(a);return p(h.prototype,{nameComponents:["longPeriod","shortPeriod","signalPeriod"],pointArrayMap:["y","signal","MACD"],parallelArrays:["x","y","signal","MACD"],pointValKey:"y",markerAttribs:i,getColumnMetrics:t.seriesTypes.column.prototype.getColumnMetrics,crispCol:t.seriesTypes.column.prototype.crispCol,drawPoints:t.seriesTypes.column.prototype.drawPoints}),e.registerSeriesType("macd",h),h}),o(e,"Stock/Indicators/MFI/MFIIndicator.js",[e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e){var o,r=this&&this.__extends||(o=function(t,e){return(o=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),n=t.seriesTypes.sma,i=e.extend,s=e.merge,a=e.error,p=e.isArray;function l(t){return t.reduce(function(t,e){return t+e})}function u(t){return(t[1]+t[2]+t[3])/3}var c=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.options=void 0,e.points=void 0,e}return r(e,t),e.prototype.getValues=function(t,e){var o,r,n,i,s,c,h=e.period,d=t.xData,y=t.yData,f=y?y.length:0,v=e.decimals,g=t.chart.get(e.volumeSeriesID),m=g&&g.yData,x=[],_=[],S=[],D=[],O=[],C=!1,b=1;if(!g){a("Series "+e.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,t.chart);return}if(!(d.length<=h)&&p(y[0])&&4===y[0].length&&m){for(o=u(y[b]);b=r,n=o*m[b],D.push(C?n:0),O.push(C?0:n),b++;for(c=b-1;cb-1&&(D.shift(),O.shift(),r=o,C=(o=u(y[c]))>r,n=o*m[c],D.push(C?n:0),O.push(C?0:n)),i=l(O),s=parseFloat((100-100/(1+l(D)/i)).toFixed(v)),x.push([d[c],s]),_.push(d[c]),S.push(s);return{values:x,xData:_,yData:S}}},e.defaultOptions=s(n.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume",decimals:4}}),e}(n);return i(c.prototype,{nameBase:"Money Flow Index"}),t.registerSeriesType("mfi",c),c}),o(e,"Stock/Indicators/Momentum/MomentumIndicator.js",[e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e){var o,r=this&&this.__extends||(o=function(t,e){return(o=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),n=t.seriesTypes.sma,i=e.extend,s=e.isArray,a=e.merge;function p(t,e,o,r,n){var i=e[o-1][n]-e[o-r-1][n];return[t[o-1],i]}var l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.options=void 0,e.points=void 0,e}return r(e,t),e.prototype.getValues=function(t,e){var o,r,n=e.period,i=e.index,a=t.xData,l=t.yData,u=l?l.length:0,c=[],h=[],d=[];if(!(a.length<=n)&&s(l[0])){for(o=n+1;ov?y+o[d]:g===v?y:y-o[d],h=[n[d],f],y=f,v=g,p.push(h),l.push(n[d]),u.push(h[1]);else{s("Series "+e.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,t.chart);return}return{values:p,xData:l,yData:u}},e.defaultOptions=p(n.defaultOptions,{marker:{enabled:!1},params:{index:void 0,period:void 0,volumeSeriesID:"volume"},tooltip:{valueDecimals:0}}),e}(n);return a(l.prototype,{nameComponents:void 0}),t.registerSeriesType("obv",l),l}),o(e,"Stock/Indicators/PivotPoints/PivotPointsPoint.js",[e["Core/Series/SeriesRegistry.js"]],function(t){var e,o=this&&this.__extends||(e=function(t,o){return(e=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,o)},function(t,o){if("function"!=typeof o&&null!==o)throw TypeError("Class extends value "+String(o)+" is not a constructor or null");function r(){this.constructor=t}e(t,o),t.prototype=null===o?Object.create(o):(r.prototype=o.prototype,new r)});function r(e,o){var r,n=e.series.pointArrayMap,i=n.length;for(t.seriesTypes.sma.prototype.pointClass.prototype[o].call(e);i--;)e[r="dataLabel"+n[i]]&&e[r].element&&e[r].destroy(),e[r]=null}return function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.P=void 0,e.pivotLine=void 0,e.series=void 0,e}return o(e,t),e.prototype.destroyElements=function(){r(this,"destroyElements")},e.prototype.destroy=function(){r(this,"destroyElements")},e}(t.seriesTypes.sma.prototype.pointClass)}),o(e,"Stock/Indicators/PivotPoints/PivotPointsIndicator.js",[e["Stock/Indicators/PivotPoints/PivotPointsPoint.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e,o){var r,n=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),i=e.seriesTypes.sma,s=o.merge,a=o.extend,p=o.defined,l=o.isArray,u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.options=void 0,e.points=void 0,e.endPoint=void 0,e.plotEndPoint=void 0,e}return n(e,t),e.prototype.toYData=function(t){return[t.P]},e.prototype.translate=function(){var e=this;t.prototype.translate.apply(e),e.points.forEach(function(t){e.pointArrayMap.forEach(function(o){p(t[o])&&(t["plot"+o]=e.yAxis.toPixels(t[o],!0))})}),e.plotEndPoint=e.xAxis.toPixels(e.endPoint,!0)},e.prototype.getGraphPath=function(e){for(var o,r,n,i=this,s=[[],[],[],[],[],[],[],[],[]],a=i.pointArrayMap.length,l=i.plotEndPoint,u=[],c=e.length;c--;){for(n=0,r=e[c];n {series.name}
Top: {point.top}
Middle: {point.middle}
Bottom: {point.bottom}
'},params:{period:20,topBand:.1,bottomBand:.1},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}}),e}(i);return s(l.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameComponents:["period","topBand","bottomBand"],nameBase:"Price envelopes",pointArrayMap:["top","middle","bottom"],parallelArrays:["x","y","top","bottom"],pointValKey:"middle"}),t.compose(l),e.registerSeriesType("priceenvelopes",l),l}),o(e,"Stock/Indicators/PSAR/PSARIndicator.js",[e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e){var o,r=this&&this.__extends||(o=function(t,e){return(o=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),n=t.seriesTypes.sma,i=e.merge;function s(t,e){return parseFloat(t.toFixed(e))}var a=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.nameComponents=void 0,e.points=void 0,e.options=void 0,e}return r(e,t),e.prototype.getValues=function(t,e){var o,r,n,i,a,p,l,u,c,h,d,y,f,v,g,m,x,_,S,D,O,C,b,j,A,P=t.xData,T=t.yData,w=e.maxAccelerationFactor,I=e.increment,k=e.initialAccelerationFactor,M=e.decimals,L=e.index,E=[],V=[],R=[],N=e.initialAccelerationFactor,B=T[0][1],U=1,G=T[0][2];if(!(L>=T.length)){for(A=0;AG?1:-1,g=B-G,m=(N=e.initialAccelerationFactor)*g,E.push([P[L],G]),V.push(P[L]),R.push(s(G,M)),A=L+1;AMath.max(O,D)?n+i:Math.max(O,D):a,h=v,d=B,C=1===h?b>d?b:d:jf||-1===y&&b>f?1:-1,l=v,u=B,c=N,m=(N=p===l?1===p&&C>u||-1===p&&C0?m+=r:x+=Math.abs(r),S++;for(n=a(m/(u-1),y),s=a(x/(u-1),y),p=S;p0?(m=r,x=0):(m=0,x=Math.abs(r)),n=a((n*(u-1)+m)/u,y),o=0===(s=a((s*(u-1)+x)/u,y))?100:0===n?0:a(100-100/(1+n/s),y),f.push([c[p],o]),v.push(c[p]),g.push(o);return{values:f,xData:v,yData:g}}},e.defaultOptions=s(n.defaultOptions,{params:{decimals:4,index:3}}),e}(n);return t.registerSeriesType("rsi",p),p}),o(e,"Stock/Indicators/Stochastic/StochasticIndicator.js",[e["Stock/Indicators/ArrayUtilities.js"],e["Stock/Indicators/MultipleLinesComposition.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e,o,r){var n,i=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),s=o.seriesTypes.sma,a=r.extend,p=r.isArray,l=r.merge,u=function(e){function o(){var t=null!==e&&e.apply(this,arguments)||this;return t.data=void 0,t.options=void 0,t.points=void 0,t}return i(o,e),o.prototype.init=function(){e.prototype.init.apply(this,arguments),this.options=l({smoothedLine:{styles:{lineColor:this.color}}},this.options)},o.prototype.getValues=function(o,r){var n,i,s,a,l,u=r.periods[0],c=r.periods[1],h=o.xData,d=o.yData,y=d?d.length:0,f=[],v=[],g=[],m=null;if(!(y=_+(u-1)+(c-1)&&(m=e.prototype.getValues.call(this,{xData:v.slice(-c),yData:g.slice(-c)},{period:c}).yData[0]),f.push([h[l],s,m]),g[S-1][1]=m}return{values:f,xData:v,yData:g}}},o.defaultOptions=l(s.defaultOptions,{params:{index:void 0,period:void 0,periods:[14,3]},marker:{enabled:!1},tooltip:{pointFormat:' {series.name}
%K: {point.y}
%D: {point.smoothed}
'},smoothedLine:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}}),o}(s);return a(u.prototype,{areaLinesNames:[],nameComponents:["periods"],nameBase:"Stochastic",pointArrayMap:["y","smoothed"],parallelArrays:["x","y","smoothed"],pointValKey:"y",linesApiNames:["smoothedLine"]}),e.compose(u),o.registerSeriesType("stochastic",u),u}),o(e,"Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js",[e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e){var o,r=this&&this.__extends||(o=function(t,e){return(o=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),n=t.seriesTypes,i=n.sma,s=n.stochastic,a=e.extend,p=e.merge,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.options=void 0,e.points=void 0,e}return r(e,t),e.prototype.getValues=function(e,o){var r=o.periods,n=t.prototype.getValues.call(this,e,o),s={values:[],xData:[],yData:[]};if(n){s.xData=n.xData.slice(r[1]-1);var a=n.yData.slice(r[1]-1),p=i.prototype.getValues.call(this,{xData:s.xData,yData:a},{index:1,period:r[2]});if(p){for(var l=0,u=s.xData.length;l0?x:0,S={options:{gapSize:c.gapSize}},D={top:[],bottom:[],intersect:[]},O={top:{styles:{lineWidth:c.lineWidth,lineColor:c.fallingTrendColor||c.color,dashStyle:c.dashStyle}},bottom:{styles:{lineWidth:c.lineWidth,lineColor:c.risingTrendColor||c.color,dashStyle:c.dashStyle}},intersect:c.changeTrendLine},C=g.length;C--;)t=g[C],e=g[C-1],o=v[C-1+_],r=v[C-2+_],n=v[C+_],i=v[C+_+1],s=t.options.color,p={x:t.x,plotX:t.plotX,plotY:t.plotY,isNull:!1},!r&&o&&f.yData[o.index-1]&&(r=y(f,o.index-1,3)),!i&&n&&f.yData[n.index+1]&&(i=y(f,n.index+1,3)),!o&&r&&f.yData[r.index+1]?o=y(f,r.index+1,3):!o&&n&&f.yData[n.index-1]&&(o=y(f,n.index-1,3)),t&&o&&n&&r&&t.x!==o.x&&(t.x===n.x?(r=o,o=n):t.x===r.x?(o=r,r={close:f.yData[o.index-1][3],x:f.xData[o.index-1]}):i&&t.x===i.x&&(o=i,r=n)),e&&r&&o?(l={x:e.x,plotX:e.plotX,plotY:e.plotY,isNull:!1},t.y>=o.close&&e.y>=r.close?(t.color=s||c.fallingTrendColor||c.color,D.top.push(p)):t.y=o.close&&e.y=r.close&&(t.color=s||c.risingTrendColor||c.color,e.color=s||c.fallingTrendColor||c.color,D.bottom.push(p),D.bottom.push(h(l,{isNull:!0}))))):o&&(t.y>=o.close?(t.color=s||c.fallingTrendColor||c.color,D.top.push(p)):(t.color=s||c.risingTrendColor||c.color,D.bottom.push(p)));d(D,function(t,e){u.points=t,u.options=h(O[e].styles,S),u.graph=u["graph"+e+"Line"],a.prototype.drawGraph.call(u),u["graph"+e+"Line"]=u.graph}),u.points=g,u.options=c,u.graph=m},e.prototype.getValues=function(t,e){var o,r,n,i,a,p,c,h,d,y=e.period,f=e.multiplier,v=t.xData,g=t.yData,m=[],x=[],_=[],S=0===y?0:y-1,D=[],O=[],C=[];if(!(v.length<=y)&&u(g[0])&&4===g[0].length&&!(y<0)){for(d=0,C=s.prototype.getValues.call(this,t,{period:y}).yData;di?D[d]=o:D[d]=i,r>a||c[3]D[d]||p===a&&h[3]>O[d])&&(n=O[d]),m.push([v[S+d],n]),x.push(v[S+d]),_.push(n);return{values:m,xData:x,yData:_}}},e.defaultOptions=h(a.defaultOptions,{params:{index:void 0,multiplier:3,period:10},risingTrendColor:"#06b535",fallingTrendColor:"#f21313",changeTrendLine:{styles:{lineWidth:1,lineColor:"#333333",dashStyle:"LongDash"}}}),e}(a);return c(f.prototype,{nameBase:"Supertrend",nameComponents:["multiplier","period"]}),t.registerSeriesType("supertrend",f),f}),o(e,"Stock/Indicators/VBP/VBPPoint.js",[e["Core/Series/SeriesRegistry.js"]],function(t){var e,o=this&&this.__extends||(e=function(t,o){return(e=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,o)},function(t,o){if("function"!=typeof o&&null!==o)throw TypeError("Class extends value "+String(o)+" is not a constructor or null");function r(){this.constructor=t}e(t,o),t.prototype=null===o?Object.create(o):(r.prototype=o.prototype,new r)});return function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.prototype.destroy=function(){this.negativeGraphic&&(this.negativeGraphic=this.negativeGraphic.destroy()),t.prototype.destroy.apply(this,arguments)},e}(t.seriesTypes.sma.prototype.pointClass)}),o(e,"Stock/Indicators/VBP/VBPIndicator.js",[e["Stock/Indicators/VBP/VBPPoint.js"],e["Core/Animation/AnimationUtilities.js"],e["Core/Globals.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"],e["Core/Chart/StockChart.js"]],function(t,e,o,r,n,i){var s,a=this&&this.__extends||(s=function(t,e){return(s=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}s(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),p=e.animObject,l=o.noop,u=r.seriesTypes,c=u.column.prototype,h=u.sma,d=n.addEvent,y=n.arrayMax,f=n.arrayMin,v=n.correctFloat,g=n.defined,m=n.error,x=n.extend,_=n.isArray,S=n.merge,D=Math.abs,O=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.negWidths=void 0,e.options=void 0,e.points=void 0,e.posWidths=void 0,e.priceZones=void 0,e.rangeStep=void 0,e.volumeDataArray=void 0,e.zoneStarts=void 0,e.zoneLinesSVG=void 0,e}return a(e,t),e.prototype.init=function(e,o){var r=this;delete o.data,t.prototype.init.apply(r,arguments);var n=d(i,"afterLinkSeries",function(){if(r.options){var t=r.options.params,o=r.linkedParent,i=e.get(t.volumeSeriesID);r.addCustomEvents(o,i)}n()},{order:1});return r},e.prototype.addCustomEvents=function(t,e){var o=this,r=function(){o.chart.redraw(),o.setData([]),o.zoneStarts=[],o.zoneLinesSVG&&(o.zoneLinesSVG=o.zoneLinesSVG.destroy())};return o.dataEventsToUnbind.push(d(t,"remove",function(){r()})),e&&o.dataEventsToUnbind.push(d(e,"remove",function(){r()})),o},e.prototype.animate=function(t){var e=this,o=e.chart.inverted,r=e.group,n={};if(!t&&r){var i=o?e.yAxis.top:e.xAxis.left;o?(r["forceAnimate:translateY"]=!0,n.translateY=i):(r["forceAnimate:translateX"]=!0,n.translateX=i),r.animate(n,x(p(e.options.animation),{step:function(t,o){e.group.attr({scaleX:Math.max(.001,o.pos)})}}))}},e.prototype.drawPoints=function(){this.options.volumeDivision.enabled&&(this.posNegVolume(!0,!0),c.drawPoints.apply(this,arguments),this.posNegVolume(!1,!1)),c.drawPoints.apply(this,arguments)},e.prototype.posNegVolume=function(t,e){var o,r,n,i,s=e?["positive","negative"]:["negative","positive"],a=this.options.volumeDivision,p=this.points.length,l=[],u=[],c=0;for(t?(this.posWidths=l,this.negWidths=u):(l=this.posWidths,u=this.negWidths);cn&&(n=e);return{min:r,max:n}}(o),s=this.zoneStarts=[],a=[],p=i?i.min:f(o),l=i?i.max:y(o),u=0,c=1,h=this.linkedParent;if(!this.options.compareToMain&&h.dataModify&&(p=h.dataModify.modifyValue(p),l=h.dataModify.modifyValue(l)),!g(p)||!g(l))return this.points.length&&(this.setData([]),this.zoneStarts=[],this.zoneLinesSVG&&(this.zoneLinesSVG=this.zoneLinesSVG.destroy())),[];var d=this.rangeStep=v(l-p)/r;for(s.push(p);u=e.end&&e.index===d&&(a=!0),(p>e.start||s)&&(pp?e.negativeVolumeData+=h[l]:e.positiveVolumeData+=h[l])}u.volumeDataArray.push(e.wholeVolumeData)}),e},e.prototype.drawZones=function(t,e,o,r){var n,i=t.renderer,s=t.plotWidth,a=t.plotTop,p=this.zoneLinesSVG,l=[];o.forEach(function(o){n=e.toPixels(o)-a,l=l.concat(t.renderer.crispLine([["M",0,n],["L",s,n]],r.lineWidth))}),p?p.animate({d:l}):p=this.zoneLinesSVG=i.path(l).attr({"stroke-width":r.lineWidth,stroke:r.color,dashstyle:r.dashStyle,zIndex:this.group.zIndex+.1}).add(this.group)},e.defaultOptions=S(h.defaultOptions,{params:{index:void 0,period:void 0,ranges:12,volumeSeriesID:"volume"},zoneLines:{enabled:!0,styles:{color:"#0A9AC9",dashStyle:"LongDash",lineWidth:1}},volumeDivision:{enabled:!0,styles:{positiveColor:"rgba(144, 237, 125, 0.8)",negativeColor:"rgba(244, 91, 91, 0.8)"}},animationLimit:1e3,enableMouseTracking:!1,pointPadding:0,zIndex:-1,crisp:!0,dataGrouping:{enabled:!1},dataLabels:{allowOverlap:!0,enabled:!0,format:"P: {point.volumePos:.2f} | N: {point.volumeNeg:.2f}",padding:0,style:{fontSize:"0.5em"},verticalAlign:"top"}}),e}(h);return x(O.prototype,{nameBase:"Volume by Price",nameComponents:["ranges"],calculateOn:{chart:"render",xAxis:"afterSetExtremes"},pointClass:t,markerAttribs:l,drawGraph:l,getColumnMetrics:c.getColumnMetrics,crispCol:c.crispCol}),r.registerSeriesType("vbp",O),O}),o(e,"Stock/Indicators/VWAP/VWAPIndicator.js",[e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e){var o,r=this&&this.__extends||(o=function(t,e){return(o=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),n=t.seriesTypes.sma,i=e.error,s=e.isArray,a=e.merge,p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.points=void 0,e.options=void 0,e}return r(e,t),e.prototype.getValues=function(t,e){var o,r=t.chart,n=t.xData,a=t.yData,p=e.period,l=!0;if(!(o=r.get(e.volumeSeriesID))){i("Series "+e.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,r);return}return s(a[0])||(l=!1),this.calculateVWAPValues(l,n,a,o,p)},e.prototype.calculateVWAPValues=function(t,e,o,r,n){var i,s,a,p,l,u,c=r.yData,h=r.xData.length,d=e.length,y=[],f=[],v=[],g=[],m=[];for(l=0,i=d<=h?d:h,u=0;l=m*l.low&&(d.push([u[0],m]),n=[u[o],c[o][a]],i=!1,v=!0),v&&(y.push(d[0][0]),f.push(d[0][1]),r=o++,o=h);for(o=r;o=n[1]*l.low&&(g=a)):(c[o][a]>=n[1]&&(n=[u[o],c[o][a]]),c[o][s]<=n[1]*l.high&&(g=s)),!1!==g&&(d.push(n),y.push(n[0]),f.push(n[1]),n=[u[o],c[o][g]],i=!i,g=!1);var _=d.length;return 0!==_&&d[_-1][0]0&&(void 0===o||e●{series.name}: {point.y}\xb0
'}}),e}(n);return i(a.prototype,{nameBase:"Linear Regression Angle Indicator"}),t.registerSeriesType("linearRegressionAngle",a),a}),o(e,"Stock/Indicators/ABands/ABandsIndicator.js",[e["Stock/Indicators/MultipleLinesComposition.js"],e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e,o){var r,n=this&&this.__extends||(r=function(t,e){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}),i=e.seriesTypes.sma,s=o.correctFloat,a=o.extend,p=o.merge,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.options=void 0,e.points=void 0,e}return n(e,t),e.prototype.getValues=function(e,o){var r,n,i,a,p,l,u,c,h,d,y,f,v,g=o.period,m=o.factor,x=o.index,_=e.xData,S=e.yData,D=S?S.length:0,O=[],C=[],b=[],j=[],A=[];if(!(D=g&&(y=_.slice(v-g,v),f=S.slice(v-g,v),h=t.prototype.getValues.call(this,{xData:y,yData:O.slice(v-g,v)},{period:g}),d=t.prototype.getValues.call(this,{xData:y,yData:C.slice(v-g,v)},{period:g}),l=(c=t.prototype.getValues.call(this,{xData:y,yData:f},{period:g,index:x})).xData[0],a=h.yData[0],p=d.yData[0],i=c.yData[0],b.push([l,a,i,p]),j.push(l),A.push([a,i,p]));return{values:b,xData:j,yData:A}}},e.defaultOptions=p(i.defaultOptions,{params:{period:20,factor:.001,index:3},lineWidth:1,topLine:{styles:{lineWidth:1}},bottomLine:{styles:{lineWidth:1}},dataGrouping:{approximation:"averages"}}),e}(i);return a(l.prototype,{areaLinesNames:["top","bottom"],linesApiNames:["topLine","bottomLine"],nameBase:"Acceleration Bands",nameComponents:["period","factor"],pointArrayMap:["top","middle","bottom"],pointValKey:"middle"}),t.compose(l),e.registerSeriesType("abands",l),l}),o(e,"Stock/Indicators/TrendLine/TrendLineIndicator.js",[e["Core/Series/SeriesRegistry.js"],e["Core/Utilities.js"]],function(t,e){var o,r=this&&this.__extends||(o=function(t,e){return(o=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}),n=t.seriesTypes.sma,i=e.extend,s=e.merge,a=e.isArray,p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=void 0,e.options=void 0,e.points=void 0,e.updateAllPoints=!0,e}return r(e,t),e.prototype.getValues=function(t,e){var o,r,n,i=t.xData,s=t.yData,p=[],l=[],u=[],c=i.length,h=e.index,d=(c-1)*c/2,y=0,f=0;for(r=0;r