lodash.js fiddle
Added lodash from cdnjs.com in order to have lodash capabilities in chrome.
by shiv_veerashetty
HTML
<script src="https://unpkg.com/dayjs-ext/dayjs.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>
JavaScript
const getDatesBetween = (startDate, endDate) => {
const dates = [];
let currentDate = dayjs(startDate);
while (currentDate.isBefore(endDate) || currentDate.isSame(endDate, 'day')) {
dates.push(currentDate.format('YYYY-MM-DD'));
currentDate = currentDate.add(1, 'day');
}
return dates;
}
const datesBetween = getDatesBetween('2024-04-01', '2024-05-05');
const noOfDays = datesBetween.length
console.log('noOfDays :: ', noOfDays)
if (noOfDays > 1) {
const numberOfParallelBacktestOptions = _.range(2, _.min([noOfDays+1, 21]), 1)
console.log(`[] Split into --${numberOfParallelBacktestOptions}-- parallel BackTest`)
_.each(numberOfParallelBacktestOptions, (numberOfParallelBacktests) => {
const chunks = _.chunk(datesBetween, Math.ceil(noOfDays/numberOfParallelBacktests));
console.log(`If ${numberOfParallelBacktests} selected, ${chunks.length} Backtests will be created`)
_.each(chunks, (chunk)=>{
console.log(`\t\tRun backtest from ${_.head(chunk)} to ${_.last(chunk)}`)
})
})
} else {
console.log("Run in one shot. As usual. Don't show check box")
}