2009-04-29 1 views
2

Надстройка Excel под названием «Analysis ToolPak» предоставляет функцию «Выход» для расчета доходности по безопасности, которая периодически выплачивает проценты..NET реализация функции Excel Выход

Функция работает хорошо и возвращает правильные данные.

Мое понимание - это функциональная база в виде итерации, это не так просто реализовать ее в моем коде.

Мой вопрос: кто-нибудь знает/видел реализацию на C# (в конечном итоге на других языках) и может поделиться? Или (может быть) некоторые советы, как его реализовать? Чем я могу поделиться :)

EDIT:

Спасибо все публикации меня «формула», но это не совсем полезно для меня.
Пожалуйста, обратите внимание, что формула MS»находит применение в случае 1: только
" когда есть один период купона или менее до погашения",

иначе:

«(...) Выход рассчитывается через сто итераций ».
и нет точной формулы для этого случая

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

Я не ленивый, но я не хотел сломать открытые двери ...

ответ

0

Вот формула, если вы не хотите просматривать веб-страницы.

Я попытался опубликовать изображение, но я новый пользователь, и это не позволило мне.

Graphic showing formula.

+0

Это то же изображение на странице я связан с ранее. – leppie

+0

Я знаю, что я просто хотел показать ссылку в этом посте, но не смог.Пользователи могут просматривать графику самостоятельно или на полной странице, если им нужно понять, что за ней стоит. –

+0

Когда я говорю ссылку, я имею в виду графику. –

1

Предполагая, что функция, которая передается все переменные, необходимые для формулы, как описано на

http://office.microsoft.com/en-us/excel/HP052093451033.aspx

затем

return (((redemption/100 + rate/frequency) - (par/100 + (A/E * rate/frequency)))/(par/100+(A/E * rate/frequency))) * ((frequency*E)/DSR); 
+0

И если вы его прочтете, вы бы видели, что он работает только для подмножества входов, попробуйте еще раз! – leppie

+0

Как мы вычисляем эти переменные A, E и DSR? – Burhan

1

Прежде всего, необходимо реализацию функции ЦЕНА. Затем YIELD использует Newton Solver для решения функции PRICE для получения правильной доходности и заданной целевой цены. Код для функции цены и код для решателя Ньютона можно найти в этой аналогичной должности: java implementation of excel price,yield functions

0
using Excel = Microsoft.Office.Interop.Excel; 

Excel.Application xl = new Excel.Application(); 
     Excel.WorksheetFunction wsf = xl.WorksheetFunction; 
     //static settlementDate 
     var settlementDate = xl.Evaluate("=DATEVALUE(" + '"' + "9/4/2013" + '"' + ")"); 
     //static maturityDate 
     var maturityDate = xl.Evaluate("=DATEVALUE("+ '"' +"12/5/2014"+ '"' +")"); 
     var rate = "0.05250"; 
     var priceLevel = "1.04800"; 
     //assuming that redemption is 100, frequency is Quarterly and basis is Actual/365 
     var resultInPercentage = xl.Evaluate("=YIELD(" + settlementDate + "," +   maturityDate + ",.05250,(1.04800*100),100,2,3)") * 100;