基于C++实现的股票大数据的统计分析与可视化

资源下载地址:https://download.csdn.net/download/sheziqiong/85709010
资源下载地址:https://download.csdn.net/download/sheziqiong/85709010

需求分析

给定大规模数据集,包含美国股市和中国股市的每日行情数据,编写 C++程序完成要求的数据处理、分析和可视化等任务。

计算涨跌额和涨跌幅:

计算每只股票每日的涨跌额和涨跌幅。计算公式如下:

涨跌额 = 今日收盘价 – 昨日收盘价 涨跌幅 = (涨跌额 / 昨日收盘价)* 100%

将计算出的涨跌额和涨跌幅添加到原来的数据集中,即新增两列,存成文件。

外排序:

将每日股票行情数据按照涨跌幅从大到小排列,日期由近及远。即对数据集按照日期和涨跌幅两列进行降序排列,先排日期,最靠近现在的日期排在最前;再对同一日内的所有股票行情按照涨跌幅的降序排列。

计算夏普比率:

计算每只股票每年内涨跌幅的平均值和标准差,这里视为股票的年平均收益和标准差,用年平均收益除以标准差计算出该股票该年的夏普比率。

输出某月单日涨跌幅最大的 k 条股票交易数据:

对某一个指定的单月份的数据(已划分好的单月份数据的外部存储),进行外部排序。

排序的关键字为涨跌幅 的绝对值,按降序排序。指定单月份后(例如 2020 年 06 月),访问读取并排序单月份数据(如 2020-06.csv),单日涨跌幅最大的 k 条股票交易数据。严格限制内存大小(最多使用 10M 内存空间),通过检查 Windows 任务管理器的监控内存占用并测试。

可视化:

任意选择某时间段(365 天)内,夏普比例最高的 10 只股票,使用 QT 和外部库画出他们在指定期间(1 年)的日 K 线图。

基本思路:

功能1:使用c++文件读写就能完成,主要注意的是字符串的赋值复制等操作;

功能2:排序使用快排,自定义比较器;有一种读写文件特别方便的方式就是将文件按照二进制来读写;然后为了使外排序的复用率更高,使用一个status参数来决定每次使用的比较函数;

功能3:使用两个参数来记录上一次的时间和股票名,当时间过了一年之后就计算一次夏普率然后写入,股票类型变化时也需要写入;

功能4:在分割文件之前,利用外排序2号比较器生成一个按照涨跌幅降序得到的外排序文件,然后再把该文件分割为每个月份,这样根据输入参数年、月和k就可以直接读文件进行输出。

功能5:利用外部库实现。

代码中包含const、static、类的继承、复制构造等

可视化:

调试分析

UML类图:

系统流程图:

实验结果:

功能1 实现涨跌额涨跌幅的写入:

写入后文件大小位18.9G

功能二实现外排序:

下图为外排序文件,下下图为外排序结果:

功能3 :计算sharpe率:

功能4 :按时间分割数据并寻找单月涨跌额最大的TOP k条股票

2010 12 top 10 :

功能5 可视化:

拓展功能:无

附录

  • 两个工程文件:
  • Stock111.pro
  • Stock2.pro

资源下载地址:https://download.csdn.net/download/sheziqiong/85709010
资源下载地址:https://download.csdn.net/download/sheziqiong/85709010

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值