1、导入库:import mpl_finance as mf
2、调用
3、测试代码
import numpy as np
import matplotlib.pylab as mp
import matplotlib.dates as md
import mpl_finance as mf
import datetime as dt
def dmy2ymd(dmy):
dmy = str(dmy, encoding='utf-8')
# 利用python能够解析日-月-年的时间格式,来解析成时间信息,再转化成年-月-日的numpy时间格式
date = dt.datetime.strptime(dmy, '%d-%m-%Y').date() # 得到日期子对象
ymd = date.strftime('%Y-%m-%d') # 将时间信息格式化成字符串
return ymd
# 读取数据:skiprows=1表示跳过第一行(表头字段)
dates, opening_prices, high_prices, lowest_prices, closing_prices = np.loadtxt(
'0=数据源/beer_price.csv',delimiter=',',
usecols=(0, 1, 2, 3, 4), unpack=True,
dtype='M8[D], f8, f8, f8, f8',
skiprows=1,
converters = {0:dmy2ymd}
)
# 图像基本参数
mp.figure('Candlestick', facecolor='lightgray')
mp.title('Candlestick', fontsize=20)
mp.xlabel('Date', fontsize=14)
mp.ylabel('Price', fontsize=14)
# 与日期相关的主定位器
ax =mp.gca()
ax.xaxis.set_major_locator(md.MonthLocator(), )
# 定位器格式
ax.xaxis.set_major_formatter(md.DateFormatter('%Y %m %d'))
mp.tick_params(labelsize=10)
mp.grid(linestyle=':')
# 时间转换与数据处理
dates = dates.astype(md.datetime.datetime)
dates = md.date2num(dates)
# 将取出的数据合并成一个二维数组
ohlcs = np.column_stack((dates, opening_prices, high_prices, lowest_prices, closing_prices))
# 绘制K线图
mf.candlestick_ohlc(mp.gca(), ohlcs, 0.8, 'dodgerblue', 'limegreen')
mp.gcf().autofmt_xdate()
mp.show()
1、终值计算
2、现值计算
3、净现值计算
1、内部收益率计算
2、每期支付
3、待还期数计算
4、利率计算
import numpy as np
# 计算终值
print('-----------------终值-------------------')
fv = np.fv(0.02, 5, -100, -1000)
print(round(fv, 2))
# 通过终值回算现值
print('-----------------现值-------------------')
pv = np.pv(0.02, 5, -100, fv)
print(pv)
# 求净现值
print('-----------------净现值-------------------')
npv = np.npv(0.02, [-1000, -100, -100, -100, -100, -100])
print(round(npv, 2))
# 验算净现值:每年存入为0
ffv = np.fv(0.02, 5, 0, npv)
print(round(ffv, 2))
# 求内部收益率
print('-----------------内部收益率-------------------')
irr = np.irr([-1000, 100, 200, 300, 400, 500])
print(round(irr, 2))
# 验算内部收益率
nnpv = np.npv(irr, [-1000, 100, 200, 300, 400, 500])
print(round(nnpv, 2))
# 求每期支付
print('-----------------每期支付-------------------')
pmt = np.pmt(0.02, 5, 1000)
print(round(pmt, 2))
# 多少期还清
print('-----------------还清期数-------------------')
nper = np.nper(0.02, pmt, 1000)
print(nper)
# 年利率是多少
print('-----------------年利率-------------------')
rate = np.rate(nper, pmt, 1000, 0)
print(round(rate, 2))