• 目标
分析股票交易数据。
数据来源:访问URL”http://quotes.money.163.com/stock”
页面右侧输入股票名称或者代码,按“股票查询”按钮:
新页面中间点击:
新页面右侧:
点击下载,即可下载有关的数据(只要勾选“收盘价”“,下载的文件中将自动包含”“日期,股票代码,名称,收盘价”字段,测试时将使用这种格式的数据文件)。可以用notepad打开下载的数据文件(后缀名为csv),以便更清楚了解其中的内容结构。
下载其中的任意一只股票数据,写程序对其进行分析。要求首先识别出每一个的“变换点”。如果第n天的收盘价高于第n-1天的收盘价,而第n+1天的收盘价又低于第n天的收盘价,则称第n天为“向下变换点”。如果第n天的收盘价低于第n-1天的收盘价,而第n+1天的收盘价又高于第n天的收盘价,则称第n天为“向上变换点”。以下为例子数据(其中省略了股票代码和股票名称):
2020-05-22
55.62
变换点
2020-05-21
57.01
2020-05-20
57.38
2020-05-19
58.02
向下
2020-05-18
57.99
2020-05-15
57.93
向上
2020-05-14
58.57
向下
2020-05-13
58.39
向上
2020-05-12
59.0
向下
2020-05-11
58.21
2020-05-08
56.99
2020-05-07
54.1
向上
2020-05-06
54.46
按时间顺序的变换点序列为:“向上”-“向下”-“向上”-“向下”-“向上”-“向下”
接下来做以下分析:
分析1:给定一个时间段的交易数据,要求查询变换点序列与之相同的所有时间段。例如以下时间段是与上述时间段变换点序列相同的时间段。
1996-11-29
‘000651
格力电器
47.8
1996-11-28
‘000651
格力电器
48.1
向下
1996-11-27
‘000651
格力电器
46.9
向上
1996-11-26
‘000651
格力电器
47.86
1996-11-25
‘000651
格力电器
48.0
1996-11-22
‘000651
格力电器
48.5
向下
1996-11-21
‘000651
格力电器
47.95
向上
1996-11-20
‘000651
格力电器
49.45
向下
1996-11-19
‘000651
格力电器
48.8
向上
1996-11-18
‘000651
格力电器
50.0
程序运行效果如下:
分析2:根据上述变换点数据构造一棵“交易变换树”。
“交易变换树”是一棵二叉树,其根为所有变换点中收盘价最高的一个(如果有n个最高点,则任选其中的一个),根的左孩子是从根所对应的交易区间的起点到根之前一天的交易区间构造的“交易变换树”,根的右孩子是从根的后一天到根所对应的交易区间的最后一天的交易区间构造的“交易变换树”。然后按二叉树的结构输出“交易变换树”的1~4层(即每个结点的左孩子在它的左下侧,右孩子在它的右下侧,左孩子结点的数据前标‘L’,右孩子结点的数据前标‘R’)。
例如上述数据对应的“交易变换树”如下:
二、实验报告要求
除提交程序文件(与平时作业相同)外,要求提交实验报告。
实验报告的内容为逐条的“遇到的问题”和“解决方案”,例如:
遇到的问题1:文件中的记录是按时间逆序的,也就是读文件数据时是按n到1天的顺序读的,而分析时要按第1到n天的顺序分析。
解决方案:…
遇到的问题2:运行速度太慢
解决方案:优化的地方(每个优化的地方可以写一条)
三、提示
先用较少的数据运行测试,并人工验证,然后再尝试更大的数据量