2014-01-14 1 views
2

Я пытаюсь научиться квантилу (1.3) & привязкам python с использованием метода квантил-swig (1.2) в ubuntu 13.04. В качестве стартера я пытаюсь определить даты платежа по очень простой связи, как указано ниже, используя 30/360 европейский счетчик днейКак получить даты выплаты купона за простую фиксированную связь с использованием квантиля, квант-swig и python

from QuantLib import * 

faceValue = 100.0 
doi = Date(31, August, 2000) 
dom = Date(31, August, 2008) 
coupons = [0.05] 

dayCounter = Thirty360(Thirty360.European) 

schedule = Schedule(doi, dom, Period(Semiannual), 
    India(), 
    Unadjusted, Unadjusted, 
    DateGeneration.Backward, False) 

Ниже приведены мои вопросы:

Какой метод объекта график даст мне даты платежа?
Где мне нужно указать объект dayCounter, чтобы даты были рассчитаны надлежащим образом?

Используя презентацию Димитрия Рейсвича, я попытался имитировать код на C++, но sched.dates() возвращает ошибку как никакой такой метод.

платежной даты для этой фиксированного тарифа облигации (полученные с помощью oocalc)

28 февраля 2001; Aug 31, 2001
28 фев 2002; Aug 31, 2002
28 фев 2003; 31 августа 2003 года
29 фев 2004; Aug 31, 2004
28 фев 2005; 31 августа 2005 г.
28 фев 2006; Aug 31, 2006
28 фев 2007; 31 августа 2007 г.
29 фев 2008; Aug 31, 2008

Как получить даты платежа для этой простой облигации с использованием python & quantlib? Кто-то может помочь?

рассматривает

K

ответ

2

Если вы хотите посмотреть на график вы просто сгенерирована, вы можете перемещаться по нему:

>>> for d in schedule: print d 
... 
August 31st, 2000 
February 28th, 2001 
August 31st, 2001 
February 28th, 2002 
August 31st, 2002 
February 28th, 2003 
August 31st, 2003 
February 29th, 2004 
August 31st, 2004 
February 28th, 2005 
August 31st, 2005 
February 28th, 2006 
August 31st, 2006 
February 28th, 2007 
August 31st, 2007 
February 29th, 2008 
August 31st, 2008 

или звоните list(schedule), если вы хотите хранить их. Однако вы уверены, что это даты платежа? Они являются датой начала и окончания расчета начислений; но некоторые из них выпадают на субботу или воскресенье, и облигация будет выплачиваться на следующий рабочий день. Вы можете увидеть эффект, если вы инстанцируете связь и получать купоны:

>>> settlement_days = 3 
>>> bond = FixedRateBond(settlement_days, faceValue, schedule, coupons, dayCounter) 
>>> for c in bond.cashflows(): 
...  print c.date() 
... 
February 28th, 2001 
August 31st, 2001 
February 28th, 2002 
September 2nd, 2002 
February 28th, 2003 
September 1st, 2003 
March 1st, 2004 
August 31st, 2004 
February 28th, 2005 
August 31st, 2005 
February 28th, 2006 
August 31st, 2006 
February 28th, 2007 
August 31st, 2007 
February 29th, 2008 
September 1st, 2008 
September 1st, 2008 

(то есть, если в субботу и воскресенье не должна быть праздниками для индийского календаря Если вы думаете, что они не должны, файл а. отчет об ошибках с QuantLib).

+0

Спасибо за тонну за ответ. Сегодня я узнал что-то новое с точки зрения QuantLib. dayCounter используется в графике выплаты купона, который является частью денежных потоков, а не графиком !!! Wonderful – kishore

+0

На самом деле, счетчик дней используется после того, как вы строите расписания. Когда у вас есть дата начала и окончания купона, дневной счетчик сообщает вам соответствующее время начисления в годах (около 0,5 в вашем случае). –

Смежные вопросы