164 {
167 } else {
168 LOG(
"Asking portfolio for its required fixings");
170 std::map<std::pair<std::string, QuantLib::Date>, std::set<QuantLib::Date>> lastAvailableFixingLookupMap;
171
172
174 portfolioFixings =
inputs_->portfolio()->fixings();
175 LOG(
"The portfolio depends on fixings from " << portfolioFixings.size() <<
" indices");
176 for (const auto& it : portfolioFixings)
178 }
179
180 LOG(
"Add fixings possibly required for bootstrapping TodaysMarket");
181 for (const auto& tmp : todaysMarketParameters) {
182 for (const auto d : loaderDates)
184 LOG(
"Add fixing possibly required for equity index delta risk decomposition")
186 inputs_->curveConfigs().get());
187 }
188
189 if (
inputs_->eomInflationFixings()) {
190 LOG(
"Adjust inflation fixing dates to the end of the month before the request");
192 }
193
196
197
199
200
201 for (
const auto& [indexName, fixingDates] :
fixings_) {
202 for (const auto& [d, mandatory] :fixingDates) {
203 if (mandatory && !
loader_->hasFixing(indexName, d)) {
204 string fixingErr = "";
207 try {
208 if(fxInd->fixingCalendar().isBusinessDay(d))
209 fxInd->fixing(d);
210 break;
211 } catch (const std::exception& e) {
213 }
214 }
215 StructuredFixingWarningMessage(indexName, d, "Missing fixing", "Could not find required fixing ID.")
216 .log();
217 }
218 }
219 }
220 }
221}
virtual void addRelevantFixings(const std::pair< std::string, RequiredFixings::FixingDates > &fixing, std::map< std::pair< std::string, QuantLib::Date >, std::set< QuantLib::Date > > &lastAvailableFixingLookupMap)
QuantLib::ext::shared_ptr< FxIndex > parseFxIndex(const string &s, const Handle< Quote > &fxSpot=Handle< Quote >(), const Handle< YieldTermStructure > &sourceYts=Handle< YieldTermStructure >(), const Handle< YieldTermStructure > &targetYts=Handle< YieldTermStructure >(), const bool useConventions=false)
std::map< std::string, RequiredFixings::FixingDates > FixingMap
void additional_equity_fixings(map< string, RequiredFixings::FixingDates > &fixings, const TodaysMarketParameters &mktParams, const QuantLib::ext::shared_ptr< ReferenceDataManager > refData, const QuantLib::ext::shared_ptr< CurveConfigurations > &curveConfigs)
bool isFxIndex(const std::string &indexName)
void amendInflationFixingDates(std::map< std::string, RequiredFixings::FixingDates > &fixings)
void addMarketFixingDates(const Date &asof, map< string, RequiredFixings::FixingDates > &fixings, const TodaysMarketParameters &mktParams, const Period &iborLookback, const Period &oisLookback, const Period &bmaLookback, const Period &inflationLookback)
std::string to_string(const LocationInfo &l)