全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 量化投资
6096 5
2018-10-24

攒了几天,发一个大的.这是前几天投了一家量化分析职位,他给的题目的是写神经网络择时模型,大概就是用神经网络预测收盘价

database:该类用于获得新浪网中的数据,并将其放入本地数据库。在本地数据库中建立两个表,分别是Data2012to2015和Data2015to2016,表中都含有日期,当日开盘价、当日收盘价、当日最高价、当日最低价。Data2012to2015为训练数据集,Data2015to2016为测试数据集。

Methods:由于java没有现成的包可以直接得出某只股票的波动率指标、短期和长期均线指标等指标,由于一些指标在网上没有找到,例如动量和反转指标:REVS5,就用了动量指标MTM。所以在百度百科等资料中搜集了一些公式, 分别对这些公式编写代码,就能观测到的数据来说,是准确的。

最后采用了8个指标,分别是波动率指标:EMV;短期和长期均线指标:EMA5和EMA60,MA5和MA60;动量指标MTM;量能指标:MACD;能量指标:CR5.以这8个指标为自变量,收盘价为因变量建立神经网络模型。

BPnet:这里想建立输入单元为8个,两层隐含层,每个隐含层为13个单元,输出层单元为1的神经网络。

首先初始化输入层到隐含层,隐含层之间,以及隐含层到输出层的权重矩阵;

其次利用权重矩阵和输入层分别计算出每个隐含层节点数据

之后利用计算得出的输出层数据与真实值进行比较,并逐层调节权重;

反复上述过程直至精度达到要求或是达到迭代次数的要求;

这里设置迭代次数为5000次;

利用的测试数据集为Data2012to2015

下图为训练之后的模型对Data2012to2015自身进行拟合的效果:(这里由于自变量大概是10左右的数据,所以在利用激活函数1/(1+e^-ax))时,a取了0.01

从图中可以看出2012年初,股市变化幅度很大时,模型拟合效果稍差,但总体拟合效果较好。(红线表示拟合曲线,蓝线表示真实收盘价)

测试数据集采用的是Data2015to2016,即2015年至2016年数据,拟合拟合效果如下:

6067ebab43838e51f2b90e554d9c4096_785039-20161216172027979-1906559855.jpg

从图中可以看出曲线可以拟合大致趋势,但是不能很好的拟合波动,可能是由于对训练数据集过渡拟合的原因。


BackProce:该类计算了如果按照神经网络模型对该股票进行操作的结果,采用的策略是,如果下一天的预测值高于当天的收盘价,就买入,低于就卖出,设置初始账户金额为10000.

可得到最后的收益率为0.18364521221914928,账户金额为:11836.452122191493。

累计收益率如下图:


3bfbf19f6c994f59a7e88b734a5274f7_785039-20161216172108792-933458238.jpg

缺点:1、只能绘制基本图像,没有找到方法将特殊点标出,如:能够获取在什么时间点买入,但是不知怎么在特定点用其他颜色标出。

2、神经网络模型对训练数据拟合很好,但是对测试数据拟合效果不佳,猜测原因可能是过拟合或是有些其他主要的变量因素没有考虑进去。

源代码如下:

源代码.txt
大小:(24.53 KB)

只需: 10 个论坛币  马上下载


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-10-24 14:22:13
谢谢分享,优秀
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-10-24 14:49:53
谢谢分享,虽然不认可股价可以预测
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-11-1 17:21:01
谢谢分享,优秀
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-7-24 07:07:08
可以预测股价的高低点吗
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-8-26 15:06:43
谢谢分享
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群