2010-02-13 22 views
8

저는 현금 흐름 분석을 할인 할 수있는 Python 용 재무 라이브러리를 찾고 있습니다. 나는 주변을 둘러 보았고, 내가하고 싶은 일에 과잉 인 QuantLib를 발견했다. 난 일련의 현금 흐름을 입력하고 순 현재 가치와 내부 수익률을 출력 할 수있는 작은 도서관이 필요합니다. 누구나 이런 식으로 뭔가를 찾거나 찾을 수있는 곳을 아십니까?Python 용 기본 금융 라이브러리

답변

12

나는 완벽하기 때문에, 늦었 기 때문에 : 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'] 

타이밍이 무엇인지주의해야합니다.

+0

재정 수업 중 np의 irr 메소드를 파이썬으로 변환 할 수 있다면 정말 재미 있습니다. – moldovean

3

실제 현재 가치 (= 현금 흐름 및 할인 요인에 대한 벡터의 내재적 산물)와 내부 수익률 (== 하나의 변수에 대한 간단한 반복적 루트 검색) 만 계산하려는 경우 그것.

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를 계산 :

나는 R 그래서 여기에 파이썬보다 훨씬 더는 R 솔루션으로 사용합니다. 따라서 1 %의 일률 수익률 곡선에서 2 % 쿠폰을 가진 (단순한) 6 년 만기 채권은 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> 

을 A의 2 % 채권의 내부 수익률에 대한 검색에 '루트' 평평한 곡선 세계는 놀랄만큼 2 %입니다.

+0

이 라이브러리를 참조하십시오 : http://rpy.sourceforge.net/index.html 그렇게하면 많은 추가 작업없이 Python에서 R을 호출 할 수 있습니다. –

+1

그래,하지만 그건 유지 관리 모드에 있습니다. 대신 최신 RPy2를 사용하는 것이 현명 할 수 있습니다. –

관련 문제