22#include <boost/archive/binary_iarchive.hpp>
23#include <boost/archive/binary_oarchive.hpp>
24#include <boost/lexical_cast.hpp>
26using boost::bad_lexical_cast;
27using boost::lexical_cast;
42 return out <<
"BASIS_SPREAD";
44 return out <<
"CREDIT_SPREAD";
46 return out <<
"CONV_CREDIT_SPREAD";
48 return out <<
"YIELD_SPREAD";
52 return out <<
"RATIO";
54 return out <<
"PRICE";
56 return out <<
"RATE_LNVOL";
58 return out <<
"RATE_NVOL";
60 return out <<
"RATE_SLNVOL";
62 return out <<
"BASE_CORRELATION";
64 return out <<
"SHIFT";
66 return out <<
"TRANSITION_PROBABILITY";
79 return out <<
"DISCOUNT";
83 return out <<
"MM_FUTURE";
85 return out <<
"OI_FUTURE";
89 return out <<
"IMM_FRA";
91 return out <<
"IR_SWAP";
93 return out <<
"BASIS_SWAP";
95 return out <<
"BMA_SWAP";
97 return out <<
"CC_BASIS_SWAP";
99 return out <<
"CC_FIX_FLOAT_SWAP";
103 return out <<
"CDS_INDEX";
105 return out <<
"FX_SPOT";
107 return out <<
"FX_FWD";
109 return out <<
"HAZARD_RATE";
111 return out <<
"RECOVERY_RATE";
113 return out <<
"SWAPTION";
115 return out <<
"CAPFLOOR";
117 return out <<
"FX_OPTION";
119 return out <<
"ZC_INFLATIONSWAP";
121 return out <<
"ZC_INFLATIONCAPFLOOR";
123 return out <<
"YY_INFLATIONSWAP";
125 return out <<
"YY_INFLATIONCAPFLOOR";
127 return out <<
"SEASONALITY";
129 return out <<
"EQUITY_SPOT";
131 return out <<
"EQUITY_FWD";
133 return out <<
"EQUITY_DIVIDEND";
135 return out <<
"EQUITY_OPTION";
137 return out <<
"BOND";
139 return out <<
"BOND_OPTION";
141 return out <<
"INDEX_CDS_OPTION";
143 return out <<
"COMMODITY_SPOT";
145 return out <<
"COMMODITY_FWD";
147 return out <<
"CORRELATION";
149 return out <<
"COMMODITY_OPTION";
153 return out <<
"RATING";
155 return out <<
"NONE";
162 string equityName,
string ccy,
string expiry,
163 const QuantLib::ext::shared_ptr<BaseStrike>& strike,
bool isCall)
165 expiry_(expiry), strike_(strike), isCall_(isCall) {
174 QL_REQUIRE(
asofDate <= tmpDate,
"EquityOptionQuote: Invalid EquityOptionQuote, expiry date "
175 << tmpDate <<
" must be after asof date " <<
asofDate);
179 string equityName,
string ccy,
const Date& expiryDate)
181 expiry_(expiryDate) {
183 QL_REQUIRE(
asofDate <=
expiry_,
"EquityForwardQuote: Invalid EquityForwardQuote, expiry date "
188 string equityName,
string ccy,
const Date& tenorDate)
192 QL_REQUIRE(
asofDate <=
tenor_,
"EquityDividendYieldQuote: Invalid EquityForwardQuote, expiry date "
197 const string& indexName,
const QuantLib::ext::shared_ptr<Expiry>& expiry,
198 const string& indexTerm,
const QuantLib::ext::shared_ptr<BaseStrike>& strike)
199 :
MarketDatum(
value, asof,
name, QuoteType::RATE_LNVOL, InstrumentType::INDEX_CDS_OPTION), indexName_(indexName),
200 expiry_(expiry), indexTerm_(indexTerm), strike_(strike) {
202 if (
auto date = QuantLib::ext::dynamic_pointer_cast<ExpiryDate>(expiry))
203 QL_REQUIRE(asof <= date->expiryDate(),
"IndexCDSOptionQuote: Invalid INDEX_CDS_OPTION quote, expiry date "
204 << date->expiryDate() <<
" must be after asof date " << asof);
208 QuoteType quoteType,
const std::string& commodityName,
const std::string& quoteCurrency,
209 const QuantLib::Date& expiryDate)
211 quoteCurrency_(quoteCurrency), expiryDate_(expiryDate), tenorBased_(false) {
213 QL_REQUIRE(
asofDate <=
expiryDate,
"MarketDatumParser: Invalid COMMODITY_FWD quote, expiry date "
219 QuoteType quoteType,
const std::string& commodityName,
const std::string& quoteCurrency,
220 const QuantLib::Period& tenor, boost::optional<QuantLib::Period> startTenor)
222 quoteCurrency_(quoteCurrency), tenor_(tenor), startTenor_(startTenor), tenorBased_(true) {
227Natural yearFromExpiryString(
const std::string& expiry) {
228 QL_REQUIRE(expiry.length() == 7,
"The expiry string must be of "
230 string strExpiryYear = expiry.substr(0, 4);
233 expiryYear = lexical_cast<Natural>(strExpiryYear);
234 }
catch (
const bad_lexical_cast&) {
235 QL_FAIL(
"Could not convert year string, " << strExpiryYear <<
", to number.");
240Month monthFromExpiryString(
const std::string& expiry) {
241 QL_REQUIRE(expiry.length() == 7,
"The expiry string must be of "
243 string strExpiryMonth = expiry.substr(5);
246 expiryMonth = lexical_cast<Natural>(strExpiryMonth);
247 }
catch (
const bad_lexical_cast&) {
248 QL_FAIL(
"Could not convert month string, " << strExpiryMonth <<
", to number.");
250 return static_cast<Month
>(expiryMonth);
263 QL_REQUIRE(
month_.length() == 3,
"The month string must be of "
265 std::vector<std::string> allMonths = {
"JAN",
"FEB",
"MAR",
"APR",
"MAY",
"JUN",
266 "JUL",
"AUG",
"SEP",
"OCT",
"NOV",
"DEC"};
268 auto it = std::find(allMonths.begin(), allMonths.end(),
month_);
269 if (it != allMonths.end()) {
270 applyMonth = std::distance(allMonths.begin(), it) + 1;
272 QL_FAIL(
"Unknown month string: " <<
month_);
278 const string& commodityName,
const string& quoteCurrency,
279 const QuantLib::ext::shared_ptr<Expiry>& expiry,
280 const QuantLib::ext::shared_ptr<BaseStrike>& strike,
281 Option::Type optionType)
282 :
MarketDatum(
value, asof,
name, quoteType, InstrumentType::COMMODITY_OPTION), commodityName_(commodityName),
283 quoteCurrency_(quoteCurrency), expiry_(expiry), strike_(strike), optionType_(optionType) {
285 if (
auto date = QuantLib::ext::dynamic_pointer_cast<ExpiryDate>(expiry))
286 QL_REQUIRE(asof <= date->expiryDate(),
"CommodityOptionQuote: Invalid CommodityOptionQuote, expiry date "
287 << date->expiryDate() <<
" must be after asof date " << asof);
291 const string& index1,
const string& index2,
const string& expiry,
292 const string& strike)
293 :
MarketDatum(
value, asof,
name, quoteType, InstrumentType::CORRELATION), index1_(index1), index2_(index2),
294 expiry_(expiry), strike_(strike) {
297 if (strike !=
"ATM") {
300 "Commodity option quote strike (" << strike_ <<
") must be either ATM or an actual strike price");
310 QL_REQUIRE(asof <= outDate,
"CorrelationQuote: Invalid CorrelationQuote, expiry date "
311 << outDate <<
" must be after asof date " << asof);
317 if (Archive::is_saving::value) {
322 quote_ = Handle<Quote>(QuantLib::ext::make_shared<SimpleQuote>(
value));
331 ar& boost::serialization::base_object<MarketDatum>(*
this);
338 ar& boost::serialization::base_object<MarketDatum>(*
this);
345 ar& boost::serialization::base_object<MarketDatum>(*
this);
352 ar& boost::serialization::base_object<MarketDatum>(*
this);
363 ar& boost::serialization::base_object<MarketDatum>(*
this);
372 ar& boost::serialization::base_object<MarketDatum>(*
this);
379 ar& boost::serialization::base_object<MarketDatum>(*
this);
387 ar& boost::serialization::base_object<MarketDatum>(*
this);
395 ar& boost::serialization::base_object<MarketDatum>(*
this);
403 ar& boost::serialization::base_object<MarketDatum>(*
this);
410 ar& boost::serialization::base_object<MarketDatum>(*
this);
419 ar& boost::serialization::base_object<MarketDatum>(*
this);
428 ar& boost::serialization::base_object<MarketDatum>(*
this);
436 ar& boost::serialization::base_object<MarketDatum>(*
this);
445 ar& boost::serialization::base_object<MarketDatum>(*
this);
453 ar& boost::serialization::base_object<MarketDatum>(*
this);
464 ar& boost::serialization::base_object<MarketDatum>(*
this);
471 ar& boost::serialization::base_object<MarketDatum>(*
this);
478 ar& boost::serialization::base_object<MarketDatum>(*
this);
484 ar& boost::serialization::base_object<MarketDatum>(*
this);
496 ar& boost::serialization::base_object<MarketDatum>(*
this);
503 ar& boost::serialization::base_object<MarketDatum>(*
this);
509 ar& boost::serialization::base_object<MarketDatum>(*
this);
517 ar& boost::serialization::base_object<MarketDatum>(*
this);
525 ar& boost::serialization::base_object<MarketDatum>(*
this);
531 ar& boost::serialization::base_object<MarketDatum>(*
this);
539 ar& boost::serialization::base_object<InflationCapFloorQuote>(*
this);
543 ar& boost::serialization::base_object<MarketDatum>(*
this);
549 ar& boost::serialization::base_object<InflationCapFloorQuote>(*
this);
553 ar& boost::serialization::base_object<MarketDatum>(*
this);
560 ar& boost::serialization::base_object<MarketDatum>(*
this);
566 ar& boost::serialization::base_object<MarketDatum>(*
this);
573 ar& boost::serialization::base_object<MarketDatum>(*
this);
580 ar& boost::serialization::base_object<MarketDatum>(*
this);
589 ar& boost::serialization::base_object<MarketDatum>(*
this);
594 ar& boost::serialization::base_object<MarketDatum>(*
this);
597 ar& detachmentPoint_;
600template <
class Archive>
void IndexCDSOptionQuote::serialize(Archive& ar,
const unsigned int version) {
601 ar& boost::serialization::base_object<MarketDatum>(*
this);
608template <
class Archive>
void CommoditySpotQuote::serialize(Archive& ar,
const unsigned int version) {
609 ar& boost::serialization::base_object<MarketDatum>(*
this);
614template <
class Archive>
void CommodityForwardQuote::serialize(Archive& ar,
const unsigned int version) {
615 ar& boost::serialization::base_object<MarketDatum>(*
this);
624template <
class Archive>
void CommodityOptionQuote::serialize(Archive& ar,
const unsigned int version) {
625 ar& boost::serialization::base_object<MarketDatum>(*
this);
632template <
class Archive>
void CorrelationQuote::serialize(Archive& ar,
const unsigned int version) {
633 ar& boost::serialization::base_object<MarketDatum>(*
this);
640template <
class Archive>
void CPRQuote::serialize(Archive& ar,
const unsigned int version) {
641 ar& boost::serialization::base_object<MarketDatum>(*
this);
645template <
class Archive>
void BondPriceQuote::serialize(Archive& ar,
const unsigned int version) {
646 ar& boost::serialization::base_object<MarketDatum>(*
this);
650template <
class Archive>
void TransitionProbabilityQuote::serialize(Archive& ar,
const unsigned int version) {
651 ar& boost::serialization::base_object<MarketDatum>(*
this);
657template void MarketDatum::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
658template void MarketDatum::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
659template void MoneyMarketQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
660template void MoneyMarketQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
661template void FRAQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
662template void FRAQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
663template void ImmFraQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
664template void ImmFraQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
665template void SwapQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
666template void SwapQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
667template void ZeroQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
668template void ZeroQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
669template void DiscountQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
670template void DiscountQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
671template void MMFutureQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
672template void MMFutureQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
673template void OIFutureQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
674template void OIFutureQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
675template void BasisSwapQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
676template void BasisSwapQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
677template void BMASwapQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
678template void BMASwapQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
679template void CrossCcyBasisSwapQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
680template void CrossCcyBasisSwapQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
681template void CrossCcyFixFloatSwapQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
682template void CrossCcyFixFloatSwapQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
683template void CdsQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
684template void CdsQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
685template void HazardRateQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
686template void HazardRateQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
687template void RecoveryRateQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
688template void RecoveryRateQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
689template void SwaptionQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
690template void SwaptionQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
691template void SwaptionShiftQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
692template void SwaptionShiftQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
693template void BondOptionQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
694template void BondOptionQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
695template void BondOptionShiftQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
696template void BondOptionShiftQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
697template void CapFloorQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
698template void CapFloorQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
699template void CapFloorShiftQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
700template void CapFloorShiftQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
701template void FXSpotQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
702template void FXSpotQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
703template void FXForwardQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
704template void FXForwardQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
705template void FXOptionQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
706template void FXOptionQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
707template void ZcInflationSwapQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
708template void ZcInflationSwapQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
709template void InflationCapFloorQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
710template void InflationCapFloorQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
711template void ZcInflationCapFloorQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
712template void ZcInflationCapFloorQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
713template void YoYInflationSwapQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
714template void YoYInflationSwapQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
715template void YyInflationCapFloorQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
716template void YyInflationCapFloorQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
717template void SeasonalityQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
718template void SeasonalityQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
719template void EquitySpotQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
720template void EquitySpotQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
721template void EquityForwardQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
722template void EquityForwardQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
723template void EquityDividendYieldQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
724template void EquityDividendYieldQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
725template void EquityOptionQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
726template void EquityOptionQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
727template void SecuritySpreadQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
728template void SecuritySpreadQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
729template void BaseCorrelationQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
730template void BaseCorrelationQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
731template void IndexCDSOptionQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
732template void IndexCDSOptionQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
733template void CommoditySpotQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
734template void CommoditySpotQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
735template void CommodityForwardQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
736template void CommodityForwardQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
737template void CommodityOptionQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
738template void CommodityOptionQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
739template void CorrelationQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
740template void CorrelationQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
741template void CPRQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
742template void CPRQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
743template void BondPriceQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
744template void BondPriceQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
745template void TransitionProbabilityQuote::serialize(boost::archive::binary_oarchive& ar,
const unsigned int version);
746template void TransitionProbabilityQuote::serialize(boost::archive::binary_iarchive& ar,
const unsigned int version);
void serialize(Archive &ar, const unsigned int version)
void serialize(Archive &ar, const unsigned int version)
void serialize(Archive &ar, const unsigned int version)
void serialize(Archive &ar, const unsigned int version)
Shift data class (for SLN bond option volatilities)
void serialize(Archive &ar, const unsigned int version)
void serialize(Archive &ar, const unsigned int version)
Shift data class (for SLN cap/floor volatilities)
void serialize(Archive &ar, const unsigned int version)
void serialize(Archive &ar, const unsigned int version)
Commodity forward quote class.
const QuantLib::Date & expiryDate() const
The commodity forward's expiry if the quote is date based.
Commodity option data class.
Commodity spot quote class.
Cross Currency Basis Swap data class.
void serialize(Archive &ar, const unsigned int version)
Cross Currency Fix Float Swap quote holder.
QuantLib::Period floatTenor_
QuantLib::Period maturity_
QuantLib::Period fixedTenor_
void serialize(Archive &ar, const unsigned int version)
Discount market data class.
void serialize(Archive &ar, const unsigned int version)
Equity/Index Dividend yield data class.
EquityDividendYieldQuote()
void serialize(Archive &ar, const unsigned int version)
Equity forward data class.
void serialize(Archive &ar, const unsigned int version)
Equity/Index Option data class.
QuantLib::ext::shared_ptr< BaseStrike > strike_
const string & expiry() const
void serialize(Archive &ar, const unsigned int version)
Equity/Index spot price data class.
void serialize(Archive &ar, const unsigned int version)
void serialize(Archive &ar, const unsigned int version)
Foreign exchange rate data class.
boost::variant< QuantLib::Period, FxFwdString > term_
void serialize(Archive &ar, const unsigned int version)
void serialize(Archive &ar, const unsigned int version)
Foreign exchange rate data class.
void serialize(Archive &ar, const unsigned int version)
void serialize(Archive &ar, const unsigned int version)
IMM FRA market data class.
void serialize(Archive &ar, const unsigned int version)
CDS Index Option data class.
IndexCDSOptionQuote()
Default constructor.
Inflation Cap Floor data class.
void serialize(Archive &ar, const unsigned int version)
Money Market Future data class.
Month expiryMonth() const
Natural expiryYear() const
void serialize(Archive &ar, const unsigned int version)
InstrumentType instrumentType_
InstrumentType
Supported market instrument types.
QuoteType
Supported market quote types.
const string & name() const
QuoteType quoteType() const
void serialize(Archive &ar, const unsigned int version)
void serialize(Archive &ar, const unsigned int version)
Overnight index future data class.
Month expiryMonth() const
Natural expiryYear() const
void serialize(Archive &ar, const unsigned int version)
Recovery rate data class.
void serialize(Archive &ar, const unsigned int version)
Inflation seasonality data class.
QuantLib::Size applyMonth() const
void serialize(Archive &ar, const unsigned int version)
void serialize(Archive &ar, const unsigned int version)
void serialize(Archive &ar, const unsigned int version)
void serialize(Archive &ar, const unsigned int version)
Shift data class (for SLN swaption volatilities)
void serialize(Archive &ar, const unsigned int version)
Transition Probability data class.
YoY Inflation swap data class.
void serialize(Archive &ar, const unsigned int version)
void serialize(Archive &ar, const unsigned int version)
void serialize(Archive &ar, const unsigned int version)
ZC Inflation swap data class.
void serialize(Archive &ar, const unsigned int version)
void serialize(Archive &ar, const unsigned int version)
SafeStack< ValueType > value
bool tryParseReal(const string &s, QuantLib::Real &result)
Attempt to convert text to Real.
boost::variant< QuantLib::Date, QuantLib::Period > parseDateOrPeriod(const string &s)
Convert text to QuantLib::Period or QuantLib::Date.
BOOST_CLASS_EXPORT_IMPLEMENT(ore::data::MoneyMarketQuote)
Market data representation.
bool operator<(const Dividend &d1, const Dividend &d2)
std::ostream & operator<<(std::ostream &out, EquityReturnType t)
Serializable Credit Default Swap.
Map text representations to QuantLib/QuantExt types.