Share Brilliantly
fixed income analytics
let sr = await import('/lib/finance/tree-models/binomial/v1.0.0/short-rate.mjs');
let discounts = [1/1.035,100/108];
let tree = sr.calibrate(0.1, discounts);
let boundary = [...tree[tree.length-1].map(p=>({value:100})),{value:100}];
tree.push(boundary);
for(let i=tree.length-2;i>=0;i--){
tree[i].forEach((p,j)=>{
p.value = 0.5*(tree[i+1][j].value * (1/(1+p.rate)) + tree[i+1][j+1].value* (1/(1+p.rate)))
});
}
let sr = await import('/lib/finance/tree-models/binomial/v1.0.0/short-rate.mjs');
let discounts = [1/1.035,100/108];
let tree = sr.calibrate(0.1, discounts);
let boundary = [...tree[tree.length-1].map(p=>({value:100})),{value:100}];
tree.push(boundary);
for(let i=tree.length-2;i>=0;i--){
tree[i].forEach((p,j)=>{
let value = 0.5*(tree[i+1][j].value * (1/(1+p.rate)) + tree[i+1][j+1].value* (1/(1+p.rate)))
if(value > 95) p.value = 95;
else p.value = 95;
});
}
Try it!