highcharts
Version:
JavaScript charting framework
14 lines • 3.24 kB
JavaScript
!/**
* Highstock JS v13.0.1 (2026-08-17)
* @module highcharts/indicators/chaikin
* @requires highcharts
* @requires highcharts/modules/stock
*
* Indicator series type for Highcharts Stock
*
* (c) 2010-2026 Highsoft AS
* Author: Wojciech Chmiel
*
* A commercial license may be required depending on use,
* see www.highcharts.com/license
*/function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/chaikin",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/chaikin"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("u"<typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512(e){e.exports=t},944(t){t.exports=e}};let i={};function s(e){let t=i[e];if(void 0!==t)return t.exports;let o=i[e]={exports:{}};return r[e](o,o.exports,s),o.exports}s.n=e=>{let t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{if(Array.isArray(t))for(var r=0;r<t.length;){var i=t[r++],o=t[r++];s.o(e,i)?0===o&&r++:0===o?Object.defineProperty(e,i,{enumerable:!0,value:t[r++]}):Object.defineProperty(e,i,{enumerable:!0,get:o})}else for(var i in t)s.o(t,i)&&!s.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let o={};s.d(o,{default:()=>g});var a=s(944),n=s.n(a),l=s(512),u=s.n(l);let{sma:p}=u().seriesTypes;class h extends p{static populateAverage(e,t,r,i,s){let o=t[i][1],a=t[i][2],n=t[i][3],l=r[i],u=n===o&&n===a||o===a?0:(2*n-a-o)/(o-a)*l;return[e[i],u]}getValues(e,t){let r,i,s,o=t.period,n=e.xData,l=e.yData,u=t.volumeSeriesID,p=e.chart.get(u),d=p?.getColumn("y"),c=l?l.length:0,g=[],f=[],y=[];if(!(n.length<=o)||!c||4===l[0].length){if(!p)return void(0,a.error)("Series "+u+" not found! Check `volumeSeriesID`.",!0,e.chart);for(i=o;i<c;i++)r=g.length,s=h.populateAverage(n,l,d,i,o),r>0&&(s[1]+=g[r-1][1]),g.push(s),f.push(s[0]),y.push(s[1]);return{values:g,xData:f,yData:y}}}}h.defaultOptions=(0,a.merge)(p.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume"}}),(0,a.extend)(h.prototype,{nameComponents:!1,nameBase:"Accumulation/Distribution"}),u().registerSeriesType("ad",h);let{ema:d}=u().seriesTypes;class c extends d{getValues(e,t){let r,i,s=t.periods,o=t.period,n=[],l=[],u=[];if(2!==s.length||s[1]<=s[0])return void(0,a.error)('Error: "Chaikin requires two periods. Notice, first period should be lower than the second one."');let p=h.prototype.getValues.call(this,e,{volumeSeriesID:t.volumeSeriesID,period:o});if(!p)return;let d=super.getValues.call(this,p,{period:s[0]}),c=super.getValues.call(this,p,{period:s[1]});if(!d||!c)return;let g=s[1]-s[0];for(i=0;i<c.yData.length;i++)r=(0,a.correctFloat)(d.yData[i+g]-c.yData[i]),n.push([c.xData[i],r]),l.push(c.xData[i]),u.push(r);return{values:n,xData:l,yData:u}}}c.defaultOptions=(0,a.merge)(d.defaultOptions,{params:{index:void 0,volumeSeriesID:"volume",period:9,periods:[3,10]}}),(0,a.extend)(c.prototype,{nameBase:"Chaikin Osc",nameComponents:["periods"]}),u().registerSeriesType("chaikin",c);let g=n();return o.default})());