搜索
楼主: hhk

[大盘交流] 辛苦写了一个神经网络程序,效果不太好(如图)

 关闭 [复制链接]

签到天数: 37 天

发表于 2007-12-13 17:01 | 显示全部楼层
:*22*: 中国的股市随便拿一个神经病的脑电图来就可以了:*29*: :*22*:
金币:
奖励:
热心:
注册时间:
2007-7-6

回复 使用道具 举报

发表于 2007-12-13 19:15 | 显示全部楼层
辛苦了!:*19*:
金币:
奖励:
热心:
注册时间:
2006-9-12

回复 使用道具 举报

发表于 2007-12-13 19:20 | 显示全部楼层
研究过一段时间,自己也写过类似东东,在S&P上面实施效果不错,拿到国内发觉就不可行,放弃了,中国这妖市,要熟悉女
人,才能玩得转
金币:
奖励:
热心:
注册时间:
2005-6-3

回复 使用道具 举报

发表于 2007-12-13 20:08 | 显示全部楼层
原帖由 阻我者杀 于 2007-12-13 19:20 发表
研究过一段时间,自己也写过类似东东,在S&P上面实施效果不错,拿到国内发觉就不可行,放弃了,中国这妖市,要熟悉女人,才能玩得转


应该有用武之地,放弃了就太可惜了。
金币:
奖励:
热心:
注册时间:
2002-10-17

回复 使用道具 举报

发表于 2007-12-13 20:22 | 显示全部楼层
太复杂,不适合小资金使用。
金币:
奖励:
热心:
注册时间:
2006-10-7

回复 使用道具 举报

发表于 2007-12-13 20:35 | 显示全部楼层
:*10*: :*10*:  人才,楼主是人才
金币:
奖励:
热心:
注册时间:
2006-2-17

回复 使用道具 举报

签到天数: 11 天

发表于 2007-12-13 21:03 | 显示全部楼层
原帖由 hhk 于 2007-12-13 14:33 发表

你的效果太好了,但我好象拟合曲线不能太弯曲。能否说一下下载地址:hhksohupus@sohu.com


原码奉献,希望楼主搞出点东东来!:*19*:

{版权所有:嘉兴·陈(uuxp.com),Mail:cyouwei@zj.com
本人不是做编程的,也不是搞神经网络的,不过是一时兴起,研究了小波分析和神经网络,
还有Matlab7编程,了解了一些基础知识,根据网上的一些免费源码,按照自己对Bp神经网络的理解,
改用飞狐的函数写出了下面的代码。虽然本人尽了最大的努力,但是仍旧不能完全保证此程序没有BUG,
也不能保证我已完全理解并运用前向网络和误差反传的精髓;我只是试图尽量接近原本,
尽量使用精简的飞狐代码完成基本相同的事情。如有发现BUG或者更好的建议,请发邮件给我。
任何人,只要不做商业用途,可以任意复制、转载、修改、完善本页代码,但请注明原有版权。
三层网络:输入层节点数=4,输出层节点数=1,隐含层节点数=隐含层
Sigmoid,Purelin,Trainlm
有一点是使用本公式的人必须了解的,神经网络是处理非线性数据的很好工具,股价波动我们认为是非线性的,
使用BPNN处理股价,每次学习循环都会得到一个不同的结果,所以不要指望同样的数据能够得到完全相同的结果,
要做的是,根据误差值和学习的结果做出预测准确程度的判断。}
INPUT: 数据类型(4,1,4,1),隐含层(3,2,20,1),学习次数(2,1,100,1);
VARIABLE: 样本数=100, 首K线=DATACOUNT-样本数-3;
IF 首K线 < 1 THEN BEGIN
DRAWTEXTEX(ISLASTBAR,0,10,20,'股票上市时间太短,Κ线数量不足');
EXIT; {数据不足,直接退出}
END;
VARIABLE: 数据=IF(数据类型=4,C,IF(数据类型=2,H,IF(数据类型=3,L,O))), 最大=HHV(数据,样本数+3);
VARIABLE: 预测[4]=0, 权值学习率=0.02, 阀值学习率=0.02, EPOCH=0, POS=0, I=0, J=0;
VARIABLE: 权值1[隐含层*4]=RAND(10000)/10000-0.5, 权值2[隐含层]=RAND(10000)/10000-0.5;
VARIABLE: 输出2[隐含层]=0, 阀值2[隐含层]=RAND(10000)/10000-0.5, 德特2[隐含层]=0;
VARIABLE: 输出3[样本数]=0, 阀值3=RAND(10000)/10000-0.5, 德特3=0, 误差=0, 要求误差=0.2;
数据:=数据/最大*2-1; {数据归一化}
FOR EPOCH=1 TO 学习次数*10 DO BEGIN {网络学习}
误差:=0;
FOR POS=1 TO 样本数 DO BEGIN
FOR J=1 TO 隐含层 DO BEGIN
西格玛:=0;
FOR I=1 TO 4 DO 西格玛:=西格玛+数据[首K线+POS+I-2]*权值1[(J-1)*隐含层+I];
输出2[J]:=1/(1+EXP(-西格玛-阀值2[J])); {隐含层输出}
END;
西格玛:=0;
FOR J=1 TO 隐含层 DO 西格玛:=西格玛+输出2[J]*权值2[J];
输出3[POS]:=西格玛-阀值3; {学习结果,输出层输出}
德特3:=数据[首K线+POS+3]-输出3[POS];
误差:=误差+德特3*德特3; {计算误差}
FOR J=1 TO 隐含层 DO BEGIN
权值2[J]:=权值2[J]+权值学习率*德特3*输出2[J]; {调整权值}
德特2[J]:=德特3*权值2[J]*输出2[J]*(1-输出2[J]);
FOR I=1 TO 4 DO 权值1[(J-1)*隐含层+I]:=权值1[(J-1)*隐含层+I]+权值学习率*德特2[J]*数据[首K线+POS+I-2];
END;
阀值3:=阀值3+阀值学习率*德特3; {调整阀值}
FOR J=1 TO 隐含层 DO 阀值2[J]:=阀值2[J]+阀值学习率*德特2[J];
END;
误差:=误差/2;
IF 误差<=要求误差 THEN BREAK; {误差达到要求就退出,避免过度学习}
END;
{版权所有:嘉兴·陈(uuxp.com),QQ:110036737,Mail:cyouwei@zj.com}
FOR POS=1 TO 4 DO 预测[POS]:=数据[首K线+样本数-1+POS]; {取预测数据}
FOR POS=1 TO 样本数 DO 数据[首K线+POS+3]:=输出3[POS];  {返回学习结果}
FOR POS=1 TO 5 DO BEGIN {进行预测,共5个结果}
FOR J=1 TO 隐含层 DO BEGIN
西格玛:=0;
FOR I=1 TO 4 DO 西格玛:=西格玛+预测[I]*权值1[(J-1)*隐含层+I];
输出2[J]:=1/(1+EXP(-西格玛-阀值2[J]));
END;
西格玛:=0;
FOR J=1 TO 隐含层 DO 西格玛:=西格玛+输出2[J]*权值2[J];
输出3[POS]:=西格玛-阀值3;
FOR I=1 TO 3 DO 预测[I]:=预测[I+1]; {更换预测数据,提供下一次simulate}
预测[I]:=输出3[POS];
END;
BPNN: (数据+1)/2*最大,COLORYELLOW; {学习结果}
{MABP: MA((数据+1)/2*最大,5);} {也可以做适当的平均}
误差值: 误差,COLORGRAY,LINETHICK0; {误差,要求不要过大或者过小;下面是预测结果}
DRAWTEXT(ISLASTBAR,(输出3[1]+1)/2*最大,'·'),ALIGN0,SHIFT1,COLORMAGENTA,PXUP8;
DRAWTEXT(ISLASTBAR,(输出3[2]+1)/2*最大,'·'),ALIGN0,SHIFT2,COLORMAGENTA,PXUP8;
DRAWTEXT(ISLASTBAR,(输出3[3]+1)/2*最大,'·'),ALIGN0,SHIFT3,COLORMAGENTA,PXUP8;
DRAWTEXT(ISLASTBAR,(输出3[4]+1)/2*最大,'·'),ALIGN0,SHIFT4,COLORMAGENTA,PXUP8;
DRAWTEXT(ISLASTBAR,(输出3[5]+1)/2*最大,'·'),ALIGN0,SHIFT5,COLORMAGENTA,PXUP8;
金币:
奖励:
热心:
注册时间:
2006-12-25

回复 使用道具 举报

发表于 2007-12-13 21:19 | 显示全部楼层
不知道效果怎么样
金币:
奖励:
热心:
注册时间:
2007-7-4

回复 使用道具 举报

发表于 2007-12-13 22:47 | 显示全部楼层
:*22*: :*22*: :*22*:
金币:
奖励:
热心:
注册时间:
2007-8-5

回复 使用道具 举报

发表于 2007-12-13 23:00 | 显示全部楼层
都是强人,拜下,另外寒下21楼
金币:
奖励:
热心:
注册时间:
2003-3-17

回复 使用道具 举报

签到天数: 1 天

发表于 2007-12-14 00:10 | 显示全部楼层
原帖由 hhk 于 2007-12-13 12:51 发表
神经网络拟合效果不好,大家是否有什么改进建议。
输入数据是收盘价,归一处理了,采用L_M学习算法。

看上去很好啊,如果外推也是相当的结果的话。有什么问题?
金币:
奖励:
热心:
注册时间:
2003-11-6

回复 使用道具 举报

发表于 2007-12-14 01:32 | 显示全部楼层
支持楼主!希望你能有所突破!
金币:
奖励:
热心:
注册时间:
2007-8-30

回复 使用道具 举报

发表于 2007-12-14 01:32 | 显示全部楼层
支持楼主!希望你能有所突破!
金币:
奖励:
热心:
注册时间:
2007-8-30

回复 使用道具 举报

发表于 2007-12-14 02:15 | 显示全部楼层
楼主搞的东西很有用,对神经网络,有不少人努力过。希望你能有所突破!
金币:
奖励:
热心:
注册时间:
2003-12-24

回复 使用道具 举报

签到天数: 1 天

 楼主| 发表于 2007-12-14 08:43 | 显示全部楼层
原帖由 Laodaold 于 2007-12-13 21:03 发表


原码奉献,希望楼主搞出点东东来!:*19*:

{版权所有:嘉兴·陈(uuxp.com),Mail:cyouwei@zj.com
本人不是做编程的,也不是搞神经网络的,不过是一时兴起,研究了小波分析和神经网络,
还有Matlab7编 ...

非常感谢 Laodaold 的无私奉献,你的代码对我帮助很大,现在程序的外推部分还没有写好,非常感谢大家的大力支持 ,我继续开发下去,把研究结果给大家分享。

[ 本帖最后由 hhk 于 2007-12-14 09:03 编辑 ]
金币:
奖励:
热心:
注册时间:
2003-7-3

回复 使用道具 举报

签到天数: 1 天

 楼主| 发表于 2007-12-14 08:48 | 显示全部楼层
原帖由 野狐禅 于 2007-12-14 00:10 发表

看上去很好啊,如果外推也是相当的结果的话。有什么问题?

你好,我感觉现在的拟合结果就象是一条移动平均线似的,我希望能更精确的拟合价格曲线或价格的其他特征,如波动率等。
金币:
奖励:
热心:
注册时间:
2003-7-3

回复 使用道具 举报

签到天数: 1 天

发表于 2007-12-14 09:41 | 显示全部楼层
原帖由 hhk 于 2007-12-14 08:48 发表
我感觉现在的拟合结果就象是一条移动平均线似的,我希望能更精确的拟合价格曲线或价格的其他特征,如波动率等。

关键可能是目标函数的写法。你现在的目标函数是什么?
金币:
奖励:
热心:
注册时间:
2003-11-6

回复 使用道具 举报

签到天数: 17 天

发表于 2007-12-14 09:49 | 显示全部楼层
估计是 从 心理图表示的
但是 可以参考一下 庄 散 大资金 中资金的 结构来 编写
从简单到难
最好看看心理学的东西
金币:
奖励:
热心:
注册时间:
2007-6-30

回复 使用道具 举报

签到天数: 1 天

 楼主| 发表于 2007-12-14 09:57 | 显示全部楼层
原帖由 野狐禅 于 2007-12-14 09:41 发表

关键可能是目标函数的写法。你现在的目标函数是什么?

目标函数,是指误差函数吗,是:误差*误差/2;
金币:
奖励:
热心:
注册时间:
2003-7-3

回复 使用道具 举报

发表于 2007-12-14 11:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
金币:
奖励:
热心:
注册时间:
2007-12-14

回复 使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站声明:MACD仅提供交流平台,请交流人员遵守法律法规。
值班电话:18209240771   微信:35550268

举报|意见反馈|手机版|MACD俱乐部

GMT+8, 2025-4-22 07:54 , Processed in 0.035388 second(s), 10 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表