您的位置:首页 > 编程语言 > Python开发

Basic OOP in Python

2015-05-07 13:38 423 查看
Short rate class

import numpy as np
import matplotlib.pyplot as plt

class short_rate(object):
def __init__(self, name_, rate_):
self.name = name_
self.rate = rate_

def get_df(self, time_list):
time_list = np.array(time_list)
return np.exp(-self.rate*time_list)

r = short_rate('federal fund rate', 0.15)

cfs = np.array([-100, 50, 75])
time_list = [0.0, 0.5, 1.0]
dfs = r.get_df(time_list)
pv = cfs*dfs
print pv.sum()
Cash flow class

class cash_flow_series(object):
def __init__(self, name, time_list, cash_flow_list, interest_rate):
self.cfname = name
self.times = np.array(time_list)
self.cashes = np.array(cash_flow_list)
self.r = interest_rate

def pv(self):
dfs = self.r.get_df(self.times)
return dfs*self.cashes

def net_pv(self):
return self.pv().sum()Further generalization
class cfs_sensitivity(cash_flow_series):
def __init__(self, name, time_list, cash_flow_list, interest_rate):
self.cfname = name
self.times = np.array(time_list)
self.cashes = np.array(cash_flow_list)
self.r = interest_rate

def npv_sensitivity(self, rate_list):
npvs = []
for rate in rate_list:
self.r = short_rate('hypothetical risk free rate', rate)
npvs.append(self.net_pv())
return npvs
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: