Hello everyone, first time posting here.
We have started testing Strata Opengamma for your future needs and have stumble upon getting different values for same conventions inside Excel and inside Strata. Those two conventions are Act/365 ( for which we are unsure which convention is it inside Strata, we supose its Act/365 Actual, and for Act/360.
For example: having two dates, 1.3.2020. and 1.9.2020.
When we put those two dates into Excel result is: Act/360 = 180 day and Act/365 = 183 days.
When we test those dates with Strata result is: Act/360 = 184 days and Act/365 Actual = 184 days.
Code of java class that calculates that is as follows:
private LocalDate datumDospijecaObveznice;
private LocalDate datumNamireObveznice;
private Map<String, String> listaKonvencija;
private String konvencija;
private int brojDana;
private static Logger log = LoggerFactory.getLogger(VrijednosniPapiriIzracun.class);
@PostConstruct
public void init() {
listaKonvencija = new TreeMap<String, String>();
listaKonvencija.put("Act/360", "ACT_360");
listaKonvencija.put("Act/364", "ACT_364");
listaKonvencija.put("Act/365.25", "ACT_365_25");
listaKonvencija.put("Act/365 Actual", "ACT_365_ACTUAL");
listaKonvencija.put("Act/365F", "ACT_365F");
listaKonvencija.put("Act/365L", "ACT_365L");
listaKonvencija.put("Act/Act AFB", "ACT_ACT_AFB");
listaKonvencija.put("Act/Act ICMA", "ACT_ACT_ICMA");
listaKonvencija.put("Act/Act ISDA", "ACT_ACT_ISDA");
listaKonvencija.put("Act/Act Year", "ACT_ACT_YEAR");
listaKonvencija.put("NL/365", "NL_365");
listaKonvencija.put("1/1", "ONE_ONE");
listaKonvencija.put("30/360 ISDA", "THIRTY_360_ISDA");
listaKonvencija.put("30/360 PSA", "THIRTY_360_PS");
listaKonvencija.put("30E/360", "THIRTY_E_360");
listaKonvencija.put("30E/360 ISDA", "THIRTY_E_360_ISDA");
listaKonvencija.put("30E+/360", "THIRTY_EPLUS_360");
listaKonvencija.put("30U/360", "THIRTY_U_360");
listaKonvencija.put("30U/360 EOM", "THIRTY_U_360_EOM");
}
public void submit() {
brojDana = DayCount.of(konvencija).days(datumDospijecaObveznice, datumNamireObveznice);
log.debug("Računa se broj dana od datuma " + datumDospijecaObveznice + " do datuma " + datumNamireObveznice);
log.debug("Odabrana konvencija je {}", konvencija);
for (String konv : listaKonvencija.keySet()) {
brojDana = DayCount.of(konv).days(datumDospijecaObveznice, datumNamireObveznice);
log.debug("Računa se broj dana od datuma " + datumDospijecaObveznice + " do datuma " + datumNamireObveznice);
log.debug("Konvencija {} {} dana za {} - {}", konv, brojDana, datumDospijecaObveznice, datumNamireObveznice);
}
log.debug("Stvarni broj dana je {}", ChronoUnit.DAYS.between(datumDospijecaObveznice, datumNamireObveznice));
}
When trying other 3 Excel conventions we get same number of days.
My question is where is the problem here and why are those values different?