百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python大数据与量化交易-1-1-2-Python图表

moboyou 2025-05-21 14:36 26 浏览

代码主要实现了复利投资模拟功能。首先定义了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

相关推荐

Node.js 获取文件信息及路径(node.js怎么获取当前文件路径)

获取文件信息每个文件都有一组细节,我们可以使用Node.js进行检查。特别是使用fs模块提供的stat()方法。constfs=require('fs');fs.stat(&#...

深入剖析JavaScript中深浅拷贝(js实现深浅拷贝)

大家好,我是Echa。最近有一位00后的小妹妹粉丝私信小编说自己很喜欢编程,目前在某公司实习前端开发工作,说到现在为止还没有搞懂JavaScript中深拷贝和浅拷贝这个问题,同时也在网上看了很多关于深...

为什么高手写 JS 总是又快又好?这10个技巧你要知道

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!JavaScript是前端开发的重要语言...

IT技术栈:Javascript神器,URL.createObjectURL()

URL.createObjectURL()是JavaScript中的一个方法,用于创建一个特殊的URL,该URL可以用于将不支持直接加载的数据(如二进制数据或Blob对象)嵌入到we...

如何在 Linux 中创建和管理组?(linux如何建立组)

在Linux中,组是用户账户的集合,用于统一管理权限。每个用户至少属于一个主组(PrimaryGroup),还可以加入多个附加组(SupplementaryGroup)。组的权限设置决定了用户对文...

付费文库内容无法复制,不用任何工具,学会这4种方法轻松复制

关注职场办公,分享实用干货,洞察科技资讯,这里是「职场科技范」。我们在搜索资料的时候,看到非常有用的文库,但往往都是付费的,只能看不能复制。今天就来教大家,学会下面这4种方法,轻松复制文库内容。一、内...

node.js v24.0.0 正式发布!10大重磅更新助力开发者,性能大幅提升

近日,Node.js官方团队正式发布了Node.jsv24.0.0版本,这是一个具有里程碑意义的重大更新。作为"Current"版本,它将在未来六个月内引领Node.js...

我理解的网站产品经理之四:网站产品前端姿势

来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。2016年了,嗨,大家新年好。作为一个网页的产品经理,网页的前端知识可谓是不能不知,本文主讲网站产品的前端姿势。通常,...

五一我要看七天小说!免费开源的轻量化书库talebook搭建流程。

这次来分享一个简单阅读项目:TaleBook,项目曾用名calibre-webserver。TaleBook是一个基于Calibre的简单的个人图书管理系统,支持在线阅读。不过鉴于各种规章制度,仅...

“5 分钟 CMake 使用指南,解决我的 C++ 打包问题!”

在软件开发的世界里,构建系统扮演着至关重要的角色,它不仅决定了项目的构建效率,还直接影响到团队协作的流畅度。对于许多C++开发者而言,CMake因其强大的功能和广泛的兼容性成为了构建自动化流程的...

大佬级鬼才终于把JavaScript整理成了修仙小说,让学习变简单

这是一本讲解JavaScript编程语言的技术书籍,只不过,本书采用了一种全新的写作手法。如果你厌倦了厚厚的、如同字典般的编程书籍,不妨尝试一下新的口味,话不多说,直接上干货!目录截图:内容展示:以上...

JavaScript基础知识点总结(javascript基础入门教程)

//逗比小憨憨/*第一章*HTML引用js方法:*1,外部引用:HTML外部引用js:<scriptsrc="js/day1.js"></script>*2,...

在Node.js中处理Zip文件(node运行js文件)

作者:疯狂的技术宅转发链接:https://mp.weixin.qq.com/s/edJd9-t1AyTGRcha_1k6RA前言Zip文件是常用的压缩文件格式。在本文中,我将演示如何用adm-...

Python 标准库中鲜为人知的宝藏 | Node.js 22.8.0 发布

Python标准库中鲜为人知的宝藏Python标准库功能强大,但有些模块却鲜为人知。本文将介绍一些有趣且实用的模块,助你提升代码效率和功能。数据结构:超越列表和字典除了常用的列表和字典,coll...

小程序,wxml页面里如何写JS代码?WXS如何模块化?

这篇接着上篇小程序,跳转页面的两种方式及其页面传参数继续讲,小程序wxml页面里如何写JS代码?wxs如何模块化?第一个问题:wxml页面要想类似HTML页面中写js代码,必须在页面中使用wxs标...