본문 바로가기
Quant

퀀트, 파이썬 / 기초코드 저장소(1) / Numpy -financial, numpy (npv, irr, 기하평균, 산술평균, 기댓값, 가중평균)

by KTC_CHANCE 2022. 6. 16.
 

*해당 게시글은 2022.06.16 파이썬 금융코드 작성본을 업로드한 게시글입니다.

 
 
[NPV]
*NPV : 투자할 돈대비 나중에 벌어들일 수익을 고려했을때 어느정도의 현재가치가 있는지 판단요소
(Net present value)
 
import numpy_financial as npf
r = 0.015
cf = [-70000,12000,15000,18000,21000,26000]
npv = npf.npv(r,cf)
print(result)
 

[IRR]

*IRR : 투자할 돈대비 나중에 벌어들일 수익을 고려했을때 어느정도의 할인율이 나와야지 똔똔이 되는지 여부

(IRR은 NPV가 0이 될경우의 할인율을 뜻함)

import numpy_financial as npf
cf = [-70000,12000,15000,18000,21000,26000]
irr = npf.irr(cf)
print(irr)

 

[산술평균]
*산술평균 : 수익률 N빵
 
# 산술평균
returns = [0.1, 0.06, 0.05]

# for 구문 사용
SOR = 0
arimean = 0

# 기간
terms = len(returns)

for r in returns:
   SOR = SOR + r

arimean = SOR/terms
print("산술평균은 {0:0.4f} 이다".format(arimean))

 

[기하평균]

*기하평균 : 해당수익률을 곱한후 해당연도만큼 나눠서 표현

#기하평균
returns = [0.1, 0.06, 0.05]
geomean = 1

#for 구문 사용
for r in returns :
    geomean = geomean *(1+r)

geomean = geomean**(1/terms)-1

print("기하평균은 {0:0.4f} 이다.".format(geomean))

 

[기댓값 구하기]

#기댓값 구하기 (1)
from unittest import case
import numpy as np
a = np.array([1,2,3,4,5,6])
print(a.mean())

#기댓값 구하기 (2)
case = [1,2,3,4,5,6]
prob = [1/6, 1/6, 1/6, 1/6, 1/6, 1/6]
ex =0.0
for c,p in zip(case, prob) :
    ex = ex + c*p
print(ex)


#기댓값 구하기 (2-2)
case = [1,2,3,4,5,6]
prob = [1/6, 1/6, 1/6, 1/6, 1/6, 1/6]
ex=sum(c*p for c, p in zip(case, prob))
print(ex)

 

[이동평균선]

#이동평균 구하기
prices = [44800, 44850, 44600, 43750, 44000, 43900, 44350, 45350, 45500, 45700]
n=5

for p in prices[n:]:
    end_index = prices.index(p)
    begin_index = end_index - n
 
#소수점 없애기 format 함수사용
    print('{0:0.0f}'.format((sum(prices[begin_index:end_index])/n)))

 

[가중평균]

#가중평균 구하기
scores = [82,90,76]
weight = [0.2, 0.35, 0.45]

wgt_avg = 0.0

for a,b in zip(scores, weight) :
    wgt_avg = wgt_avg + a*b

print("가중평균 값은 {} 입니다.".format(wgt_avg))
 

 

#가중평균 구하기 2
scores = [82,90,76]
weight = [0.2, 0.35, 0.45]

wgt_avg= sum(a*b for a,b in zip(scores, weight))
print("가중평균 값은 {} 입니다.".format(wgt_avg))

댓글