ExecutionFond#Quantity

This commit is contained in:
ialbert 2023-11-29 19:59:57 +03:00
parent 4e78439e54
commit 3f5fa0433f

View file

@ -229,14 +229,15 @@ public class ExecutionFondComponent {
eFond.setInterestAmount(sTrades.getAccruedint());
eFond.setExchangeOrderId(sTrades.getOrderNum());
if (valuation) {
BigDecimal lots = safeBD(sTrades.getQty());// eFond.getLots
Listing listing = listingImdg.getFirstObjectBySQL("securityId = %d and market = '%s'".formatted(security.getId(), sTrades.getClassCode()));
BigDecimal lotSize = listing != null ? safeBD(listing.getLotSize()) : BigDecimal.ONE;
BigDecimal qty = safeBD(eFond.getLots()).multiply(lotSize);
eFond.setQuantity(qty);
BigDecimal price = safeBD(sTrades.getPrice());// eFond.setPrice
BigDecimal settlementAmount = BigDecimal.ZERO;
if (InstrumentType.BOND.equalsByKey(security.getInstrumentType())) {
FixedIncomeSecurity fixedIncome = (FixedIncomeSecurity) security;
BigDecimal nominalValue;
Listing listing = listingImdg.getFirstObjectBySQL("securityId = %d and market = '%s'".formatted(fixedIncome.getId(), sTrades.getClassCode()));
BigDecimal lotSize = listing != null ? safeBD(listing.getLotSize()) : BigDecimal.ONE;
ImdgPredicateBuilder pb = fixedIncomeCashFlowImdg.predicateBuilder();
ImdgPredicate prdct = pb.and(
pb.equals("securityId", fixedIncome.getId()),
@ -250,7 +251,7 @@ public class ExecutionFondComponent {
nominalValue = safeBD(fixedIncome.getNominalValue());
}
{
settlementAmount = lotSize.multiply(lots)
settlementAmount = eFond.getQuantity()
.multiply(nominalValue)
.multiply(price)
.divide(new BigDecimal(100), RoundingMode.HALF_UP)