Skip to content

Commit b111938

Browse files
author
Raphael Prandtl
committed
Adding missing EURIBOR 6M Fixing.
1 parent 0dbeef3 commit b111938

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

src/main/java/net/finmath/smartcontract/valuation/oracle/interestrates/ValuationOraclePlainSwap.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
import java.math.RoundingMode;
1818
import java.time.LocalDate;
1919
import java.time.LocalDateTime;
20+
import java.time.LocalTime;
2021
import java.util.List;
22+
import java.util.ArrayList;
2123
import java.util.Map;
2224
import java.util.Optional;
2325
import java.util.stream.Collectors;
@@ -104,9 +106,10 @@ private AnalyticModel getCalibratedModel(CalibrationDataset calibrationDataset,
104106
final CalibrationParserDataItems parser = new CalibrationParserDataItems();
105107
try {
106108
final Stream<CalibrationSpecProvider> calibrationItems = calibrationDataset.getDataAsCalibrationDataPointStream(parser);
107-
List<CalibrationDataItem> fixings = calibrationDataset.getDataPoints().stream().filter(
108-
cdi -> cdi.getSpec().getProductName().equals(FIXING)).toList();
109-
109+
List<CalibrationDataItem> fixings = calibrationDataset.getDataPoints().stream()
110+
.filter(cdi -> cdi.getSpec().getProductName().equals(FIXING))
111+
.collect(Collectors.toCollection(ArrayList::new));
112+
fixings.add(addMissingFixing());
110113
Calibrator calibrator = new Calibrator(fixings, new CalibrationContextImpl(marketDataTime, 1E-9));
111114
final Optional<CalibrationResult> optionalCalibrationResult = calibrator.calibrateModel(calibrationItems, new CalibrationContextImpl(marketDataTime, 1E-9));
112115

@@ -117,6 +120,17 @@ private AnalyticModel getCalibratedModel(CalibrationDataset calibrationDataset,
117120
}
118121
}
119122

123+
/*
124+
<item>
125+
<id>EURIBOR6MD=</id>
126+
<value>0.02146</value>
127+
<timeStamp>20251113-140046</timeStamp>
128+
</item>
129+
*/
130+
private CalibrationDataItem addMissingFixing() {
131+
CalibrationDataItem.Spec missingFixingSpec = new CalibrationDataItem.Spec("EURIBOR6MD=", "Euribor6M", "Fixing", "6M");
132+
return new CalibrationDataItem(missingFixingSpec, 0.02146, LocalDateTime.of(LocalDate.of(2025,11,13), LocalTime.of(14, 00, 46)));
133+
}
120134

121135
// Search for the nearest ESTR fixing and add it to the calibration items as 1-day discount rate proxy
122136
private void addOvernightDepositRate(CalibrationDataset calibrationDataset) {

0 commit comments

Comments
 (0)