Meine Anwendung muss XIRR berechnen, aber ich kann nicht Excel verwenden, da es auf Linux ausgeführt wird, kann jemand den Logik- oder Java-Code zur Berechnung von XIRR ohne Excel verwenden.Java-Programm zur Berechnung XIRR ohne Excel oder andere Bibliothek
1
A
Antwort
2
wie in der Post angegeben: xirr-calculation in c#
Nach XINTZINSFUSS Dokumentationsfunktion Open Office (Formel ist das gleiche wie in Excel) Sie XINTZINSFUSS Variable im folgenden f (XINTZINSFUSS) Gleichung lösen müssen: xirr equation
Ich übertrage einfach den C# -Code in Java und es funktioniert gut ohne zusätzliche Bibliotheken. Auch für den Datumsunterschied. Aber im Produktionscode werden Sie etwas wie Apache Common verwenden.
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class XirrDate {
public static final double tol = 0.001;
public static double dateDiff(Date d1, Date d2){
long day = 24*60*60*1000;
return (d1.getTime() - d2.getTime())/day;
}
public static double f_xirr(double p, Date dt, Date dt0, double x) {
return p * Math.pow((1.0 + x), (dateDiff(dt0,dt)/365.0));
}
public static double df_xirr(double p, Date dt, Date dt0, double x) {
return (1.0/365.0) * dateDiff(dt0,dt) * p * Math.pow((x + 1.0), ((dateDiff(dt0,dt)/365.0) - 1.0));
}
public static double total_f_xirr(double[] payments, Date[] days, double x) {
double resf = 0.0;
for (int i = 0; i < payments.length; i++) {
resf = resf + f_xirr(payments[i], days[i], days[0], x);
}
return resf;
}
public static double total_df_xirr(double[] payments, Date[] days, double x) {
double resf = 0.0;
for (int i = 0; i < payments.length; i++) {
resf = resf + df_xirr(payments[i], days[i], days[0], x);
}
return resf;
}
public static double Newtons_method(double guess, double[] payments, Date[] days) {
double x0 = guess;
double x1 = 0.0;
double err = 1e+100;
while (err > tol) {
x1 = x0 - total_f_xirr(payments, days, x0)/total_df_xirr(payments, days, x0);
err = Math.abs(x1 - x0);
x0 = x1;
}
return x0;
}
private static SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
public static Date strToDate(String str){
try {
return sdf.parse(str);
} catch (ParseException ex) {
return null;
}
}
public static void main(String... args) {
double[] payments = {-1151250,232912,233123,233336,233551,233768}; // payments
Date[] days = {strToDate("11/11/2015"),strToDate("25/11/2015"),strToDate("25/12/2015"),strToDate("25/01/2016"),strToDate("25/02/2016"),strToDate("25/03/2016")}; // days of payment (as day of year)
double xirr = Newtons_method(0.1, payments, days);
System.out.println("XIRR value is " + xirr);
}}
+0
Dies hat 365 hart-codiert. Bedeutet dies, dass Schaltjahre nicht unterstützt werden? – dukethrash
Verwandte Themen
- 1. Bibliothek oder Algorithmus zur Berechnung sichtbarer GPS-Satelliten
- 2. Algorithmus zur Berechnung Binomialkoeffizient
- 3. Berechnung von Javascript Bibliothek Ladezeiten
- 4. Excel Formel Berechnung 70
- 5. Bibliothek ohne Gradle oder Maven hinzufügen
- 6. Kostenlose JPEG2000-Bibliothek oder SDK zur Dekomprimierung
- 7. Algorithmus zur RFC-Berechnung in Java
- 8. Mit scipy zur Berechnung von ganzzahligen Zeitreihendaten ohne Funktion
- 9. Methode zur Berechnung von Arbeitstagen
- 10. scipy.stats.binned_statistcs zur Berechnung der Standardabweichung
- 11. Excel-Rolling 6-Monats-Berechnung
- 12. Kleine RSA oder DSA-Bibliothek ohne Abhängigkeiten
- 13. Funktion zur Berechnung des Alters
- 14. C-Programm zur Berechnung faktoriellen
- 15. zur Ausgabe Berechnung zu HTML
- 16. Häufigste Methode zur Berechnung der Linienkreuzung C++?
- 17. . NET Open-Source-Grid-Berechnung Bibliothek
- 18. Andere Bibliothek #define Namenskonflikt
- 19. zooming Kamera in drei Jahren ohne Trackball Kontrollen oder andere Kamerasteuerung Bibliothek
- 20. RoR: has_one "oder der andere"? (Oder, Polymorphie ohne die Vererbung.)
- 21. Regex zur Berechnung der geraden Pokerhand?
- 22. GPS V.S. Beschleunigungssensor zur Berechnung der Entfernung
- 23. Django, Twitter Streaming API (mit Twython oder andere Bibliothek) bezogen
- 24. AS3 (oder eine andere Sprache) trig Bibliothek für Dreiecke?
- 25. Schnellste Möglichkeit zur Berechnung der Verzeichnisgrößen
- 26. JS-Funktion zur Berechnung der Komplementärfarbe?
- 27. Berechnung in Modell oder Controller
- 28. javascript Formel zur Berechnung des Vektors normalen
- 29. Mips Programm zur Berechnung sin (x)
- 30. Excel Automatische Berechnung nur auf der Blattebene
Ich fand die Logik aus dem Internet. – sskini