Highcharts Stock Demo
author(s): Pawel fus
by joplomacedo
HTML
<script src="https://code.highcharts.com/stock/highstock.js"></script>
<script src="https://code.highcharts.com/stock/modules/data.js"></script>
<script src="https://code.highcharts.com/stock/modules/exporting.js"></script>
<script src="https://code.highcharts.com/stock/indicators/indicators.js"></script>
<div id="container" style="height: 400px; min-width: 310px"></div>
JavaScript
const getSliceValue = (() => {
const today = new Date();
const todaysMonth = today.getMonth();
const todaysYear = today.getFullYear();
const monthAndYearToSliceSet = {};
for (let i = 0; i < 24; i++) {
const m = new Date(today.setMonth(todaysMonth - i)).getMonth();
const y = i < 12 ? todaysYear : todaysYear - 1
monthAndYearToSliceSet[`${m}:${y}`] = `month${(i+1)%12}year${ Math.floor(i/12)+1 }`;
console.log(`${m}:${y}`, `month${(i+1)%12}year${ Math.floor(i/12)+1 }`);
}
console.log(monthAndYearToSliceSet)
return function({
endDate,
interval,
totalBars
}) {
const prevDate = new Date(endDate.getTime());
prevDate.setDate(endDate.getDate() - 1);
// endDate - min from totalMins until trading hours close (actually open). continue from next trading huors open (actually close - remember wer're looping backwards)
const dates = [
endDate,
prevDate
]
return new Set(...dates.map(date => {
const endDateMonth = date.getMonth();
const endDateYear = date.getFullYear();
return monthToSliceValMap[`${endDateMonth}:${endDateYear}`] || null;
}))
}
})()