Exemple #1
0
def to_ql_currency(arg):
    """Converts string with a calendar name to a calendar instance of QuantLib.

    :param arg: str
        The currency 3 letter identifier
    :return QuantLib.Currency
    """

    if arg.upper() == "USD":
        return ql.USDCurrency()
    elif arg.upper() == "BRL":
        return ql.BRLCurrency()
    elif arg.upper() == "EUR":
        return ql.EURCurrency()
    elif arg.upper() == "GBP":
        return ql.GBPCurrency()
    elif arg.upper() == "AUD":
        return ql.AUDCurrency()
    elif arg.upper() == "JPY":
        return ql.JPYCurrency()
    elif arg.upper() == "TRY":
        return ql.TRYCurrency()
    elif arg.upper() == "ZAR":
        return ql.ZARCurrency()
    elif arg.upper() == "CHF":
        return ql.CHFCurrency()
    elif arg.upper() in ["CNY", "CNH"]:
        return ql.CNYCurrency()
    else:
        raise ValueError(
            "Unable to convert {} to a QuantLib currency".format(arg))
Exemple #2
0
    'ACT/365':
    ql.Actual365Fixed(ql.Actual365Fixed.NoLeap),

    # Dates
    'FOLLOWING':
    ql.Following,
    'MODIFIEDFOLLOWING':
    ql.ModifiedFollowing,
    'BACKWARDS':
    ql.DateGeneration.Backward,
    'FORWARDS':
    ql.DateGeneration.Forward,

    # Overnight Indexes
    'AUD.OIS':
    ql.OvernightIndex('RBACOR', 0, ql.AUDCurrency(), ql.Australia(),
                      ql.Actual365Fixed()),
    'CAD.OIS':
    ql.OvernightIndex('CAOREPO', 0, ql.CADCurrency(), ql.Canada(),
                      ql.Actual365Fixed()),
    'CHF.OIS':
    ql.OvernightIndex('SARON', 0, ql.CHFCurrency(), ql.Switzerland(),
                      ql.Actual360()),
    'CLP.OIS':
    ql.OvernightIndex('CLICP', 0, ql.CLPCurrency(), ql.WeekendsOnly(),
                      ql.Actual360()),
    'CNY.OIS':
    ql.OvernightIndex('CNRR007', 0, ql.CNYCurrency(), ql.China(),
                      ql.Actual365Fixed()),
    'COP.OIS':
    ql.OvernightIndex('COOVIBR', 0, ql.COPCurrency(), ql.WeekendsOnly(),