UNPKG

highcharts

Version:
107 lines (104 loc) 91.2 kB
/* Highstock JS v9.0.1 (2021-02-15) All technical indicators for Highstock (c) 2010-2021 Pawel Fus License: www.highcharts.com/license */ (function(d){"object"===typeof module&&module.exports?(d["default"]=d,module.exports=d):"function"===typeof define&&define.amd?define("highcharts/indicators/indicators-all",["highcharts","highcharts/modules/stock"],function(t){d(t);d.Highcharts=t;return d}):d("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(d){function t(d,f,g,h){d.hasOwnProperty(f)||(d[f]=h.apply(null,g))}d=d?d._modules:{};t(d,"Mixins/IndicatorRequired.js",[d["Core/Utilities.js"]],function(d){var f=d.error;return{isParentLoaded:function(g, d,m,n,q){if(g)return n?n(g):!0;f(q||this.generateMessage(m,d));return!1},generateMessage:function(f,d){return'Error: "'+f+'" indicator type requires "'+d+'" indicator loaded before. Please read docs: https://api.highcharts.com/highstock/plotOptions.'+f}}});t(d,"Stock/Indicators/SMA/SMAComposition.js",[d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f){var g=d.series,h=d.seriesTypes.ohlc.prototype;d=f.addEvent;var m=f.extend;d(g,"init",function(f){f=f.options;f.useOhlcData&&"highcharts-navigator-series"!== f.id&&m(this,{pointValKey:h.pointValKey,keys:h.keys,pointArrayMap:h.pointArrayMap,toYData:h.toYData})});d(g,"afterSetOptions",function(f){f=f.options;var g=f.dataGrouping;g&&f.useOhlcData&&"highcharts-navigator-series"!==f.id&&(g.approximation="ohlc")})});t(d,"Stock/Indicators/SMA/SMAIndicator.js",[d["Mixins/IndicatorRequired.js"],d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f,g){var h=this&&this.__extends||function(){var a=function(c,k){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var k in c)c.hasOwnProperty(k)&&(a[k]=c[k])};return a(c,k)};return function(c,k){function b(){this.constructor=c}a(c,k);c.prototype=null===k?Object.create(k):(b.prototype=k.prototype,new b)}}(),m=f.seriesTypes.line,n=g.addEvent,q=g.error,l=g.extend,e=g.isArray,b=g.merge,a=g.pick,c=g.splat,k=d.generateMessage;d=function(y){function v(){var a=null!==y&&y.apply(this,arguments)||this;a.data=void 0;a.dataEventsToUnbind=void 0;a.linkedParent=void 0; a.options=void 0;a.points=void 0;return a}h(v,y);v.prototype.destroy=function(){this.dataEventsToUnbind.forEach(function(a){a()});y.prototype.destroy.apply(this,arguments)};v.prototype.getName=function(){var c=this.name,k=[];c||((this.nameComponents||[]).forEach(function(c,b){k.push(this.options.params[c]+a(this.nameSuffixes[b],""))},this),c=(this.nameBase||this.type.toUpperCase())+(this.nameComponents?" ("+k.join(", ")+")":""));return c};v.prototype.getValues=function(a,c){var k=c.period,b=a.xData; a=a.yData;var y=a.length,v=0,A=0,l=[],f=[],g=[],J=-1;if(!(b.length<k)){for(e(a[0])&&(J=c.index?c.index:0);v<k-1;)A+=0>J?a[v]:a[v][J],v++;for(c=v;c<y;c++){A+=0>J?a[c]:a[c][J];var d=[b[c],A/k];l.push(d);f.push(d[0]);g.push(d[1]);A-=0>J?a[c-v]:a[c-v][J]}return{values:l,xData:f,yData:g}}};v.prototype.init=function(a,b){function e(){var a=v.points||[],k=(v.xData||[]).length,b=v.getValues(v.linkedParent,v.options.params)||{values:[],xData:[],yData:[]},e=[],y=!0;if(k&&!v.hasGroupedData&&v.visible&&v.points)if(v.cropped){if(v.xAxis){var p= v.xAxis.min;var A=v.xAxis.max}k=v.cropData(b.xData,b.yData,p,A);for(p=0;p<k.xData.length;p++)e.push([k.xData[p]].concat(c(k.yData[p])));k=b.xData.indexOf(v.xData[0]);p=b.xData.indexOf(v.xData[v.xData.length-1]);-1===k&&p===b.xData.length-2&&e[0][0]===a[0].x&&e.shift();v.updateData(e)}else b.xData.length!==k-1&&b.xData.length!==k+1&&(y=!1,v.updateData(b.values));y&&(v.xData=b.xData,v.yData=b.yData,v.options.data=b.values);!1===v.bindTo.series&&(delete v.processedXData,v.isDirty=!0,v.redraw());v.isDirtyData= !1}var v=this,p=v.requireIndicators();if(!p.allLoaded)return q(k(v.type,p.needed));y.prototype.init.call(v,a,b);a.linkSeries();v.dataEventsToUnbind=[];if(!v.linkedParent)return q("Series "+v.options.linkedTo+" not found! Check `linkedTo`.",!1,a);v.dataEventsToUnbind.push(n(v.bindTo.series?v.linkedParent:v.linkedParent.xAxis,v.bindTo.eventName,e));if("init"===v.calculateOn)e();else var A=n(v.chart,v.calculateOn,function(){e();A()})};v.prototype.processData=function(){var a=this.options.compareToMain, c=this.linkedParent;y.prototype.processData.apply(this,arguments);c&&c.compareValue&&a&&(this.compareValue=c.compareValue)};v.prototype.requireIndicators=function(){var a={allLoaded:!0};this.requiredIndicators.forEach(function(c){f.seriesTypes[c]?f.seriesTypes[c].prototype.requireIndicators():(a.allLoaded=!1,a.needed=c)});return a};v.defaultOptions=b(m.defaultOptions,{name:void 0,tooltip:{valueDecimals:4},linkedTo:void 0,compareToMain:!1,params:{index:0,period:14}});return v}(m);l(d.prototype,{bindTo:{series:!0, eventName:"updatedData"},calculateOn:"init",hasDerivedData:!0,nameComponents:["period"],nameSuffixes:[],requiredIndicators:[],useCommonDataGrouping:!0});f.registerSeriesType("sma",d);"";return d});t(d,"Stock/Indicators/AD/ADIndicator.js",[d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f){var g=this&&this.__extends||function(){var l=function(e,b){l=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var k in c)c.hasOwnProperty(k)&& (a[k]=c[k])};return l(e,b)};return function(e,b){function a(){this.constructor=e}l(e,b);e.prototype=null===b?Object.create(b):(a.prototype=b.prototype,new a)}}(),h=d.seriesTypes.sma,m=f.error,n=f.extend,q=f.merge;f=function(l){function e(){var b=null!==l&&l.apply(this,arguments)||this;b.data=void 0;b.options=void 0;b.points=void 0;return b}g(e,l);e.populateAverage=function(b,a,c,k,e){e=a[k][1];var y=a[k][2];a=a[k][3];c=c[k];return[b[k],a===e&&a===y||e===y?0:(2*a-y-e)/(e-y)*c]};e.prototype.getValues= function(b,a){var c=a.period,k=b.xData,y=b.yData,v=a.volumeSeriesID,A=b.chart.get(v);a=A&&A.yData;var l=y?y.length:0,f=[],u=[],p=[];if(!(k.length<=c&&l&&4!==y[0].length)){if(A){for(v=c;v<l;v++)b=f.length,A=e.populateAverage(k,y,a,v,c),0<b&&(A[1]+=f[b-1][1]),f.push(A),u.push(A[0]),p.push(A[1]);return{values:f,xData:u,yData:p}}m("Series "+v+" not found! Check `volumeSeriesID`.",!0,b.chart)}};e.defaultOptions=q(h.defaultOptions,{params:{volumeSeriesID:"volume"}});return e}(h);n(f.prototype,{nameComponents:!1, nameBase:"Accumulation/Distribution"});d.registerSeriesType("ad",f);"";return f});t(d,"Stock/Indicators/AO/AOIndicator.js",[d["Core/Globals.js"],d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f,g){var h=this&&this.__extends||function(){var a=function(c,k){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var k in c)c.hasOwnProperty(k)&&(a[k]=c[k])};return a(c,k)};return function(c,k){function b(){this.constructor=c}a(c, k);c.prototype=null===k?Object.create(k):(b.prototype=k.prototype,new b)}}();d=d.noop;var m=f.seriesTypes,n=m.sma;m=m.column;var q=g.extend,l=g.merge,e=g.correctFloat,b=g.isArray;g=function(a){function c(){var c=null!==a&&a.apply(this,arguments)||this;c.data=void 0;c.options=void 0;c.points=void 0;return c}h(c,a);c.prototype.drawGraph=function(){var a=this.options,c=this.points,b=a.greaterBarColor;a=a.lowerBarColor;var e=c[0];if(!this.userOptions.color&&e)for(e.color=b,e=1;e<c.length;e++)c[e].color= c[e].y>c[e-1].y?b:c[e].y<c[e-1].y?a:c[e-1].color};c.prototype.getValues=function(c){var a=c.xData||[];c=c.yData||[];var k=c.length,A=[],f=[],l=[],u=0,p=0,w;if(!(34>=a.length)&&b(c[0])&&4===c[0].length){for(w=0;33>w;w++){var r=(c[w][1]+c[w][2])/2;29<=w&&(u=e(u+r));p=e(p+r)}for(w=33;w<k;w++){r=(c[w][1]+c[w][2])/2;u=e(u+r);p=e(p+r);r=u/5;var g=p/34;r=e(r-g);A.push([a[w],r]);f.push(a[w]);l.push(r);r=w+1-5;g=w+1-34;u=e(u-(c[r][1]+c[r][2])/2);p=e(p-(c[g][1]+c[g][2])/2)}return{values:A,xData:f,yData:l}}}; c.defaultOptions=l(n.defaultOptions,{greaterBarColor:"#06B535",lowerBarColor:"#F21313",threshold:0,groupPadding:.2,pointPadding:.2,crisp:!1,states:{hover:{halo:{size:0}}}});return c}(n);q(g.prototype,{nameBase:"AO",nameComponents:!1,markerAttribs:d,getColumnMetrics:m.prototype.getColumnMetrics,crispCol:m.prototype.crispCol,translate:m.prototype.translate,drawPoints:m.prototype.drawPoints});f.registerSeriesType("ao",g);"";return g});t(d,"Mixins/MultipleLines.js",[d["Core/Globals.js"],d["Core/Utilities.js"]], function(d,f){var g=f.defined,h=f.error,m=f.merge,n=d.seriesTypes.sma;return{pointArrayMap:["top","bottom"],pointValKey:"top",linesApiNames:["bottomLine"],getTranslatedLinesNames:function(f){var l=[];(this.pointArrayMap||[]).forEach(function(e){e!==f&&l.push("plot"+e.charAt(0).toUpperCase()+e.slice(1))});return l},toYData:function(f){var l=[];(this.pointArrayMap||[]).forEach(function(e){l.push(f[e])});return l},translate:function(){var f=this,l=f.pointArrayMap,e=[],b;e=f.getTranslatedLinesNames(); n.prototype.translate.apply(f,arguments);f.points.forEach(function(a){l.forEach(function(c,k){b=a[c];null!==b&&(a[e[k]]=f.yAxis.toPixels(b,!0))})})},drawGraph:function(){var f=this,l=f.linesApiNames,e=f.points,b=e.length,a=f.options,c=f.graph,k={options:{gapSize:a.gapSize}},y=[],v;f.getTranslatedLinesNames(f.pointValKey).forEach(function(c,a){for(y[a]=[];b--;)v=e[b],y[a].push({x:v.x,plotX:v.plotX,plotY:v[c],isNull:!g(v[c])});b=e.length});l.forEach(function(c,b){y[b]?(f.points=y[b],a[c]?f.options= m(a[c].styles,k):h('Error: "There is no '+c+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names." at mixin/multiple-line.js:34'),f.graph=f["graph"+c],n.prototype.drawGraph.call(f),f["graph"+c]=f.graph):h('Error: "'+c+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")});f.points=e;f.options=a;f.graph=c;n.prototype.drawGraph.call(f)}}});t(d,"Stock/Indicators/Aroon/AroonIndicator.js",[d["Mixins/MultipleLines.js"], d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f,g){function h(b,a){var c=b[0],k=0,e;for(e=1;e<b.length;e++)if("max"===a&&b[e]>=c||"min"===a&&b[e]<=c)c=b[e],k=e;return k}var m=this&&this.__extends||function(){var b=function(a,c){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c,a){c.__proto__=a}||function(c,a){for(var k in a)a.hasOwnProperty(k)&&(c[k]=a[k])};return b(a,c)};return function(a,c){function k(){this.constructor=a}b(a,c);a.prototype=null===c?Object.create(c): (k.prototype=c.prototype,new k)}}(),n=f.seriesTypes.sma,q=g.extend,l=g.merge,e=g.pick;g=function(b){function a(){var c=null!==b&&b.apply(this,arguments)||this;c.data=void 0;c.options=void 0;c.points=void 0;return c}m(a,b);a.prototype.getValues=function(c,a){a=a.period;var k=c.xData,b=(c=c.yData)?c.length:0,f=[],l=[],g=[],u;for(u=a-1;u<b;u++){var p=c.slice(u-a+1,u+2);var w=h(p.map(function(c){return e(c[2],c)}),"min");p=h(p.map(function(c){return e(c[1],c)}),"max");p=p/a*100;w=w/a*100;k[u+1]&&(f.push([k[u+ 1],p,w]),l.push(k[u+1]),g.push([p,w]))}return{values:f,xData:l,yData:g}};a.defaultOptions=l(n.defaultOptions,{params:{period:25},marker:{enabled:!1},tooltip:{pointFormat:'<span style="color:{point.color}">\u25cf</span><b> {series.name}</b><br/>Aroon Up: {point.y}<br/>Aroon Down: {point.aroonDown}<br/>'},aroonDown:{styles:{lineWidth:1,lineColor:void 0}},dataGrouping:{approximation:"averages"}});return a}(n);q(g.prototype,{linesApiNames:["aroonDown"],nameBase:"Aroon",pointArrayMap:["y","aroonDown"], pointValKey:"y",drawGraph:d.drawGraph,getTranslatedLinesNames:d.getTranslatedLinesNames,toYData:d.toYData,translate:d.translate});f.registerSeriesType("aroon",g);"";return g});t(d,"Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js",[d["Mixins/MultipleLines.js"],d["Mixins/IndicatorRequired.js"],d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f,g,h){var m=this&&this.__extends||function(){var b=function(a,c){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c, a){c.__proto__=a}||function(c,a){for(var k in a)a.hasOwnProperty(k)&&(c[k]=a[k])};return b(a,c)};return function(a,c){function k(){this.constructor=a}b(a,c);a.prototype=null===c?Object.create(c):(k.prototype=c.prototype,new k)}}(),n=g.seriesTypes.aroon,q=h.extend,l=h.merge,e=g.seriesTypes.aroon;h=function(b){function a(){var c=null!==b&&b.apply(this,arguments)||this;c.data=void 0;c.options=void 0;c.points=void 0;return c}m(a,b);a.prototype.getValues=function(c,a){var k=[],b=[],f=[];c=e.prototype.getValues.call(this, c,a);for(a=0;a<c.yData.length;a++){var l=c.yData[a][0];var g=c.yData[a][1];l-=g;k.push([c.xData[a],l]);b.push(c.xData[a]);f.push(l)}return{values:k,xData:b,yData:f}};a.prototype.init=function(){var c=arguments,a=this;f.isParentLoaded(e,"aroon",a.type,function(k){k.prototype.init.apply(a,c)})};a.defaultOptions=l(n.defaultOptions,{params:{period:25},tooltip:{pointFormat:'<span style="color:{point.color}">\u25cf</span><b> {series.name}</b>: {point.y}'}});return a}(n);q(h.prototype,l(d,{nameBase:"Aroon Oscillator", pointArrayMap:["y"],pointValKey:"y",linesApiNames:[]}));g.registerSeriesType("aroonoscillator",h);"";return h});t(d,"Stock/Indicators/ATR/ATRIndicator.js",[d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f){function g(f,e){return Math.max(f[1]-f[2],"undefined"===typeof e?0:Math.abs(f[1]-e[3]),"undefined"===typeof e?0:Math.abs(f[2]-e[3]))}var h=this&&this.__extends||function(){var f=function(e,b){f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__= c}||function(a,c){for(var k in c)c.hasOwnProperty(k)&&(a[k]=c[k])};return f(e,b)};return function(e,b){function a(){this.constructor=e}f(e,b);e.prototype=null===b?Object.create(b):(a.prototype=b.prototype,new a)}}(),m=d.seriesTypes.sma,n=f.isArray,q=f.merge;f=function(f){function e(){var b=null!==f&&f.apply(this,arguments)||this;b.data=void 0;b.points=void 0;b.options=void 0;return b}h(e,f);e.prototype.getValues=function(b,a){a=a.period;var c=b.xData,k=(b=b.yData)?b.length:0,e=1,v=0,f=0,l=[],d=[], u=[],p;var w=[[c[0],b[0]]];if(!(c.length<=a)&&n(b[0])&&4===b[0].length){for(p=1;p<=k;p++)if(w.push([c[p],b[p]]),a<e){var r=a;var O=c[p-1],h=g(b[p-1],b[p-2]);r=[O,(v*(r-1)+h)/r];v=r[1];l.push(r);d.push(r[0]);u.push(r[1])}else a===e?(v=f/(p-1),l.push([c[p-1],v]),d.push(c[p-1]),u.push(v)):f+=g(b[p-1],b[p-2]),e++;return{values:l,xData:d,yData:u}}};e.defaultOptions=q(m.defaultOptions,{params:{period:14}});return e}(m);d.registerSeriesType("atr",f);"";return f});t(d,"Stock/Indicators/BB/BBIndicator.js", [d["Mixins/MultipleLines.js"],d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f,g){var h=this&&this.__extends||function(){var e=function(b,a){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c,a){c.__proto__=a}||function(c,a){for(var b in a)a.hasOwnProperty(b)&&(c[b]=a[b])};return e(b,a)};return function(b,a){function c(){this.constructor=b}e(b,a);b.prototype=null===a?Object.create(a):(c.prototype=a.prototype,new c)}}(),m=f.seriesTypes.sma,n=g.extend,q=g.isArray, l=g.merge;g=function(e){function b(){var a=null!==e&&e.apply(this,arguments)||this;a.data=void 0;a.options=void 0;a.points=void 0;return a}h(b,e);b.prototype.init=function(){f.seriesTypes.sma.prototype.init.apply(this,arguments);this.options=l({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)};b.prototype.getValues=function(a,c){var b=c.period,e=c.standardDeviation,v=a.xData,A=(a=a.yData)?a.length:0,l=[],g=[],u=[],p;if(!(v.length<b)){var w=q(a[0]); for(p=b;p<=A;p++){var r=v.slice(p-b,p);var d=a.slice(p-b,p);var h=f.seriesTypes.sma.prototype.getValues.call(this,{xData:r,yData:d},c);r=h.xData[0];h=h.yData[0];for(var m=0,x=d.length,n=0;n<x;n++){var z=(w?d[n][c.index]:d[n])-h;m+=z*z}z=Math.sqrt(m/(x-1));d=h+e*z;z=h-e*z;l.push([r,d,h,z]);g.push(r);u.push([d,h,z])}return{values:l,xData:g,yData:u}}};b.defaultOptions=l(m.defaultOptions,{params:{period:20,standardDeviation:2,index:3},bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1, lineColor:void 0}},tooltip:{pointFormat:'<span style="color:{point.color}">\u25cf</span><b> {series.name}</b><br/>Top: {point.top}<br/>Middle: {point.middle}<br/>Bottom: {point.bottom}<br/>'},marker:{enabled:!1},dataGrouping:{approximation:"averages"}});return b}(m);n(g.prototype,{pointArrayMap:["top","middle","bottom"],pointValKey:"middle",nameComponents:["period","standardDeviation"],linesApiNames:["topLine","bottomLine"],drawGraph:d.drawGraph,getTranslatedLinesNames:d.getTranslatedLinesNames,translate:d.translate, toYData:d.toYData});f.registerSeriesType("bb",g);"";return g});t(d,"Stock/Indicators/CCI/CCIIndicator.js",[d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f){function g(f){return f.reduce(function(e,b){return e+b},0)}var h=this&&this.__extends||function(){var f=function(e,b){f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var b in c)c.hasOwnProperty(b)&&(a[b]=c[b])};return f(e,b)};return function(e,b){function a(){this.constructor= e}f(e,b);e.prototype=null===b?Object.create(b):(a.prototype=b.prototype,new a)}}(),m=d.seriesTypes.sma,n=f.isArray,q=f.merge;f=function(f){function e(){var b=null!==f&&f.apply(this,arguments)||this;b.data=void 0;b.points=void 0;b.options=void 0;return b}h(e,f);e.prototype.getValues=function(b,a){a=a.period;var c=b.xData,k=(b=b.yData)?b.length:0,e=[],v=1,f=[],l=[],d=[];if(!(c.length<=a)&&n(b[0])&&4===b[0].length){for(;v<a;){var u=b[v-1];e.push((u[1]+u[2]+u[3])/3);v++}for(v=a;v<=k;v++){u=b[v-1];u=(u[1]+ u[2]+u[3])/3;var p=e.push(u);var w=e.slice(p-a);p=g(w)/a;var r,O=w.length,h=0;for(r=0;r<O;r++)h+=Math.abs(p-w[r]);w=h/a;u=(u-p)/(.015*w);f.push([c[v-1],u]);l.push(c[v-1]);d.push(u)}return{values:f,xData:l,yData:d}}};e.defaultOptions=q(m.defaultOptions,{params:{period:14}});return e}(m);d.registerSeriesType("cci",f);"";return f});t(d,"Stock/Indicators/CMF/CMFIndicator.js",[d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f){var g=this&&this.__extends||function(){var f=function(d, l){f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,b){e.__proto__=b}||function(e,b){for(var a in b)b.hasOwnProperty(a)&&(e[a]=b[a])};return f(d,l)};return function(d,l){function e(){this.constructor=d}f(d,l);d.prototype=null===l?Object.create(l):(e.prototype=l.prototype,new e)}}(),h=d.seriesTypes.sma,m=f.merge;f=function(f){function d(){var l=null!==f&&f.apply(this,arguments)||this;l.data=void 0;l.options=void 0;l.points=void 0;l.volumeSeries=void 0;l.linkedParent=void 0;l.yData= void 0;l.nameBase="Chaikin Money Flow";return l}g(d,f);d.prototype.isValid=function(){var f=this.chart,e=this.options,b=this.linkedParent;f=this.volumeSeries||(this.volumeSeries=f.get(e.params.volumeSeriesID));var a=b&&b.yData&&4===b.yData[0].length;return!!(b&&f&&b.xData&&b.xData.length>=e.params.period&&f.xData&&f.xData.length>=e.params.period&&a)};d.prototype.getValues=function(f,e){if(this.isValid())return this.getMoneyFlow(f.xData,f.yData,this.volumeSeries.yData,e.period)};d.prototype.getMoneyFlow= function(f,e,b,a){function c(a,c){var b=a[1],k=a[2];a=a[3];return null!==c&&null!==b&&null!==k&&null!==a&&b!==k?(a-k-(b-a))/(b-k)*c:(w=p,null)}var k=e.length,y=[],v=0,A=0,d=[],l=[],u=[],p,w=-1;if(0<a&&a<=k){for(p=0;p<a;p++)y[p]=c(e[p],b[p]),v+=b[p],A+=y[p];d.push(f[p-1]);l.push(p-w>=a&&0!==v?A/v:null);for(u.push([d[0],l[0]]);p<k;p++){y[p]=c(e[p],b[p]);v-=b[p-a];v+=b[p];A-=y[p-a];A+=y[p];var r=[f[p],p-w>=a?A/v:null];d.push(r[0]);l.push(r[1]);u.push([r[0],r[1]])}}return{values:u,xData:d,yData:l}};d.defaultOptions= m(h.defaultOptions,{params:{period:14,volumeSeriesID:"volume"}});return d}(h);d.registerSeriesType("cmf",f);"";return f});t(d,"Stock/Indicators/DPO/DPOIndicator.js",[d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f){function g(b,a,c,k,y){a=e(a[c][k],a[c]);return y?l(b-a):l(b+a)}var h=this&&this.__extends||function(){var b=function(a,c){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var b in c)c.hasOwnProperty(b)&&(a[b]= c[b])};return b(a,c)};return function(a,c){function k(){this.constructor=a}b(a,c);a.prototype=null===c?Object.create(c):(k.prototype=c.prototype,new k)}}(),m=d.seriesTypes.sma,n=f.extend,q=f.merge,l=f.correctFloat,e=f.pick;f=function(b){function a(){var a=null!==b&&b.apply(this,arguments)||this;a.options=void 0;a.data=void 0;a.points=void 0;return a}h(a,b);a.prototype.getValues=function(a,b){var c=b.period;b=b.index;var k=c+Math.floor(c/2+1),f=a.xData||[];a=a.yData||[];var d=a.length,l=[],u=[],p= [],w=0,r,h;if(!(f.length<=k)){for(r=0;r<c-1;r++)w=g(w,a,r,b);for(h=0;h<=d-k;h++){var m=h+c-1;r=h+k-1;w=g(w,a,m,b);m=e(a[r][b],a[r]);m-=w/c;w=g(w,a,h,b,!0);l.push([f[r],m]);u.push(f[r]);p.push(m)}return{values:l,xData:u,yData:p}}};a.defaultOptions=q(m.defaultOptions,{params:{period:21}});return a}(m);n(f.prototype,{nameBase:"DPO"});d.registerSeriesType("dpo",f);"";return f});t(d,"Stock/Indicators/EMA/EMAIndicator.js",[d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f){var g=this&& this.__extends||function(){var f=function(e,b){f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var b in c)c.hasOwnProperty(b)&&(a[b]=c[b])};return f(e,b)};return function(e,b){function a(){this.constructor=e}f(e,b);e.prototype=null===b?Object.create(b):(a.prototype=b.prototype,new a)}}(),h=d.seriesTypes.sma,m=f.correctFloat,n=f.isArray,q=f.merge;f=function(f){function e(){var b=null!==f&&f.apply(this,arguments)||this;b.data=void 0;b.options= void 0;b.points=void 0;return b}g(e,f);e.prototype.accumulatePeriodPoints=function(b,a,c){for(var k=0,e=0,f;e<b;)f=0>a?c[e]:c[e][a],k+=f,e++;return k};e.prototype.calculateEma=function(b,a,c,k,e,f,d){b=b[c-1];a=0>f?a[c-1]:a[c-1][f];k="undefined"===typeof e?d:m(a*k+e*(1-k));return[b,k]};e.prototype.getValues=function(b,a){var c=a.period,k=b.xData,e=(b=b.yData)?b.length:0,f=2/(c+1),d=[],l=[],g=[],u=-1;if(!(e<c)){n(b[0])&&(u=a.index?a.index:0);a=this.accumulatePeriodPoints(c,u,b);for(a/=c;c<e+1;c++){var p= this.calculateEma(k,b,c,f,p,u,a);d.push(p);l.push(p[0]);g.push(p[1]);p=p[1]}return{values:d,xData:l,yData:g}}};e.defaultOptions=q(h.defaultOptions,{params:{index:3,period:9}});return e}(h);d.registerSeriesType("ema",f);"";return f});t(d,"Stock/Indicators/Chaikin/ChaikinIndicator.js",[d["Mixins/IndicatorRequired.js"],d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f,g){var h=this&&this.__extends||function(){var a=function(c,b){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var b in c)c.hasOwnProperty(b)&&(a[b]=c[b])};return a(c,b)};return function(c,b){function k(){this.constructor=c}a(c,b);c.prototype=null===b?Object.create(b):(k.prototype=b.prototype,new k)}}(),m=f.seriesTypes,n=m.ad,q=m.ema,l=g.correctFloat;m=g.extend;var e=g.merge,b=g.error;g=function(a){function c(){var c=null!==a&&a.apply(this,arguments)||this;c.data=void 0;c.options=void 0;c.points=void 0;return c}h(c,a);c.prototype.init=function(){var a= arguments,c=this;d.isParentLoaded(q,"ema",c.type,function(b){b.prototype.init.apply(c,a)})};c.prototype.getValues=function(a,c){var k=c.periods,e=c.period,f=[],y=[],d=[],p;if(2!==k.length||k[1]<=k[0])b('Error: "Chaikin requires two periods. Notice, first period should be lower than the second one."');else if(c=n.prototype.getValues.call(this,a,{volumeSeriesID:c.volumeSeriesID,period:e}))if(a=q.prototype.getValues.call(this,c,{period:k[0]}),c=q.prototype.getValues.call(this,c,{period:k[1]}),a&&c){k= k[1]-k[0];for(p=0;p<c.yData.length;p++)e=l(a.yData[p+k]-c.yData[p]),f.push([c.xData[p],e]),y.push(c.xData[p]),d.push(e);return{values:f,xData:y,yData:d}}};c.defaultOptions=e(q.defaultOptions,{params:{volumeSeriesID:"volume",periods:[3,10]}});return c}(q);m(g.prototype,{nameBase:"Chaikin Osc",nameComponents:["periods"]});f.registerSeriesType("chaikin",g);"";return g});t(d,"Stock/Indicators/DEMA/DEMAIndicator.js",[d["Mixins/IndicatorRequired.js"],d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]], function(d,f,g){var h=this&&this.__extends||function(){var e=function(b,a){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])};return e(b,a)};return function(b,a){function c(){this.constructor=b}e(b,a);b.prototype=null===a?Object.create(a):(c.prototype=a.prototype,new c)}}(),m=f.seriesTypes.ema,n=g.correctFloat,q=g.isArray,l=g.merge;g=function(e){function b(){var a=null!==e&&e.apply(this,arguments)|| this;a.EMApercent=void 0;a.data=void 0;a.options=void 0;a.points=void 0;return a}h(b,e);b.prototype.init=function(){var a=arguments,c=this;d.isParentLoaded(m,"ema",c.type,function(b){b.prototype.init.apply(c,a)})};b.prototype.getEMA=function(a,c,b,e,f,d){return m.prototype.calculateEma(d||[],a,"undefined"===typeof f?1:f,this.EMApercent,c,"undefined"===typeof e?-1:e,b)};b.prototype.getValues=function(a,c){var b=c.period,e=2*b,f=a.xData,d=(a=a.yData)?a.length:0,l=-1,g=[],u=[],p=[],w=0,r=[],h;this.EMApercent= 2/(b+1);if(!(d<2*b-1)){q(a[0])&&(l=c.index?c.index:0);c=m.prototype.accumulatePeriodPoints(b,l,a);var L=c/b;c=0;for(h=b;h<d+2;h++){h<d+1&&(w=this.getEMA(a,z,L,l,h)[1],r.push(w));var z=w;if(h<e)c+=w;else{h===e&&(L=c/b);w=r[h-b-1];var x=this.getEMA([w],x,L)[1];var C=[f[h-2],n(2*w-x)];g.push(C);u.push(C[0]);p.push(C[1])}}return{values:g,xData:u,yData:p}}};b.defaultOptions=l(m.defaultOptions);return b}(m);f.registerSeriesType("dema",g);"";return g});t(d,"Stock/Indicators/TEMA/TEMAIndicator.js",[d["Mixins/IndicatorRequired.js"], d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f,g){var h=this&&this.__extends||function(){var e=function(b,a){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])};return e(b,a)};return function(b,a){function c(){this.constructor=b}e(b,a);b.prototype=null===a?Object.create(a):(c.prototype=a.prototype,new c)}}(),m=f.seriesTypes.ema,n=g.correctFloat,q=g.isArray,l=g.merge;g=function(e){function b(){var a= null!==e&&e.apply(this,arguments)||this;a.EMApercent=void 0;a.data=void 0;a.options=void 0;a.points=void 0;return a}h(b,e);b.prototype.init=function(){var a=arguments,c=this;d.isParentLoaded(m,"ema",c.type,function(b){b.prototype.init.apply(c,a)})};b.prototype.getEMA=function(a,c,b,e,f,d){return m.prototype.calculateEma(d||[],a,"undefined"===typeof f?1:f,this.EMApercent,c,"undefined"===typeof e?-1:e,b)};b.prototype.getTemaPoint=function(a,c,b,e){return[a[e-3],n(3*b.level1-3*b.level2+b.level3)]};b.prototype.getValues= function(a,c){var b=c.period,e=2*b,f=3*b,d=a.xData,l=(a=a.yData)?a.length:0,g=-1,u=[],p=[],w=[],r=[],h=[],n,z,x={};this.EMApercent=2/(b+1);if(!(l<3*b-2)){q(a[0])&&(g=c.index?c.index:0);c=m.prototype.accumulatePeriodPoints(b,g,a);var C=c/b;c=0;for(n=b;n<l+3;n++){n<l+1&&(x.level1=this.getEMA(a,R,C,g,n)[1],r.push(x.level1));var R=x.level1;if(n<e)c+=x.level1;else{n===e&&(C=c/b,c=0);x.level1=r[n-b-1];x.level2=this.getEMA([x.level1],D,C)[1];h.push(x.level2);var D=x.level2;if(n<f)c+=x.level2;else{n===f&& (C=c/b);n===l+1&&(x.level1=r[n-b-1],x.level2=this.getEMA([x.level1],D,C)[1],h.push(x.level2));x.level1=r[n-b-2];x.level2=h[n-2*b-1];x.level3=this.getEMA([x.level2],x.prevLevel3,C)[1];if(z=this.getTemaPoint(d,f,x,n))u.push(z),p.push(z[0]),w.push(z[1]);x.prevLevel3=x.level3}}}return{values:u,xData:p,yData:w}}};b.defaultOptions=l(m.defaultOptions);return b}(m);f.registerSeriesType("tema",g);"";return g});t(d,"Stock/Indicators/TRIX/TRIXIndicator.js",[d["Mixins/IndicatorRequired.js"],d["Core/Series/SeriesRegistry.js"], d["Core/Utilities.js"]],function(d,f,g){var h=this&&this.__extends||function(){var f=function(e,b){f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var b in c)c.hasOwnProperty(b)&&(a[b]=c[b])};return f(e,b)};return function(e,b){function a(){this.constructor=e}f(e,b);e.prototype=null===b?Object.create(b):(a.prototype=b.prototype,new a)}}(),m=f.seriesTypes.tema,n=g.correctFloat,q=g.merge;g=function(l){function e(){var b=null!==l&&l.apply(this, arguments)||this;b.data=void 0;b.options=void 0;b.points=void 0;return b}h(e,l);e.prototype.init=function(){var b=arguments,a=this;d.isParentLoaded(f.seriesTypes.tema,"tema",a.type,function(c){c.prototype.init.apply(a,b)})};e.prototype.getTemaPoint=function(b,a,c,k){if(k>a)var e=[b[k-3],0!==c.prevLevel3?n(c.level3-c.prevLevel3)/c.prevLevel3*100:null];return e};e.defaultOptions=q(m.defaultOptions);return e}(m);f.registerSeriesType("trix",g);"";return g});t(d,"Stock/Indicators/APO/APOIndicator.js", [d["Mixins/IndicatorRequired.js"],d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f,g){var h=this&&this.__extends||function(){var e=function(b,a){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])};return e(b,a)};return function(b,a){function c(){this.constructor=b}e(b,a);b.prototype=null===a?Object.create(a):(c.prototype=a.prototype,new c)}}(),m=f.seriesTypes.ema,n=g.extend,q=g.merge, l=g.error;g=function(e){function b(){var a=null!==e&&e.apply(this,arguments)||this;a.data=void 0;a.options=void 0;a.points=void 0;return a}h(b,e);b.prototype.getValues=function(a,c){var b=c.periods,e=c.index;c=[];var f=[],d=[],g;if(2!==b.length||b[1]<=b[0])l('Error: "APO requires two periods. Notice, first period should be lower than the second one."');else{var h=m.prototype.getValues.call(this,a,{index:e,period:b[0]});a=m.prototype.getValues.call(this,a,{index:e,period:b[1]});if(h&&a){b=b[1]-b[0]; for(g=0;g<a.yData.length;g++)e=h.yData[g+b]-a.yData[g],c.push([a.xData[g],e]),f.push(a.xData[g]),d.push(e);return{values:c,xData:f,yData:d}}}};b.prototype.init=function(){var a=arguments,c=this;d.isParentLoaded(m,"ema",c.type,function(b){b.prototype.init.apply(c,a)})};b.defaultOptions=q(m.defaultOptions,{params:{periods:[10,20]}});return b}(m);n(g.prototype,{nameBase:"APO",nameComponents:["periods"]});f.registerSeriesType("apo",g);"";return g});t(d,"Stock/Indicators/IKH/IKHIndicator.js",[d["Core/Color/Color.js"], d["Core/Globals.js"],d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f,g,h){function m(a){return a.reduce(function(a,c){return Math.max(a,c[1])},-Infinity)}function n(a){return a.reduce(function(a,c){return Math.min(a,c[2])},Infinity)}function q(a){return{high:m(a),low:n(a)}}function l(a){var c,b,k,e,f;a.series.forEach(function(a){if(a.xData)for(e=a.xData,f=b=a.xIncrement?1:e.length-1;0<f;f--)if(k=e[f]-e[f-1],"undefined"===typeof c||k<c)c=k});return c}function e(a,c,b,k){if(a&& c&&b&&k){var e=c.plotX-a.plotX;c=c.plotY-a.plotY;var f=k.plotX-b.plotX;k=k.plotY-b.plotY;var p=a.plotX-b.plotX,v=a.plotY-b.plotY;b=(-c*p+e*v)/(-f*c+e*k);f=(f*v-k*p)/(-f*c+e*k);if(0<=b&&1>=b&&0<=f&&1>=f)return{plotX:a.plotX+f*e,plotY:a.plotY+f*c}}return!1}function b(a){var c=a.indicator;c.points=a.points;c.nextPoints=a.nextPoints;c.color=a.color;c.options=A(a.options.senkouSpan.styles,a.gap);c.graph=a.graph;c.fillGraph=!0;g.seriesTypes.sma.prototype.drawGraph.call(c)}var a=this&&this.__extends||function(){var a= function(c,b){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var b in c)c.hasOwnProperty(b)&&(a[b]=c[b])};return a(c,b)};return function(c,b){function k(){this.constructor=c}a(c,b);c.prototype=null===b?Object.create(b):(k.prototype=b.prototype,new k)}}(),c=d.parse,k=g.seriesTypes.sma,y=h.defined;d=h.extend;var v=h.isArray,A=h.merge,J=h.objectEach;f.approximations["ichimoku-averages"]=function(){var a=[],c;[].forEach.call(arguments,function(b, k){a.push(f.approximations.average(b));c=!c&&"undefined"===typeof a[k]});return c?void 0:a};h=function(f){function d(){var a=null!==f&&f.apply(this,arguments)||this;a.data=void 0;a.options=void 0;a.points=void 0;a.graphCollection=void 0;a.graphsenkouSpan=void 0;a.ikhMap=void 0;a.nextPoints=void 0;return a}a(d,f);d.prototype.init=function(){g.seriesTypes.sma.prototype.init.apply(this,arguments);this.options=A({tenkanLine:{styles:{lineColor:this.color}},kijunLine:{styles:{lineColor:this.color}},chikouLine:{styles:{lineColor:this.color}}, senkouSpanA:{styles:{lineColor:this.color,fill:c(this.color).setOpacity(.5).get()}},senkouSpanB:{styles:{lineColor:this.color,fill:c(this.color).setOpacity(.5).get()}},senkouSpan:{styles:{fill:c(this.color).setOpacity(.2).get()}}},this.options)};d.prototype.toYData=function(a){return[a.tenkanSen,a.kijunSen,a.chikouSpan,a.senkouSpanA,a.senkouSpanB]};d.prototype.translate=function(){var a=this;g.seriesTypes.sma.prototype.translate.apply(a);a.points.forEach(function(c){a.pointArrayMap.forEach(function(b){y(c[b])&& (c["plot"+b]=a.yAxis.toPixels(c[b],!0),c.plotY=c["plot"+b],c.tooltipPos=[c.plotX,c["plot"+b]],c.isNull=!1)})})};d.prototype.drawGraph=function(){var a=this,c=a.points,k=c.length,f=a.options,d=a.graph,v=a.color,l={options:{gapSize:f.gapSize}},u=a.pointArrayMap.length,h=[[],[],[],[],[],[]],m={tenkanLine:h[0],kijunLine:h[1],chikouLine:h[2],senkouSpanA:h[3],senkouSpanB:h[4],senkouSpan:h[5]},n=[],q=a.options.senkouSpan,K=q.color||q.styles.fill,z=q.negativeColor,t=[[],[]],N=[[],[]],P=0,F,Q,M;for(a.ikhMap= m;k--;){var E=c[k];for(F=0;F<u;F++)q=a.pointArrayMap[F],y(E[q])&&h[F].push({plotX:E.plotX,plotY:E["plot"+q],isNull:!1});z&&k!==c.length-1&&(q=m.senkouSpanB.length-1,E=e(m.senkouSpanA[q-1],m.senkouSpanA[q],m.senkouSpanB[q-1],m.senkouSpanB[q]),F={plotX:E.plotX,plotY:E.plotY,isNull:!1,intersectPoint:!0},E&&(m.senkouSpanA.splice(q,0,F),m.senkouSpanB.splice(q,0,F),n.push(q)))}J(m,function(c,b){f[b]&&"senkouSpan"!==b&&(a.points=h[P],a.options=A(f[b].styles,l),a.graph=a["graph"+b],a.fillGraph=!1,a.color= v,g.seriesTypes.sma.prototype.drawGraph.call(a),a["graph"+b]=a.graph);P++});a.graphCollection&&a.graphCollection.forEach(function(c){a[c].destroy();delete a[c]});a.graphCollection=[];if(z&&m.senkouSpanA[0]&&m.senkouSpanB[0]){n.unshift(0);n.push(m.senkouSpanA.length-1);for(u=0;u<n.length-1;u++){q=n[u];E=n[u+1];k=m.senkouSpanB.slice(q,E+1);q=m.senkouSpanA.slice(q,E+1);if(1<=Math.floor(k.length/2))if(E=Math.floor(k.length/2),k[E].plotY===q[E].plotY){for(M=F=E=0;M<k.length;M++)E+=k[M].plotY,F+=q[M].plotY; E=E>F?0:1}else E=k[E].plotY>q[E].plotY?0:1;else E=k[0].plotY>q[0].plotY?0:1;t[E]=t[E].concat(k);N[E]=N[E].concat(q)}["graphsenkouSpanColor","graphsenkouSpanNegativeColor"].forEach(function(c,k){t[k].length&&N[k].length&&(Q=0===k?K:z,b({indicator:a,points:t[k],nextPoints:N[k],color:Q,options:f,gap:l,graph:a[c]}),a[c]=a.graph,a.graphCollection.push(c))})}else b({indicator:a,points:m.senkouSpanB,nextPoints:m.senkouSpanA,color:K,options:f,gap:l,graph:a.graphsenkouSpan}),a.graphsenkouSpan=a.graph;delete a.nextPoints; delete a.fillGraph;a.points=c;a.options=f;a.graph=d;a.color=v};d.prototype.getGraphPath=function(a){var c=[],b;a=a||this.points;if(this.fillGraph&&this.nextPoints){if((b=g.seriesTypes.sma.prototype.getGraphPath.call(this,this.nextPoints))&&b.length){b[0][0]="L";c=g.seriesTypes.sma.prototype.getGraphPath.call(this,a);b=b.slice(0,c.length);for(var k=b.length-1;0<=k;k--)c.push(b[k])}}else c=g.seriesTypes.sma.prototype.getGraphPath.apply(this,arguments);return c};d.prototype.getValues=function(a,c){var b= c.period,k=c.periodTenkan;c=c.periodSenkouSpanB;var e=a.xData,f=a.yData,d=f&&f.length||0;a=l(a.xAxis);var y=[],p=[],g;if(!(e.length<=b)&&v(f[0])&&4===f[0].length){var A=e[0]-b*a;for(g=0;g<b;g++)p.push(A+g*a);for(g=0;g<d;g++){if(g>=k){var u=f.slice(g-k,g);u=q(u);u=(u.high+u.low)/2}if(g>=b){var h=f.slice(g-b,g);h=q(h);h=(h.high+h.low)/2;var w=(u+h)/2}if(g>=c){var m=f.slice(g-c,g);m=q(m);m=(m.high+m.low)/2}A=f[g][3];var n=e[g];"undefined"===typeof y[g]&&(y[g]=[]);"undefined"===typeof y[g+b]&&(y[g+b]= []);y[g+b][0]=u;y[g+b][1]=h;y[g+b][2]=void 0;y[g][2]=A;g<=b&&(y[g+b][3]=void 0,y[g+b][4]=void 0);"undefined"===typeof y[g+2*b]&&(y[g+2*b]=[]);y[g+2*b][3]=w;y[g+2*b][4]=m;p.push(n)}for(g=1;g<=b;g++)p.push(n+g*a);return{values:y,xData:p,yData:y}}};d.defaultOptions=A(k.defaultOptions,{params:{period:26,periodTenkan:9,periodSenkouSpanB:52},marker:{enabled:!1},tooltip:{pointFormat:'<span style="color:{point.color}">\u25cf</span> <b> {series.name}</b><br/>TENKAN SEN: {point.tenkanSen:.3f}<br/>KIJUN SEN: {point.kijunSen:.3f}<br/>CHIKOU SPAN: {point.chikouSpan:.3f}<br/>SENKOU SPAN A: {point.senkouSpanA:.3f}<br/>SENKOU SPAN B: {point.senkouSpanB:.3f}<br/>'}, 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"}});return d}(k);d(h.prototype,{pointArrayMap:["tenkanSen","kijunSen","chikouSpan","senkouSpanA","senkouSpanB"],pointValKey:"tenkanSen",nameComponents:["periodSenkouSpanB", "period","periodTenkan"]});g.registerSeriesType("ikh",h);"";return h});t(d,"Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js",[d["Mixins/MultipleLines.js"],d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f,g){var h=this&&this.__extends||function(){var e=function(b,a){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])};return e(b,a)};return function(b,a){function c(){this.constructor= b}e(b,a);b.prototype=null===a?Object.create(a):(c.prototype=a.prototype,new c)}}(),m=f.seriesTypes.sma,n=g.correctFloat,q=g.extend,l=g.merge;g=function(e){function b(){var a=null!==e&&e.apply(this,arguments)||this;a.data=void 0;a.options=void 0;a.points=void 0;return a}h(b,e);b.prototype.init=function(){f.seriesTypes.sma.prototype.init.apply(this,arguments);this.options=l({topLine:{styles:{lineColor:this.color}},bottomLine:{styles:{lineColor:this.color}}},this.options)};b.prototype.getValues=function(a, c){var b=c.period,e=c.periodATR,d=c.multiplierATR,g=a.yData;g=g?g.length:0;var l=[];c=f.seriesTypes.ema.prototype.getValues(a,{period:b,index:c.index});var h=f.seriesTypes.atr.prototype.getValues(a,{period:e}),u=[],p=[],w;if(!(g<b)){for(w=b;w<=g;w++){var r=c.values[w-b];var m=h.values[w-e];var q=r[0];a=n(r[1]+d*m[1]);m=n(r[1]-d*m[1]);r=r[1];l.push([q,a,r,m]);u.push(q);p.push([a,r,m])}return{values:l,xData:u,yData:p}}};b.defaultOptions=l(m.defaultOptions,{params:{period:20,periodATR:10,multiplierATR:2}, bottomLine:{styles:{lineWidth:1,lineColor:void 0}},topLine:{styles:{lineWidth:1,lineColor:void 0}},tooltip:{pointFormat:'<span style="color:{point.color}">\u25cf</span><b> {series.name}</b><br/>Upper Channel: {point.top}<br/>EMA({series.options.params.period}): {point.middle}<br/>Lower Channel: {point.bottom}<br/>'},marker:{enabled:!1},dataGrouping:{approximation:"averages"},lineWidth:1});return b}(m);q(g.prototype,{pointArrayMap:["top","middle","bottom"],pointValKey:"middle",nameBase:"Keltner Channels", nameComponents:["period","periodATR","multiplierATR"],linesApiNames:["topLine","bottomLine"],requiredIndicators:["ema","atr"],drawGraph:d.drawGraph,getTranslatedLinesNames:d.getTranslatedLinesNames,translate:d.translate,toYData:d.toYData});f.registerSeriesType("keltnerchannels",g);"";return g});t(d,"Stock/Indicators/MACD/MACDIndicator.js",[d["Core/Globals.js"],d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f,g){var h=this&&this.__extends||function(){var a=function(c,b){a=Object.setPrototypeOf|| {__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var b in c)c.hasOwnProperty(b)&&(a[b]=c[b])};return a(c,b)};return function(c,b){function k(){this.constructor=c}a(c,b);c.prototype=null===b?Object.create(b):(k.prototype=b.prototype,new k)}}(),m=d.noop,n=f.seriesTypes.sma,q=g.extend,l=g.correctFloat,e=g.defined,b=g.merge;g=function(a){function c(){var c=null!==a&&a.apply(this,arguments)||this;c.data=void 0;c.options=void 0;c.points=void 0;c.currentLineZone=void 0;c.graphmacd= void 0;c.graphsignal=void 0;c.macdZones=void 0;c.signalZones=void 0;return c}h(c,a);c.prototype.init=function(){f.seriesTypes.sma.prototype.init.apply(this,arguments);this.options&&(this.options=b({signalLine:{styles:{lineColor:this.color}},macdLine:{styles:{color:this.color}}},this.options),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)}; c.prototype.toYData=function(a){return[a.y,a.signal,a.MACD]};c.prototype.translate=function(){var a=this,c=["plotSignal","plotMACD"];d.seriesTypes.column.prototype.translate.apply(a);a.points.forEach(function(b){[b.signal,b.MACD].forEach(function(k,e){null!==k&&(b[c[e]]=a.yAxis.toPixels(k,!0))})})};c.prototype.destroy=function(){this.graph=null;this.graphmacd=this.graphmacd&&this.graphmacd.destroy();this.graphsignal=this.graphsignal&&this.graphsignal.destroy();f.seriesTypes.sma.prototype.destroy.apply(this, arguments)};c.prototype.drawGraph=function(){for(var a=this,c=a.points,d=c.length,g=a.options,l=a.zones,h={options:{gapSize:g.gapSize}},u=[[],[]],p;d--;)p=c[d],e(p.plotMACD)&&u[0].push({plotX:p.plotX,plotY:p.plotMACD,isNull:!e(p.plotMACD)}),e(p.plotSignal)&&u[1].push({plotX:p.plotX,plotY:p.plotSignal,isNull:!e(p.plotMACD)});["macd","signal"].forEach(function(c,e){a.points=u[e];a.options=b(g[c+"Line"].styles,h);a.graph=a["graph"+c];a.currentLineZone=c+"Zones";a.zones=a[a.currentLineZone].zones;f.seriesTypes.sma.prototype.drawGraph.call(a); a["graph"+c]=a.graph});a.points=c;a.options=g;a.zones=l;a.currentLineZone=null};c.prototype.getZonesGraphs=function(c){var b=a.prototype.getZonesGraphs.call(this,c),e=b;this.currentLineZone&&(e=b.splice(this[this.currentLineZone].startIndex+1),e.length?e.splice(0,0,c[0]):e=[c[0]]);return e};c.prototype.applyZones=function(){var a=this.zones;this.zones=this.signalZones.zones;f.seriesTypes.sma.prototype.applyZones.call(this);this.graphmacd&&this.options.macdLine.zones.length&&this.graphmacd.hide(); this.zones=a};c.prototype.getValues=function(a,c){var b=0,k=[],d=[],g=[];if(!(a.xData.length<c.longPeriod+c.signalPeriod)){var y=f.seriesTypes.ema.prototype.getValues(a,{period:c.shortPeriod,index:c.index});var p=f.seriesTypes.ema.prototype.getValues(a,{period:c.longPeriod,index:c.index});y=y.values;p=p.values;for(a=1;a<=y.length;a++)e(p[a-1])&&e(p[a-1][1])&&e(y[a+c.shortPeriod+1])&&e(y[a+c.shortPeriod+1][0])&&k.push([y[a+c.shortPeriod+1][0],0,null,y[a+c.shortPeriod+1][1]-p[a-1][1]]);for(a=0;a<k.length;a++)d.push(k[a][0]), g.push([0,null,k[a][3]]);c=f.seriesTypes.ema.prototype.getValues({xData:d,yData:g},{period:c.signalPeriod,index:2});c=c.values;for(a=0;a<k.length;a++)k[a][0]>=c[0][0]&&(k[a][2]=c[b][1],g[a]=[0,c[b][1],k[a][3]],null===k[a][3]?(k[a][1]=0,g[a][0]=0):(k[a][1]=l(k[a][3]-c[b][1]),g[a][0]=l(k[a][3]-c[b][1])),b++);return{values:k,xData:d,yData:g}}};c.defaultOptions=b(n.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:'<span style="color:{point.color}">\u25cf</span> <b> {series.name}</b><br/>Value: {point.MACD}<br/>Signal: {point.signal}<br/>Histogram: {point.y}<br/>'},dataGrouping:{approximation:"averages"},minPointLength:0});return c}(n);q(g.prototype,{nameComponents:["longPeriod","shortPeriod","signalPeriod"],requiredIndicators:["ema"],pointArrayMap:["y", "signal","MACD"],parallelArrays:["x","y","signal","MACD"],pointValKey:"y",markerAttribs:m,getColumnMetrics:d.seriesTypes.column.prototype.getColumnMetrics,crispCol:d.seriesTypes.column.prototype.crispCol,drawPoints:d.seriesTypes.column.prototype.drawPoints});f.registerSeriesType("macd",g);"";return g});t(d,"Stock/Indicators/MFI/MFIIndicator.js",[d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f){function g(a){return a.reduce(function(a,b){return a+b})}function h(a){return(a[1]+ a[2]+a[3])/3}var m=this&&this.__extends||function(){var a=function(c,b){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var b in c)c.hasOwnProperty(b)&&(a[b]=c[b])};return a(c,b)};return function(c,b){function e(){this.constructor=c}a(c,b);c.prototype=null===b?Object.create(b):(e.prototype=b.prototype,new e)}}(),n=d.seriesTypes.sma,q=f.extend,l=f.merge,e=f.error,b=f.isArray;f=function(a){function c(){var c=null!==a&&a.apply(this,arguments)|| this;c.data=void 0;c.options=void 0;c.points=void 0;return c}m(c,a);c.prototype.getValues=function(a,c){var k=c.period,f=a.xData,d=a.yData,l=d?d.length:0,y=c.decimals,p=1,w=a.chart.get(c.volumeSeriesID),r=w&&w.yData,m=[],q=[],n=[],x=[],z=[];if(!w)e("Series "+c.volumeSeriesID+" not found! Check `volumeSeriesID`.",!0,a.chart);else if(!(f.length<=k)&&b(d[0])&&4===d[0].length&&r){for(a=h(d[p]);p<k+1;)c=a,a=h(d[p]),c=a>=c,w=a*r[p],x.push(c?w:0),z.push(c?0:w),p++;for(k=p-1;k<l;k++)k>p-1&&(x.shift(),z.shift(), c=a,a=h(d[k]),c=a>c,w=a*r[k],x.push(c?w:0),z.push(c?0:w)),c=g(z),w=g(x),c=w/c,c=parseFloat((100-100/(1+c)).toFixed(y)),m.push([f[k],c]),q.push(f[k]),n.push(c);return{values:m,xData:q,yData:n}}};c.defaultOptions=l(n.defaultOptions,{params:{period:14,volumeSeriesID:"volume",decimals:4}});return c}(n);q(f.prototype,{nameBase:"Money Flow Index"});d.registerSeriesType("mfi",f);"";return f});t(d,"Stock/Indicators/Momentum/MomentumIndicator.js",[d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]], function(d,f){function g(e,b,a,c,k){a=a[c-1][3]-a[c-k-1][3];b=b[c-1];e.shift();return[b,a]}var h=this&&this.__extends||function(){var e=function(b,a){e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])};return e(b,a)};return function(b,a){function c(){this.constructor=b}e(b,a);b.prototype=null===a?Object.create(a):(c.prototype=a.prototype,new c)}}(),m=d.seriesTypes.sma,n=f.extend,q=f.isArray,l=f.merge; f=function(e){function b(){var a=null!==e&&e.apply(this,arguments)||this;a.data=void 0;a.options=void 0;a.points=void 0;return a}h(b,e);b.prototype.getValues=function(a,c){c=c.period;var b=a.xData,e=(a=a.yData)?a.length:0,f=b[0],d=[],l=[],h=[];if(!(b.length<=c)&&q(a[0])){var u=a[0][3];u=[[f,u]];for(f=c+1;f<e;f++){var p=g(u,b,a,f,c,void 0);d.push(p);l.push(p[0]);h.push(p[1])}p=g(u,b,a,f,c,void 0);d.push(p);l.push(p[0]);h.push(p[1]);return{values:d,xData:l,yData:h}}};b.defaultOptions=l(m.defaultOptions, {params:{period:14}});return b}(m);n(f.prototype,{nameBase:"Momentum"});d.registerSeriesType("momentum",f);"";return f});t(d,"Stock/Indicators/NATR/NATRIndicator.js",[d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f){var g=this&&this.__extends||function(){var f=function(d,e){f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,a){b.__proto__=a}||function(b,a){for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c])};return f(d,e)};return function(d,e){function b(){this.constructor= d}f(d,e);d.prototype=null===e?Object.create(e):(b.prototype=e.prototype,new b)}}(),h=d.seriesTypes.atr,m=f.merge;f=f.extend;var n=function(f){function d(){var e=null!==f&&f.apply(this,arguments)||this;e.data=void 0;e.points=void 0;e.options=void 0;return e}g(d,f);d.prototype.getValues=function(e,b){var a=h.prototype.getValues.apply(this,arguments),c=a.values.length,k=b.period-1,f=e.yData,d=0;if(a){for(;d<c;d++)a.yData[d]=a.values[d][1]/f[k][3]*100,a.values[d][1]=a.yData[d],k++;return a}};d.defaultOptions= m(h.defaultOptions,{tooltip:{valueSuffix:"%"}});return d}(h);f(n.prototype,{requiredIndicators:["atr"]});d.registerSeriesType("natr",n);"";return n});t(d,"Stock/Indicators/PivotPoints/PivotPointsPoint.js",[d["Core/Series/SeriesRegistry.js"]],function(d){function f(f,g){var h=f.series.pointArrayMap,m=h.length;for(d.seriesTypes.sma.prototype.pointClass.prototype[g].call(f);m--;)g="dataLabel"+h[m],f[g]&&f[g].element&&f[g].destroy(),f[g]=null}var g=this&&this.__extends||function(){var f=function(d,g){f= Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,d){f.__proto__=d}||function(f,d){for(var e in d)d.hasOwnProperty(e)&&(f[e]=d[e])};return f(d,g)};return function(d,g){function h(){this.constructor=d}f(d,g);d.prototype=null===g?Object.create(g):(h.prototype=g.prototype,new h)}}();return function(d){function h(){var f=null!==d&&d.apply(this,arguments)||this;f.P=void 0;f.pivotLine=void 0;f.series=void 0;return f}g(h,d);h.prototype.destroyElements=function(){f(this,"destroyElements")}; h.prototype.destroy=function(){f(this,"destroyElements")};return h}(d.seriesTypes.sma.prototype.pointClass)});t(d,"Stock/Indicators/PivotPoints/PivotPointsIndicator.js",[d["Stock/Indicators/PivotPoints/PivotPointsPoint.js"],d["Core/Series/SeriesRegistry.js"],d["Core/Utilities.js"]],function(d,f,g){var h=this&&this.__extends||function(){var b=function(a,c){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var b in c)c.hasOwnProperty(b)&&(a[b]= c[b])};return b(a,c)};return function(a,c){function e(){this.constructor=a}b(a,c);a.prototype=null===c?Object.create(c):(e.prototype=c.prototype,new e)}}(),m=f.seriesTypes.sma,n=g.merge,q=g.extend,l=g.defined,e=g.isArray;g=function(b){function a(){var a=null!==b&&b.apply(this,arguments)||this;a.data=void 0;a.options=void 0;a.points=void 0;a.endPoint=void 0;a.plotEndPoint=void 0;return a}h(a,b);a.prototype.toYData=function(a){return[a.P]};a.prototype.translate=function(){var a=this;f.seriesTypes.sma.prototype.translate.apply(a); a.points.forEach(function(c){a.pointArrayMap.forEach(function(b){l(c[b])&&(c["plot"+b]=a.yAxis.toPixels(c[b],!0))})});a.plotEndPoint=a.