Как структурировать денежные потоки с фиксированной процентной ставкой с ежемесячной процентной ставкой, начисляемой и выплачиваемой Ежеквартально

Я использую реализацию Quantlib swig в python. Я пытаюсь смоделировать некоторые кредитные соглашения с фиксированной процентной ставкой, которая рассчитывается ежемесячно на простой основе и составляется ежеквартально. Пример Дата выпуска 18 марта 2011 г.

Первая заглушка 1 апреля 2011 г.

Дата второй процентной ставки 1 июля 2011 г.

Следующая выплата процентов производится каждый квартал после 1 октября и так далее.

Купон 8,45% рассчитывается на простой основе и начисляется ежеквартально.

Я не могу структурировать потоки с помощью функций FixedRateLeg или FixedRateBond.

Я заметил, что в коде C++ есть возможность использовать FixedRateLeg с купонными ставками. Я могу предоставить класс процентной ставки с компаундированием SimpleThenCompounded. Но я думаю, что эта переопределение функции недоступна в версии Python swig.

Любые решения относительно того, как я могу это решить?


person avijaysimha    schedule 01.11.2020    source источник


Ответы (1)


Для дат генерировать то, что вы хотите, довольно просто, поскольку, если ничего не определено, заглушка будет в начале:

issueDate = ql.Date(18,3,2011)
maturityDate = ql.Date(1, 10, 2021)

schedule = ql.MakeSchedule(issueDate, maturityDate, ql.Period('3M'))

for date in [*schedule][:5]:
    print(date.ISO())

2011-03-18
2011-04-01
2011-07-01
2011-10-01
2012-01-01

Что касается ставки, я не уверен, что вы имеете в виду ежеквартальное начисление сложных процентов, если платежи ежеквартальные. Соглашение ql.SimpleThenCompounded используется, например, для казначейских векселей, срок действия которых может превышать один год, где соглашение о процентной ставке будет простым до одного года и начисляемым на срок более года.

Вы уверены, что это не даст вам то, что вы хотите?

dayCount = ql.Actual360()
leg = ql.FixedRateLeg(schedule, dayCount, [100.], [0.0845])
for cf in leg:
    print(cf.date().ISO(), cf.amount())
person David Duarte    schedule 01.11.2020
comment
Спасибо. Да, я пробовал это. Но нет возможности установить начисление процентов при создании FixedRateLeg. На данный момент я приступил к созданию вектора купонов, используя эквивалентную ставку с ежеквартальным начислением процентов. Это необходимо сделать для всех дат, так как ставка зависит от периода. И использовал то же самое для создания FixedRateLeg. Я все еще пытаюсь подсчитать цифры, так как есть небольшая разница. Но весь процесс слишком круговой. Должен быть более простой способ! - person avijaysimha; 02.11.2020