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
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
相关文章推荐
- Basic OOP in Python
- A Basic Website Crawler, in Python, in 12 Lines of Code. « Null Byte
- the basic operation of sequence in python
- A Basic Example of Threads Synchronization in Python, python中的线程同步示例
- python basic configuration in linux
- basic algorithm in python
- OOP Concepts in Python 2.x - Part 1
- OOP in python DEMO
- OOP Concepts in Python 2.x - Part 2
- basic knowledge in python (1)
- Mistakes in Python
- Mini-project # 4 - "Pong"___An Introduction to Interactive Programming in Python"RICE"
- Python Version 2.7 required which was not found in the registry
- make a copy of list in python
- A daemon process class in python
- Top 400 Python Projects in Github
- A simple unix/linux daemon in Python
- how to clear screen in python shell
- Pro Deep Learning with TensorFlow: A Mathematical Approach to Advanced Artificial Intelligence in Python
- [leetcode: Python]24. Swap Nodes in Pairs