2009-04-29 11 views
2

Das Excel-Add-In namens "Analysis ToolPak" bietet eine "Ertrags" -Funktion für die Berechnung der Rendite auf Sicherheit, die periodische Zinsen zahlt..NET-Implementierung der Excel-Ertragsfunktion

Funktion funktioniert gut und gibt die richtigen Daten zurück.

Mein Verständnis ist Funktionsbasis auf Art der Iteration ist es nicht so einfach implementieren Sie es in meinem Code.

Meine Frage ist jemand wissen/gesehen Implementierung in C# (eventuell andere Sprachen) und teilen können? Oder (vielleicht) ein paar Tipps, wie man es implementiert? Als ich :)

EDIT teilen kann:

Dank all Posting me "Formel", aber das ist mir nicht ganz nützlich.
Bitte beachten Sie, dass MS‘Formel Anwendung in 1 Fall findet nur:
" wenn es eine Couponperiode oder weniger bis zur Tilgung",

sonst:

„(...) Ausbeute wird durch hundert Iterationen berechnet. "
und es gibt keine exakte Formel für diesen Fall

I Gleichungen lesen und implementieren sie (hoffentlich), aber meine Frage war, ob jemand hat oder Säge bereits Funktion in Programmiersprache implementiert.

Ich bin nicht faul, aber ich mag nicht offene Türen brechen ...

Antwort

0

Hier ist die Formel, wenn Sie nicht durch Webseiten blättern wollen.

Ich habe versucht, das Bild zu posten, aber ich bin ein neuer Benutzer und es hat mir nicht erlaubt.

Graphic showing formula.

+0

Das ist das gleiche Bild in der Seite, die ich zuvor in Verbindung mit: -Code für Preisfunktion und Code für den Newton-Solver kann in dieser ähnlichen Post. – leppie

+0

Ich weiß, ich wollte nur den Link in diesem Beitrag zeigen, war aber nicht in der Lage.Benutzer können die Grafik einzeln oder auf der ganzen Seite anzeigen, wenn sie die Gründe dafür verstehen müssen. –

+0

Wenn ich Link sage, meine ich Grafik. –

1

Unter der Annahme, eine Funktion, die für die Formel benötigt, um alle Variablen übergeben wird, wie auf

erklärt

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

dann

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

Und wenn Sie es lesen, hätten Sie gesehen, dass es nur für eine Teilmenge von Eingaben funktioniert, versuchen Sie es erneut! – leppie

+0

Wie berechnen wir diese A, E und DSR Variablen? – Burhan

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;