Python大数据与量化交易-1-1-2-Python图表
代码主要实现了复利投资模拟功能。首先定义了sta001函数计算复利终值,考虑每年投入和复利增长。主程序部分先计算了 40 年总投入金额,然后对比了保守(5% 年利率)和激进(20% 年利率)两种投资模式 39 年后的收益情况,显示激进模式收益约为保守模式的 17 倍,体现了复利的力量。接着生成了四种不同年利率(5%、10%、15%、20%)下 0 到 39 年的复利终值数据,存入 DataFrame 并打印末尾几行。最后绘制了四种利率下收益随时间变化的曲线图,直观展示了不同利率对投资收益的影响,帮助用户理解复利投资的长期效应。
# 导入数值计算库numpy,用于数学计算
import numpy as np
# 导入数据处理库pandas,用于数据结构和分析
import pandas as pd
# 导入绘图库matplotlib,用于数据可视化
import matplotlib as mpl
# 导入绘图接口pyplot,提供类似MATLAB的绘图方式
import matplotlib.pyplot as plt
# =======================
# 设置matplotlib使用seaborn风格的白色网格背景
mpl.style.use('seaborn-whitegrid');
# 复利终值计算函数
def sta001(k, nyear, xd):
# k: 年利率,nyear: 投资年数,xd: 每年投入金额
# 计算复利终值(未来值),考虑每年投入和复利增长
d2 = np.fv(k, nyear, -xd, -xd);
# 结果四舍五入取整
d2 = round(d2)
return d2
# =======================
# 计算40年每年投入1.4的总投入金额
d40 = 1.4 * 40
print("d40,40 x 1.4=", d40)
# 计算保守投资模式(5%年利率)39年后的复利终值
d = sta001(0.05, 40-1, 1.4);
print("01保守投资模式,", d, round(d/d40))
# 计算激进投资模式(20%年利率)39年后的复利终值
d2 = sta001(0.20, 40-1, 1.4);
print("02激进投资模式,", d2, round(d2/d40))
# 计算两种投资模式的结果倍数差异
dk = round(d2/d)
print("dk,两者差别(xx倍):", dk)
# 生成不同年利率下0-39年的复利终值数据
dx05 = [sta001(0.05, x, 1.4) for x in range(0, 40)]
dx10 = [sta001(0.10, x, 1.4) for x in range(0, 40)]
dx15 = [sta001(0.15, x, 1.4) for x in range(0, 40)]
dx20 = [sta001(0.20, x, 1.4) for x in range(0, 40)]
# 创建DataFrame存储不同利率的复利终值数据
df = pd.DataFrame(columns=['dx05', 'dx10', 'dx15', 'dx20']);
df['dx05'] = dx05; df['dx10'] = dx10;
df['dx15'] = dx15; df['dx20'] = dx20;
# 打印空行分隔输出
print("")
# 打印DataFrame的最后几行数据
print(df.tail())
# 使用默认设置绘制各利率下复利终值随时间的变化曲线
df.plot();
runfile('D:/zwPython/zwrk/6_零起点Python机器学习与量化交易/k101dr.py', wdir='D:/zwPython/zwrk/6_零起点Python机器学习与量化交易')
d40,40 x 1.4= 56.0
01保守投资模式, 169.0 3.0
02激进投资模式, 10281.0 184.0
dk,两者差别(xx倍): 61.0
dx05 dx10 dx15 dx20
35 134.0 419.0 1420.0 4955.0
36 142.0 462.0 1634.0 5947.0
37 151.0 510.0 1881.0 7138.0
38 160.0 562.0 2165.0 8567.0
39 169.0 620.0 2491.0 10281.0