!/**
 * Highstock JS v13.0.0 (2026-06-11)
 * @module highcharts/indicators/indicators
 * @requires highcharts
 * @requires highcharts/modules/stock
 *
 * Indicator series type for Highcharts Stock
 *
 * (c) 2010-2026 Highsoft AS
 * Author: Paweł Fus, Sebastian Bochan
 *
 * A commercial license may be required depending on use,
 * see www.highcharts.com/license
 */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Chart,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/indicators",["highcharts/highcharts"],function(t){return e(t,t.Chart,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/indicators"]=e(t._Highcharts,t._Highcharts.Chart,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.Chart,t.Highcharts.SeriesRegistry)}("u"<typeof window?this:window,function(t,e,n){return function(){"use strict";var r,i,o,a={512:function(t){t.exports=n},944:function(e){e.exports=t},960:function(t){t.exports=e}},s={};function u(t){var e=s[t];if(void 0!==e)return e.exports;var n=s[t]={exports:{}};return a[t](n,n.exports,u),n.exports}u.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return u.d(e,{a:e}),e},u.d=function(t,e){for(var n in e)u.o(e,n)&&!u.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},u.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};var l={};u.d(l,{default:function(){return M}});var p=u(944),c=u.n(p),h=u(960),f=u.n(h),d=function(t,e,n){if(n||2==arguments.length)for(var r,i=0,o=e.length;i<o;i++)!r&&i in e||(r||(r=Array.prototype.slice.call(e,0,i)),r[i]=e[i]);return t.concat(r||Array.prototype.slice.call(e))},y=function(t,e,n,r,i){if(void 0===i&&(i=[]),Array.isArray(t))return Array.isArray(i)||(i=Array.from(i)),{removed:t.splice.apply(t,d([e,n],i,!1)),array:t};var o=Object.getPrototypeOf(t).constructor,a=t[r?"subarray":"slice"](e,e+n),s=new o(t.length-n+i.length);return s.set(t.subarray(0,e),0),s.set(i,e),s.set(t.subarray(e+n),e+i.length),{removed:a,array:s}},v=function(){function t(t){void 0===t&&(t={});var e=this;this.isDataTable=!0,this.autoId=!t.id,this.columns={},this.id=t.id||(0,p.uniqueKey)(),this.rowCount=0,this.versionTag=(0,p.uniqueKey)();var n=0;(0,p.objectEach)(t.columns||{},function(t,r){e.columns[r]=t.slice(),n=Math.max(n,t.length)}),this.applyRowCount(n)}return t.prototype.applyRowCount=function(t){var e=this;this.rowCount=t,(0,p.objectEach)(this.columns,function(n,r){var i,o;n.length!==t&&(e.columns[r]=(i=n,o=t,Array.isArray(i)?(i.length=o,i):i.slice(0,o)))})},t.prototype.deleteRows=function(t,e){var n=this;if(void 0===e&&(e=1),e>0&&t<this.rowCount){var r=0;(0,p.objectEach)(this.columns,function(i,o){n.columns[o]=y(i,t,e).array,r=i.length}),this.rowCount=r}(0,p.fireEvent)(this,"afterDeleteRows",{rowIndex:t,rowCount:e}),this.versionTag=(0,p.uniqueKey)()},t.prototype.getColumn=function(t,e){return this.columns[t]},t.prototype.getColumns=function(t,e){var n=this;return(t||Object.keys(this.columns)).reduce(function(t,e){return t[e]=n.columns[e],t},{})},t.prototype.getRowObject=function(t,e){var n,r={},i=this.columns;null!=e||(e=Object.keys(this.columns));for(var o=0,a=e;o<a.length;o++){var s=a[o];r[s]=null==(n=i[s])?void 0:n[t]}return r},t.prototype.setColumn=function(t,e,n,r){var i;void 0===e&&(e=[]),void 0===n&&(n=0),this.setColumns(((i={})[t]=e,i),n,r)},t.prototype.setColumns=function(t,e,n){var r=this,i=this.rowCount;(0,p.objectEach)(t,function(t,e){r.columns[e]=t.slice(),i=t.length}),this.applyRowCount(i),(null==n?void 0:n.silent)||((0,p.fireEvent)(this,"afterSetColumns"),this.versionTag=(0,p.uniqueKey)())},t.prototype.setRow=function(t,e,n,r){void 0===e&&(e=this.rowCount);var i,o=this.columns,a=n?this.rowCount+1:e+1,s=Object.keys(t);if((null==r?void 0:r.addColumns)!==!1)for(var u=0,l=s.length;u<l;u++)o[i=s[u]]||(o[i]=Array(this.rowCount));(0,p.objectEach)(o,function(r,i){r&&(n?r=y(r,e,0,!0,[t[i]]).array:r[e]=i in t?t[i]:r[e],o[i]=r)}),this.applyRowCount(Math.max(a,this.rowCount)),(null==r?void 0:r.silent)||((0,p.fireEvent)(this,"afterSetRows",{rowIndex:e}),this.versionTag=(0,p.uniqueKey)())},t.prototype.getModified=function(){return this.modified||this},t}(),m=u(512),g=u.n(m),x=(r=function(t,e){return(r=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)},function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),C=function(){return(C=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var i in e=arguments[n])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t}).apply(this,arguments)},D=g().seriesTypes.line,b=function(t,e){var n=[],r=t.pointArrayMap,i=e&&t.dataTable.getModified()||t.dataTable;if(!r)return t.getColumn("y",e);for(var o=r.map(function(n){return t.getColumn(n,e)}),a=function(t){var e=r.map(function(e,n){var r;return(null==(r=o[n])?void 0:r[t])||0});n.push(e)},s=0;s<i.rowCount;s++)a(s);return n},w=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return x(e,t),e.prototype.destroy=function(){this.dataEventsToUnbind.forEach(function(t){t()}),t.prototype.destroy.apply(this,arguments)},e.prototype.getName=function(){var t=[],e=this.name;return e||((this.nameComponents||[]).forEach(function(e,n){t.push(this.options.params[e]+(0,p.pick)(this.nameSuffixes[n],""))},this),e=(this.nameBase||this.type.toUpperCase())+(this.nameComponents?" ("+t.join(", ")+")":"")),e},e.prototype.getValues=function(t,e){var n,r,i=e.period,o=t.xData||[],a=t.yData,s=a.length,u=[],l=[],c=[],h=-1,f=0,d=0;if(!(o.length<i)){for((0,p.isArray)(a[0])&&(h=e.index?e.index:0);f<i-1;)d+=h<0?a[f]:a[f][h],f++;for(n=f;n<s;n++)d+=h<0?a[n]:a[n][h],r=[o[n],d/i],u.push(r),l.push(r[0]),c.push(r[1]),d-=h<0?a[n-f]:a[n-f][h];return{values:u,xData:l,yData:c}}},e.prototype.init=function(e,n){var r=this;t.prototype.init.call(r,e,n);var i=(0,p.addEvent)(f(),"afterLinkSeries",function(t){if(!t.isUpdating){var n=!!r.dataEventsToUnbind.length;if(!r.linkedParent)return(0,p.error)("Series "+r.options.linkedTo+" not found! Check `linkedTo`.",!1,e);if(!n&&(r.dataEventsToUnbind.push((0,p.addEvent)(r.linkedParent,"updatedData",function(){r.recalculateValues()})),r.calculateOn.xAxis&&r.dataEventsToUnbind.push((0,p.addEvent)(r.linkedParent.xAxis,r.calculateOn.xAxis,function(){r.recalculateValues()}))),"init"===r.calculateOn.chart)r.closestPointRange||r.recalculateValues();else if(!n)var i=(0,p.addEvent)(r.chart,r.calculateOn.chart,function(){r.recalculateValues(),i()})}},{order:0});r.dataEventsToUnbind=[],r.eventsToUnbind.push(i)},e.prototype.recalculateValues=function(){var t,e,n=this.dataTable,r=this.dataTable.rowCount,i=!0,o=this.linkedParent.yData,a=this.linkedParent.processedYData;this.linkedParent.xData=this.linkedParent.getColumn("x"),this.linkedParent.yData=b(this.linkedParent),this.linkedParent.processedYData=b(this.linkedParent,!0);var s=this.linkedParent.options&&this.linkedParent.dataTable.rowCount&&this.getValues(this.linkedParent,this.options.params)||{values:[],xData:[],yData:[]};s.xData.length=s.values.length,delete this.linkedParent.xData,this.linkedParent.yData=o,this.linkedParent.processedYData=a;var u=this.pointArrayMap||["y"],l={};if(s.yData.forEach(function(t){u.forEach(function(e,n){var r=l[e]||[];r.push((0,p.isArray)(t)?t[n]:t),l[e]||(l[e]=r)})}),r&&!this.hasGroupedData&&this.visible&&this.points)if(this.cropped){this.xAxis&&(t=this.xAxis.min,e=this.xAxis.max);var c=this.cropData(n,t,e);this.setData(c.modified,!1)}else(this.updateAllPoints||s.xData.length!==r-1&&s.xData.length!==r+1)&&(i=!1,this.setData(new v({columns:C({x:s.xData},l)}),!1));i&&(l.x=s.xData,s.values.reduce(function(t,e,n){return Object.keys(e).forEach(function(r){t[r]||(t[r]=[]),t[r][n]=e[r]}),t},l),n.setColumns(l),delete this.xColumn,delete this.xColumnIsNumbers),this.calculateOn.xAxis&&this.getColumn("x",!0).length&&(this.isDirty=!0,this.redraw()),this.isDirtyData=!!this.linkedSeries.length,(0,p.fireEvent)(this,"updatedData")},e.prototype.processData=function(){var e=this.options.compareToMain,n=this.linkedParent;t.prototype.processData.apply(this,arguments),this.dataModify&&n&&n.dataModify&&n.dataModify.compareValue&&e&&(this.dataModify.compareValue=n.dataModify.compareValue)},e.defaultOptions=(0,p.merge)(D.defaultOptions,{name:void 0,tooltip:{valueDecimals:4},linkedTo:void 0,compareToMain:!1,params:{index:3,period:14}}),e}(D);(0,p.extend)(w.prototype,{calculateOn:{chart:"init"},hasDerivedData:!0,nameComponents:["period"],nameSuffixes:[],useCommonDataGrouping:!0}),g().registerSeriesType("sma",w);var P=(i=function(t,e){return(i=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(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 n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),A=g().seriesTypes.sma,O=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return P(e,t),e.prototype.accumulatePeriodPoints=function(t,e,n){for(var r=0,i=0,o=0;i<t;)r+=e<0?n[i]:n[i][e],i++;return r},e.prototype.calculateEma=function(t,e,n,r,i,o,a){var s=t[n-1],u=o<0?e[n-1]:e[n-1][o];return[s,void 0===i?a:(0,p.correctFloat)(u*r+i*(1-r))]},e.prototype.getValues=function(t,e){var n,r,i,o=e.period,a=t.xData,s=t.yData,u=s?s.length:0,l=2/(o+1),c=[],h=[],f=[],d=-1,y=0;if(!(u<o)){for((0,p.isArray)(s[0])&&(d=e.index?e.index:0),y=this.accumulatePeriodPoints(o,d,s)/o,i=o;i<u+1;i++)r=this.calculateEma(a,s,i,l,n,d,y),c.push(r),h.push(r[0]),f.push(r[1]),n=r[1];return{values:c,xData:h,yData:f}}},e.defaultOptions=(0,p.merge)(A.defaultOptions,{params:{index:3,period:9}}),e}(A);g().registerSeriesType("ema",O);var E=g().seriesTypes.sma.prototype;!function(t){var e=["bottomLine"],n=["top","bottom"],r=["top"];function i(t){return"plot"+t.charAt(0).toUpperCase()+t.slice(1)}function o(t,e){var n=[];return(t.pointArrayMap||[]).forEach(function(t){t!==e&&n.push(i(t))}),n}function a(){var t,e=this,n=e.pointValKey,r=e.linesApiNames,a=e.areaLinesNames,s=e.points,u=e.options,l=e.graph,c={options:{gapSize:u.gapSize}},h=[],f=o(e,n),d=s.length;if(f.forEach(function(e,n){for(h[n]=[];d--;)t=s[d],h[n].push({x:t.x,plotX:t.plotX,plotY:t[e],isNull:!(0,p.defined)(t[e])});d=s.length}),e.userOptions.fillColor&&a.length){var y=h[f.indexOf(i(a[0]))],v=1===a.length?s:h[f.indexOf(i(a[1]))],m=e.color;e.points=v,e.nextPoints=y,e.color=e.userOptions.fillColor,e.options=(0,p.merge)(s,c),e.graph=e.area,e.fillGraph=!0,E.drawGraph.call(e),e.area=e.graph,delete e.nextPoints,delete e.fillGraph,e.color=m}r.forEach(function(t,n){h[n]?(e.points=h[n],u[t]?e.options=(0,p.merge)(u[t].styles,c):(0,p.error)('Error: "There is no '+t+' in DOCS options declared. Check if linesApiNames are consistent with your DOCS line names."'),e.graph=e["graph"+t],E.drawGraph.call(e),e["graph"+t]=e.graph):(0,p.error)('Error: "'+t+" doesn't have equivalent in pointArrayMap. To many elements in linesApiNames relative to pointArrayMap.\"")}),e.points=s,e.options=u,e.graph=l,E.drawGraph.call(e)}function s(t){var e,n=[],r=[];if(t=t||this.points,this.fillGraph&&this.nextPoints){if((e=E.getGraphPath.call(this,this.nextPoints))&&e.length){e[0][0]="L",n=E.getGraphPath.call(this,t),r=e.slice(0,n.length);for(var i=r.length-1;i>=0;i--)n.push(r[i])}}else n=E.getGraphPath.apply(this,arguments);return n}function u(t){var e=[];return(this.pointArrayMap||[]).forEach(function(n){e.push(t[n])}),e}function l(){var t,e=this,n=this.pointArrayMap,r=[];r=o(this),E.translate.apply(this,arguments),this.points.forEach(function(i){n.forEach(function(n,o){t=i[n],e.dataModify&&(t=e.dataModify.modifyValue(t)),null!==t&&(i[r[o]]=e.yAxis.toPixels(t,!0))})})}t.compose=function(t){var i=t.prototype;return i.linesApiNames=i.linesApiNames||e.slice(),i.pointArrayMap=i.pointArrayMap||n.slice(),i.pointValKey=i.pointValKey||"top",i.areaLinesNames=i.areaLinesNames||r.slice(),i.drawGraph=a,i.getGraphPath=s,i.toYData=u,i.translate=l,t}}(o||(o={}));var k=o,T=c();T.MultipleLinesComposition=T.MultipleLinesComposition||k;var M=c();return l.default}()});