UNPKG

highcharts

Version:
14 lines 3.73 kB
/** * Highstock JS v13.0.1 (2026-08-17) * @module highcharts/indicators/pivot-points * @requires highcharts * @requires highcharts/modules/stock * * Indicator series type for Highcharts Stock * * (c) 2010-2026 Highsoft AS * Author: Paweł Fus * * A commercial license may be required depending on use, * see www.highcharts.com/license */import*as e from"../highcharts.js";let t={};t.n=e=>{let a=e&&e.__esModule?()=>e.default:()=>e;return t.d(a,{a:a}),a},t.d=(e,a)=>{if(Array.isArray(a))for(var l=0;l<a.length;){var r=a[l++],n=a[l++];t.o(e,r)?0===n&&l++:0===n?Object.defineProperty(e,r,{enumerable:!0,value:a[l++]}):Object.defineProperty(e,r,{enumerable:!0,get:n})}else for(var r in a)t.o(a,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},t.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let a=e.default;var l=t.n(a);let r=e.default.SeriesRegistry;var n=t.n(r);let o=n().seriesTypes.sma.prototype.pointClass;function s(e,t){let a=e.series.pointArrayMap,l,r=a.length;for(n().seriesTypes.sma.prototype.pointClass.prototype[t].call(e);r--;)e[l="dataLabel"+a[r]]&&e[l].element&&e[l].destroy(),e[l]=null}let{sma:i}=n().seriesTypes;class p extends i{toYData(e){return[e.P]}translate(){let e=this;super.translate.apply(e),e.points.forEach(function(t){e.pointArrayMap.forEach(function(l){(0,a.defined)(t[l])&&(t["plot"+l]=e.yAxis.toPixels(t[l],!0))})}),e.plotEndPoint=e.xAxis.toPixels(e.endPoint,!0)}getGraphPath(e){let t=this,l=[[],[],[],[],[],[],[],[],[]],r=t.pointArrayMap.length,n=t.plotEndPoint,o=[],s,i,p=e.length,d;for(;p--;){for(d=0,i=e[p];d<r;d++)s=t.pointArrayMap[d],(0,a.defined)(i[s])&&l[d].push({plotX:i.plotX,plotY:i["plot"+s],isNull:!1},{plotX:n,plotY:i["plot"+s],isNull:!1},{plotX:n,plotY:null,isNull:!0});n=i.plotX}return l.forEach(e=>{o=o.concat(super.getGraphPath.call(t,e))}),o}drawDataLabels(){let e,t,a,l,r=this,n=r.pointArrayMap;r.options.dataLabels.enabled&&(t=r.points.length,n.concat([!1]).forEach((o,s)=>{for(l=t;l--;)a=r.points[l],o?(a.y=a[o],a.pivotLine=o,a.plotY=a["plot"+o],e=a["dataLabel"+o],s&&(a["dataLabel"+n[s-1]]=a.dataLabel),a.dataLabels||(a.dataLabels=[]),a.dataLabels[0]=a.dataLabel=e=e&&e.element?e:null):a["dataLabel"+n[s-1]]=a.dataLabel;super.drawDataLabels.call(r)}))}getValues(e,t){let l,r,n,o,s,i,p,d=t.period,u=e.xData,c=e.yData,h=c?c.length:0,y=this[t.algorithm+"Placement"],f=[],m=[],b=[];if(!(u.length<d)&&(0,a.isArray)(c[0])&&4===c[0].length){for(p=d+1;p<=h+d;p+=d)n=u.slice(p-d-1,p),o=c.slice(p-d-1,p),r=n.length,l=n[r-1],i=y(this.getPivotAndHLC(o)),s=f.push([l].concat(i)),m.push(l),b.push(f[s-1].slice(1));return this.endPoint=n[0]+(l-n[0])/r*d,{values:f,xData:m,yData:b}}}getPivotAndHLC(e){let t=e[e.length-1][3],a=-1/0,l=1/0;return e.forEach(function(e){a=Math.max(a,e[1]),l=Math.min(l,e[2])}),[(a+l+t)/3,a,l,t]}standardPlacement(e){let t=e[1]-e[2];return[null,null,e[0]+t,2*e[0]-e[2],e[0],2*e[0]-e[1],e[0]-t,null,null]}camarillaPlacement(e){let t=e[1]-e[2];return[e[3]+1.5*t,e[3]+1.25*t,e[3]+1.1666*t,e[3]+1.0833*t,e[0],e[3]-1.0833*t,e[3]-1.1666*t,e[3]-1.25*t,e[3]-1.5*t]}fibonacciPlacement(e){let t=e[1]-e[2];return[null,e[0]+t,e[0]+.618*t,e[0]+.382*t,e[0],e[0]-.382*t,e[0]-.618*t,e[0]-t,null]}}p.defaultOptions=(0,a.merge)(i.defaultOptions,{params:{index:void 0,period:28,algorithm:"standard"},marker:{enabled:!1},enableMouseTracking:!1,dataLabels:{enabled:!0,format:"{point.pivotLine}"},dataGrouping:{approximation:"averages"}}),(0,a.extend)(p.prototype,{nameBase:"Pivot Points",pointArrayMap:["R4","R3","R2","R1","P","S1","S2","S3","S4"],pointValKey:"P",pointClass:class extends o{destroyElements(){s(this,"destroyElements")}destroy(){s(this,"destroyElements")}}}),n().registerSeriesType("pivotpoints",p);let d=l();export{d as default};