Основная финансовая библиотека для Python

Я ищу финансовую библиотеку для Python, который позволит мне сделать анализ дисконтированного денежного потока. Я озирался и нашел QuantLib, который является излишеством для того, что я хочу сделать. Мне просто нужна небольшая библиотека, которой я могу пользоваться, чтобы ввести серию потоков наличности и иметь ее, произвел чистую приведенную стоимость и внутреннюю рентабельность. Кто-либо имеет что-то вроде этого или знает, где я могу найти его?

8
задан Robert Schmidt 13 February 2010 в 22:40
поделиться

2 ответа

Просто для полноты картины , так как я опаздываю: numpy имеет некоторые функции для (очень) основных финансовых расчетов. numpy, scipy также можно использовать для выполнения расчетов по базовым формулам, как в R.

чистая приведенная стоимость денежного потока

>>> cashflow = 2*np.ones(6)
>>> cashflow[-1] +=100
>>> cashflow
array([   2.,    2.,    2.,    2.,    2.,  102.])
>>> np.npv(0.01, cashflow)
105.79547647457932

получить внутреннюю ставку или доходность

>>> n = np.npv(0.01, cashflow)
>>> np.irr(np.r_[-n, cashflow])
0.010000000000000231

только основы:

>>> [f for f in dir(np.lib.financial) if not f[0] == '_']
['fv', 'ipmt', 'irr', 'mirr', 'np', 'nper', 'npv', 'pmt', 'ppmt', 'pv', 'rate']

и необходимо следите за тем, какое время.

12
ответ дан 5 December 2019 в 11:24
поделиться

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

Я использую R гораздо больше, чем Python, поэтому вот решение R:

R> data <- data.frame(CF=c(rep(2,5), 102), df=1.01^(-(1:6)))
R> data
   CF     df
1   2 0.9901
2   2 0.9803
3   2 0.9706
4   2 0.9610
5   2 0.9515
6 102 0.9420
R> NPV <- sum(data[,1] * data[,2])
R> print(NPV)
[1] 105.8
R> 

Это устанавливает структуру данных с двумя столбцами денежных потоков и коэффициентов дисконтирования и вычисляет NPV как сумму продуктов. Таким образом, (упрощенная) шестилетняя облигация с купоном 2% и плоской кривой доходности 1% будет стоить 105,80.

Для IRR мы делаем примерно то же самое, но делаем NPV функцией ставки:

R> irrSearch <- function(rate) { data <- data.frame(CF=c(rep(2,5), 102), 
                                 df=(1+rate/100)^(-(1:6))); 
                                 100 - sum(data[,1] * data[,2]) }
R> uniroot( irrSearch, c(0.01,5) )
R> irr <- uniroot( irrSearch, c(0.01,5) )
R> irr$root
[1] 2
R> 

Итак, «корень» для поиска внутренней нормы доходности 2% облигаций в мире с плоской кривой - это ... неудивительно, что 2%.

3
ответ дан 5 December 2019 в 11:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: