new_appl_data = {
let new_data = [shifted_appl_data[0]];
for (let i = 1; i < shifted_appl_data.length; i++) {
let d1 = new_data.slice(-1)[0];
let v1 = d1.value;
let d2 = shifted_appl_data[i];
let v2 = d2.value;
if (v1 * v2 < 0) {
let t1 = d1.Date.getTime();
let t2 = d2.Date.getTime();
let t = new Date((t2 * v1 - t1 * v2) / (v1 - v2));
new_data.push({ Date: t, value: 0 });
}
new_data.push(shifted_appl_data[i]);
}
return new_data;
}