[Numpy-discussion] add xirr to numpy financial functions?
Mon May 25 22:29:02 CDT 2009
I haven't read all the messages in detail, and I'm a consumer not a
producer, but I'll comment anyways.
I'd love to see additional "financial" functionality, but I'd like to
see them in a scikit, not in numpy. I think to be useful they are too
complicated to go into numpy. A couple of my many reasons:
1. Doing a precise, bang-up job with dates is paramount to any
interesting implementation of many financial functions. I've found
timeseries to be a great package - there are some things I'd like to
see, but overall it is at the foundation of all of my financial
analysis. Any moderately interesting extension of the current
capabilities would rapidly end up trying to duplicate much of the
timeseries functionality, IMO. Rather than partially re-implement the
wheel in numpy, as a consumer I'd like to see financial stuff built on
a common basis, and timeseries would be a great start.
2. I've read enough of this discussion to hear a requirement for both
good date handling and capable solvers - just for xirr. To do a
really interesting job on an interesting amount of capability requires
even more dependencies, I think.
Although it might be tempting to include a few more "lightweight"
financial functions in numpy, I doubt they will be that useful. Most
of the lightweight ones are easy enough to whip up when you need
them. Also, an approximation that's good today isn't the right one
tomorrow - only the really robust stuff seems to survive the test of
time, in my limited experience. A start on a really solid scikits
financial package would be awesome, though.
A few months ago, when the open source software for pricing CDS's was
released (http://www.cdsmodel.com/information/cds-model) I took a look
and noticed that it had a ton of code for dealing with dates. (I also
didn't see any tests in the code. I wonder what that means. Scary
for anybody that might want to modify it.) I thought if I had an
extra 100 hours in every day it would be fun to re-write that code in
numpy/scipy and release it.
More information about the Numpy-discussion