최대한 간단하게 구성하여 보았다.
우선 데이터 2개만을 받아서 처리한다음에 출력하도록 임시로 페이지를 구성했다.
@PostMapping("")
public String indexPost(@RequestParam HashMap<String, String> params, Model model) {
System.out.println(params);
List<Double> weights = new ArrayList<>();
String stock1 = params.get("input1");
String stock2 = params.get("input3");
List<Double> stock1RorList = RorCalculator.getRorList(stockPriceService.getPricesByItmsNmAndYear(stock1,2023), true);
List<Double> stock2RorList = RorCalculator.getRorList(stockPriceService.getPricesByItmsNmAndYear(stock2,2023), true);
weights.add(Double.parseDouble(params.get("input2")));
weights.add(Double.parseDouble(params.get("input4")));
List<Double> portfolioRorList = new ArrayList<>();
for(int i = 0; i < stock1RorList.size(); i++){
portfolioRorList.add(stock1RorList.get(i) * weights.get(0) + stock2RorList.get(i) * weights.get(1));
}
model.addAttribute("portfolioRorList", portfolioRorList);
return "backtest_portfolio";
}
param을 받아서 23년도의 달마다 수익률을 계산하여 출력해 보았다.