本文整理汇总了Python中quantlib.settings.Settings.instance方法的典型用法代码示例。如果您正苦于以下问题:Python Settings.instance方法的具体用法?Python Settings.instance怎么用?Python Settings.instance使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类quantlib.settings.Settings
的用法示例。
在下文中一共展示了Settings.instance方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_settings_instance_method
# 需要导入模块: from quantlib.settings import Settings [as 别名]
# 或者: from quantlib.settings.Settings import instance [as 别名]
def test_settings_instance_method(self):
Settings.instance().evaluation_date = today()
self.assertEqual(
today(),
Settings.instance().evaluation_date
)
示例2: test_blsprice
# 需要导入模块: from quantlib.settings import Settings [as 别名]
# 或者: from quantlib.settings.Settings import instance [as 别名]
def test_blsprice(self):
from quantlib.settings import Settings
from quantlib.time.api import today
Settings.instance().evaluation_date = today()
call_value = blsprice(100.0, 97.0, 0.1, 0.25, 0.5)
self.assertAlmostEquals(call_value, 12.61, 2)
示例3: test_create_swap_index
# 需要导入模块: from quantlib.settings import Settings [as 别名]
# 或者: from quantlib.settings.Settings import instance [as 别名]
def test_create_swap_index(self):
settings = Settings.instance()
# Market information
calendar = TARGET()
# must be a business day
eval_date = calendar.adjust(today())
settings.evaluation_date = eval_date
settlement_days = 2
settlement_date = calendar.advance(eval_date, settlement_days, Days)
# must be a business day
settlement_date = calendar.adjust(settlement_date)
term_structure = YieldTermStructure(relinkable=True)
term_structure.link_to(FlatForward(settlement_date, 0.05,
Actual365Fixed()))
ibor_index = Libor('USD Libor', Period(6, Months), settlement_days,
USDCurrency(), calendar, Actual360(),
term_structure)
index = SwapIndex(
'family name', Period(3, Months), 10, USDCurrency(), TARGET(),
Period(12, Months), Following, Actual360(), ibor_index)
self.assertIsNotNone(index)
示例4: test_create_swap_index
# 需要导入模块: from quantlib.settings import Settings [as 别名]
# 或者: from quantlib.settings.Settings import instance [as 别名]
def test_create_swap_index(self):
settings = Settings.instance()
# Market information
calendar = TARGET()
# must be a business day
eval_date = calendar.adjust(today())
settings.evaluation_date = eval_date
settlement_days = 2
settlement_date = calendar.advance(eval_date, settlement_days, Days)
# must be a business day
settlement_date = calendar.adjust(settlement_date);
ibor_index = Libor('USD Libor', Period(6, Months), settlement_days,
USDCurrency(), calendar, Actual360())
index = SwapIndex(
'family name', Period(3, Months), 10, USDCurrency(), TARGET(),
Period(12, Months), Following, Actual360(), ibor_index)
self.assertIsNotNone(index)
示例5: create_helper
# 需要导入模块: from quantlib.settings import Settings [as 别名]
# 或者: from quantlib.settings.Settings import instance [as 别名]
def create_helper():
calendar = TARGET()
todays_date = Date(15, May, 2007)
todays_date = calendar.adjust(todays_date)
Settings.instance().evaluation_date = todays_date
flat_rate = SimpleQuote(0.01)
ts_curve = FlatForward(todays_date, flat_rate, Actual365Fixed())
recovery_rate = 0.5
quoted_spreads = 0.0150
tenor = Period(3, Months)
helper = SpreadCdsHelper(
quoted_spreads,
tenor,
0,
calendar,
Quarterly,
Following,
TwentiethIMM,
Actual365Fixed(),
recovery_rate,
ts_curve,
)
return todays_date, helper
示例6: test_create_interpolated_hazard
# 需要导入模块: from quantlib.settings import Settings [as 别名]
# 或者: from quantlib.settings.Settings import instance [as 别名]
def test_create_interpolated_hazard(self):
Settings.instance().evaluation_date = self.todays_date
dates = [self.todays_date + Period(i, Years) for i in [3, 5, 7]]
hazard_rates = [0.01, 0.03, 0.05]
interpolation_date = self.todays_date + Period(4, Years)
trait = Interpolator.Linear
interpolated_curve = InterpolatedHazardRateCurve(trait, dates,
hazard_rates,
Actual365Fixed())
t0 = interpolated_curve.time_from_reference(dates[0])
t1 = interpolated_curve.time_from_reference(interpolation_date)
t2 = interpolated_curve.time_from_reference(dates[1])
interpolated_value = hazard_rates[0] + (t1-t0) /(t2-t0) * \
(hazard_rates[1] - hazard_rates[0])
self.assertAlmostEqual(interpolated_value,
interpolated_curve.hazard_rate(interpolation_date))
trait = Interpolator.BackwardFlat
interpolated_curve = InterpolatedHazardRateCurve(trait, dates,
hazard_rates,
Actual365Fixed())
interpolated_value = hazard_rates[1]
self.assertAlmostEqual(interpolated_value,
interpolated_curve.hazard_rate(interpolation_date))
trait = Interpolator.LogLinear
interpolated_curve = InterpolatedHazardRateCurve(trait, dates,
hazard_rates,
Actual365Fixed())
with self.assertRaisesRegexp(RuntimeError,
'LogInterpolation primitive not implemented'):
hazard_rate = interpolated_curve.hazard_rate(interpolation_date)
示例7: test_create_libor_index
# 需要导入模块: from quantlib.settings import Settings [as 别名]
# 或者: from quantlib.settings.Settings import instance [as 别名]
def test_create_libor_index(self):
settings = Settings.instance()
# Market information
calendar = TARGET()
# must be a business day
eval_date = calendar.adjust(today())
settings.evaluation_date = eval_date
settlement_days = 2
settlement_date = calendar.advance(eval_date, settlement_days, Days)
# must be a business day
settlement_date = calendar.adjust(settlement_date)
term_structure = YieldTermStructure(relinkable=True)
term_structure.link_to(FlatForward(settlement_date, 0.05,
Actual365Fixed()))
index = Libor('USD Libor', Period(6, Months), settlement_days,
USDCurrency(), calendar, Actual360(),
term_structure)
t = index.tenor
self.assertEqual(t.length, 6)
self.assertEqual(t.units, 2)
self.assertEqual('USD Libor6M Actual/360', index.name)
示例8: test_create_libor_index
# 需要导入模块: from quantlib.settings import Settings [as 别名]
# 或者: from quantlib.settings.Settings import instance [as 别名]
def test_create_libor_index(self):
settings = Settings.instance()
# Market information
calendar = UnitedStates(LiborImpact)
# must be a business day
eval_date = calendar.adjust(today())
settings.evaluation_date = eval_date
settlement_days = 2
settlement_date = calendar.advance(eval_date, settlement_days, Days)
# must be a business day
settlement_date = calendar.adjust(settlement_date)
term_structure = YieldTermStructure(relinkable=True)
term_structure.link_to(FlatForward(settlement_date, 0.05,
Actual365Fixed()))
index = Libor('USDLibor', Period(6, Months), settlement_days,
USDCurrency(), calendar, Actual360(),
term_structure)
default_libor = USDLibor(Period(6, Months))
for attribute in ["business_day_convention", "end_of_month",
"fixing_calendar", "joint_calendar", "tenor",
"fixing_days", "day_counter", "family_name", "name"]:
self.assertEqual(getattr(index, attribute),
getattr(default_libor, attribute))
示例9: example02
# 需要导入模块: from quantlib.settings import Settings [as 别名]
# 或者: from quantlib.settings.Settings import instance [as 别名]
def example02():
print("example 2:\n")
todays_date = Date(25, 9, 2014)
Settings.instance().evaluation_date = todays_date
calendar = TARGET()
term_date = calendar.adjust(todays_date + Period(2, Years), Following)
cds_schedule = Schedule(todays_date, term_date, Period(Quarterly),
WeekendsOnly(), ModifiedFollowing,
ModifiedFollowing,
date_generation_rule=Rule.CDS)
for date in cds_schedule:
print(date)
print()
todays_date = Date(21, 10, 2014)
Settings.instance().evaluation_date = todays_date
quotes = [0.00006, 0.00045, 0.00081, 0.001840, 0.00256, 0.00337]
tenors = [1, 2, 3, 6, 9, 12]
deps = [DepositRateHelper(q, Period(t, Months), 2, calendar, ModifiedFollowing, False, Actual360())
for q, t in zip(quotes, tenors)]
tenors = [2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 20, 30]
quotes = [0.00223, 0.002760, 0.003530, 0.004520, 0.005720, 0.007050, 0.008420, 0.009720, 0.010900,
0.012870, 0.014970, 0.017, 0.01821]
swaps = [SwapRateHelper.from_tenor(q, Period(t, Years),
calendar, Annual, ModifiedFollowing,
Thirty360(), Euribor6M(), SimpleQuote(0))
for q, t in zip(quotes, tenors)]
helpers = deps + swaps
YC = PiecewiseYieldCurve.from_reference_date(BootstrapTrait.Discount, Interpolator.LogLinear,
todays_date, helpers, Actual365Fixed())
YC.extrapolation = True
print("ISDA rate curve:")
for h in helpers:
print("{0}: {1:.6f}\t{2:.6f}".format(h.latest_date,
YC.zero_rate(h.latest_date, Actual365Fixed(), 2).rate,
YC.discount(h.latest_date)))
defaultTs0 = FlatHazardRate(0, WeekendsOnly(), 0.016739207493630, Actual365Fixed())
cds_schedule = Schedule.from_rule(Date(22, 9, 2014), Date(20, 12, 2019), Period(3, Months),
WeekendsOnly(), Following, Unadjusted, Rule.CDS, False)
nominal = 100000000
trade = CreditDefaultSwap(Side.Buyer, nominal, 0.01, cds_schedule, Following,
Actual360(), True, True, Date(22, 10, 2014), Actual360(True), True)
engine = IsdaCdsEngine(defaultTs0, 0.4, YC, False)
trade.set_pricing_engine(engine)
print("reference trade NPV = {0}\n".format(trade.npv))
示例10: test_flat_hazard_with_quote
# 需要导入模块: from quantlib.settings import Settings [as 别名]
# 或者: from quantlib.settings.Settings import instance [as 别名]
def test_flat_hazard_with_quote(self):
Settings.instance().evaluation_date = self.todays_date
hazard_rate = SimpleQuote()
flat_curve = FlatHazardRate(2, self.calendar, hazard_rate, Actual365Fixed())
for h in [0.01, 0.02, 0.03]:
hazard_rate.value = h
self.assertAlmostEqual(flat_curve.survival_probability(self.d),
math.exp(-h * flat_curve.time_from_reference(self.d)))
示例11: test_methods
# 需要导入模块: from quantlib.settings import Settings [as 别名]
# 或者: from quantlib.settings.Settings import instance [as 别名]
def test_methods(self):
Settings.instance().evaluation_date = self.todays_date
dates = [self.todays_date + Period(i, Years) for i in [3, 5, 7]]
hazard_rates = [0.01, 0.03, 0.05]
for trait in [Interpolator.BackwardFlat, Interpolator.Linear]:
interpolated_curve = InterpolatedHazardRateCurve(trait, dates,
hazard_rates,
Actual365Fixed())
self.assertEqual(dates, interpolated_curve.dates)
self.assertEqual(interpolated_curve.data, interpolated_curve.hazard_rates)
示例12: test_create_flat_hazard
# 需要导入模块: from quantlib.settings import Settings [as 别名]
# 或者: from quantlib.settings.Settings import instance [as 别名]
def test_create_flat_hazard(self):
Settings.instance().evaluation_date = self.todays_date
flat_curve = FlatHazardRate(2, self.calendar, 0.05, Actual365Fixed())
flat_curve_from_reference_date = FlatHazardRate.from_reference_date(
self.calendar.advance(self.todays_date, 2, Days), 0.05, Actual365Fixed())
self.assertIsNotNone(flat_curve)
self.assertIsNotNone(flat_curve_from_reference_date)
self.assertEqual(flat_curve.time_from_reference(self.d),
flat_curve_from_reference_date.time_from_reference(self.d))
self.assertAlmostEqual(flat_curve.hazard_rate(self.d), 0.05)
self.assertAlmostEqual(flat_curve.survival_probability(self.d),
math.exp(-0.05*flat_curve.time_from_reference(self.d)))
示例13: test_relativedate_rate_helper
# 需要导入模块: from quantlib.settings import Settings [as 别名]
# 或者: from quantlib.settings.Settings import instance [as 别名]
def test_relativedate_rate_helper(self):
tenor = Period(3, Months)
fixing_days = 3
calendar = TARGET()
convention = ModifiedFollowing
end_of_month = True
deposit_day_counter = Actual365Fixed()
helper = DepositRateHelper(
0.005, tenor, fixing_days, calendar, convention, end_of_month,
deposit_day_counter
)
Settings.instance().evaluation_date = Date(8, 6, 2016)
self.assertEqual(helper.latest_date, Date(13, 9, 2016))
示例14: example03
# 需要导入模块: from quantlib.settings import Settings [as 别名]
# 或者: from quantlib.settings.Settings import instance [as 别名]
def example03():
print("example 3:\n")
todays_date = Date(13, 6, 2011)
Settings.instance().evaluation_date = todays_date
quotes = [0.00445, 0.00949, 0.01234, 0.01776, 0.01935, 0.02084]
tenors = [1, 2, 3, 6, 9, 12]
calendar = WeekendsOnly()
deps = [DepositRateHelper(q, Period(t, Months), 2, calendar, ModifiedFollowing, False, Actual360())
for q, t in zip(quotes, tenors)]
quotes = [0.01652, 0.02018, 0.02303, 0.02525, 0.0285, 0.02931, 0.03017, 0.03092, 0.03160, 0.03231,
0.03367, 0.03419, 0.03411, 0.03411, 0.03412]
tenors = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 20, 25, 30]
swaps = [SwapRateHelper.from_tenor(q, Period(t, Years),
calendar, Annual, ModifiedFollowing,
Thirty360(), Euribor6M(), SimpleQuote(0)) for q, t
in zip(quotes, tenors)]
yield_helpers = deps + swaps
isda_yts = PiecewiseYieldCurve(BootstrapTrait.Discount, Interpolator.LogLinear, 0,
WeekendsOnly(), yield_helpers, Actual365Fixed())
spreads = [0.007927, 0.012239, 0.016979, 0.019271, 0.020860]
tenors = [1, 3, 5, 7, 10]
spread_helpers = [SpreadCdsHelper(0.007927, Period(6, Months), 1,
WeekendsOnly(), Quarterly, Following, Rule.CDS2015,
Actual360(), 0.4, isda_yts, True, True,
Date(), Actual360(True), True, PricingModel.ISDA)] + \
[SpreadCdsHelper(s, Period(t, Years), 1, WeekendsOnly(), Quarterly, Following, Rule.CDS2015,
Actual360(), 0.4, isda_yts, True, True, Date(), Actual360(True), True,
PricingModel.ISDA)
for s, t in zip(spreads, tenors)]
isda_cts = PiecewiseDefaultCurve(ProbabilityTrait.SurvivalProbability,
Interpolator.LogLinear, 0, WeekendsOnly(), spread_helpers,
Actual365Fixed())
isda_pricer = IsdaCdsEngine(isda_cts, 0.4, isda_yts)
print("Isda yield curve:")
for h in yield_helpers:
d = h.latest_date
t = isda_yts.time_from_reference(d)
print(d, t, isda_yts.zero_rate(d, Actual365Fixed()).rate)
print()
print("Isda credit curve:")
for h in spread_helpers:
d = h.latest_date
t = isda_cts.time_from_reference(d)
print(d, t, isda_cts.survival_probability(d))
示例15: test_create_libor_index
# 需要导入模块: from quantlib.settings import Settings [as 别名]
# 或者: from quantlib.settings.Settings import instance [as 别名]
def test_create_libor_index(self):
settings = Settings.instance()
# Market information
calendar = TARGET()
# must be a business day
eval_date = calendar.adjust(today())
settings.evaluation_date = eval_date
settlement_days = 2
settlement_date = calendar.advance(eval_date, settlement_days, Days)
# must be a business day
settlement_date = calendar.adjust(settlement_date)
index = Libor("USD Libor", Period(6, Months), settlement_days, USDCurrency(), calendar, Actual360())
self.assertEquals("USD Libor6M Actual/360", index.name)