2016-02-15 2 views
0

Я начинаю в квантилбеле, и я делаю лекцию Марко Марчиоро 2 IRS-плавающая нога Лист упражнений.Как оценивать плавучую ногу IRS в quantlibxl

Это мой вопрос:
Когда я использую данный пример, работают как npvs (расчет qunatlib, так и вычисление excel). Но если я изменю дату ценообразования, после даты вступления в силу, qllegNPV выдает сообщение об ошибке (#NUM). Как это исправить?

Ниже приведен график Термин лист:

Дата Цена: 10/30/2015
Дата вступления в силу: 07/23/2015
Terminate Дата: 7/23/2022
Тенор: 3M

Я стараюсь изо всех сил, чтобы объяснить свою функцию в Excel
для построения Перечне потока ДЕНЕЖНЫХ (ИРС-floa т-график # 0000):

=qlSchedule(irs-float-schedule,7/23/2015,7/23/2022,3M,TARGET,Modified Following,Modified Following,Forwad,TRUE,,,,) 

Прогноз кривой (SWP-прогноз # 0000)

=qlFlatForward(swp-forecast,0,TARGET,0.29%,Actual/360,Continous,SemiAnnual,,) 

Индекс Libor (EURIBOR # 0000)

=qlEuribor(euribor,3M,swp-forecast#0000,,) 

Скидка кривая (swp-скидка # 0000):

=qlFlatForward(swp-discount,0,TARGET,4%,Actual/360,Continous,SemiAnnual,,) 

IRS Floating нога (ИРС-флоат-нога # 0000):

=qlIborLeg(irs-float-leg,Following,5000000,irs-float-schedule#0000,,,Actual/360,0,1,euribor,0,0,,) 

legNPV:

=qlLegNPV(irs-float-leg#0000,swp-discount#0000) 

Спасибо за вашу помощь.

+0

Добро пожаловать в Stackoverflow. Поделитесь соответствующими фрагментами кода, которые вы пробовали до сих пор. – Daenarys

ответ

0

Вы не сообщаете о фактическом сообщении об ошибке (которое вы можете найти, вызвав функцию ohRangeRetrieveError и передав ей адрес ячейки, содержащей эту ошибку), но я предполагаю, что это сообщит вам о недостающей фиксации.

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

0

ohRangeRetrieveError() Хорошо, когда вы знаете, какие ячейки являются причиной ошибки. Я также использую ohLogSetFile(logfile, loglevel) в первом столбце первой вкладки для включения журнала в файл для всей электронной таблицы. Уровень журнала 5 - это самый подробный журнал.

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