D = 10 ## duration (in years) r_borrow = 0.07 ## cost to borrow money delta_r = -0.005 r = 0.06 ## c = 0.085 ## coupon rate ## Year 1: ## invested = 7.5 borrowed = 12.5 P = invested + borrowed P0 = P delta_P_1 = -D*P*delta_r delta_P_2 = P*c delta_P_3 = -r_borrow * borrowed delta_P = delta_P_1 + delta_P_2 + delta_P_3 RoR = delta_P / invested y_1_results = c(1992, delta_P_1, delta_P_2, delta_P_3, delta_P, RoR) print(y_1_results) r = r + delta_r c = c + delta_r r_borrow = r_borrow + delta_r ## Year 2: ## invested = invested + delta_P P = invested + borrowed delta_P_1 = -D*P*delta_r delta_P_2 = P * c delta_P_3 = -r_borrow * borrowed delta_P = delta_P_1 + delta_P_2 + delta_P_3 RoR = delta_P / invested y_2_results = c(1993, delta_P_1, delta_P_2, delta_P_3, delta_P, RoR) print(y_2_results) r = r + delta_r c = c + delta_r r_borrow = r_borrow + delta_r ## Year 3: ## invested = invested + delta_P P = invested + borrowed delta_P_1 = -D*P*delta_r delta_P_2 = P*c delta_P_3 = -r_borrow * borrowed delta_P = delta_P_1 + delta_P_2 + delta_P_3 RoR = delta_P / invested y_3_results = c(1994, delta_P_1, delta_P_2, delta_P_3, delta_P, RoR) print(y_3_results) r = r + delta_r c = c + delta_r r_borrow = r_borrow + delta_r ## Year 4: ## invested = invested + delta_P P = invested + borrowed delta_P_1 = -D*P*delta_r delta_P_2 = P * c delta_P_3 = -r_borrow * borrowed delta_P = delta_P_1 + delta_P_2 + delta_P_3 RoR = delta_P / invested y_4_results = c(1995, delta_P_1, delta_P_2, delta_P_3, delta_P, RoR) print(y_4_results) ## from this point onwards the rates start going back up: ## delta_r = +0.02 r = r + delta_r c = c + delta_r r_borrow = r_borrow + delta_r ## Year 5: ## invested = invested + delta_P P = invested + borrowed delta_P_1 = -D*P*delta_r delta_P_2 = P * c delta_P_3 = -r_borrow * borrowed delta_P = delta_P_1 + delta_P_2 + delta_P_3 RoR = delta_P / invested y_5_results = c(1996, delta_P_1, delta_P_2, delta_P_3, delta_P, RoR) print(y_5_results) r = r + delta_r c = c + delta_r r_borrow = r_borrow + delta_r ## Year 6: ## invested = invested + delta_P P = invested + borrowed delta_P_1 = -D*P*delta_r delta_P_2 = P * c delta_P_3 = -r_borrow * borrowed delta_P = delta_P_1 + delta_P_2 + delta_P_3 RoR = delta_P / invested y_6_results = c(1997, delta_P_1, delta_P_2, delta_P_3, delta_P, RoR) r = r + delta_r c = c + delta_r r_borrow = r_borrow + delta_r DF = data.frame( rbind( y_1_results, y_2_results, y_3_results, y_4_results, y_5_results, y_6_results )) colnames(DF) = c('year', 'deltaP1', 'deltaP2', 'deltaP3', 'deltaP', 'RoR') rownames(DF) = NULL print(DF) ## At the start of year 7: ## invested = invested + delta_P P = invested + borrowed print(sprintf('Start of year 7 porfolio value= %f; net gain= %f', P, P-P0))