frank_zk 发表于 2007-12-13 17:01

:*22*: 中国的股市随便拿一个神经病的脑电图来就可以了:*29*: :*22*:

iloveinru 发表于 2007-12-13 19:15

辛苦了!:*19*:

阻我者杀 发表于 2007-12-13 19:20

研究过一段时间,自己也写过类似东东,在S&P上面实施效果不错,拿到国内发觉就不可行,放弃了,中国这妖市,要熟悉女
人,才能玩得转

sgp111 发表于 2007-12-13 20:08

原帖由 阻我者杀 于 2007-12-13 19:20 发表 http://bbs.macd.cn/static/image/common/back.gif
研究过一段时间,自己也写过类似东东,在S&P上面实施效果不错,拿到国内发觉就不可行,放弃了,中国这妖市,要熟悉女人,才能玩得转

应该有用武之地,放弃了就太可惜了。

mifala 发表于 2007-12-13 20:22

太复杂,不适合小资金使用。

步步高0713 发表于 2007-12-13 20:35

:*10*: :*10*:人才,楼主是人才

Laodaold 发表于 2007-12-13 21:03

原帖由 hhk 于 2007-12-13 14:33 发表 http://bbs.macd.cn/static/image/common/back.gif

你的效果太好了,但我好象拟合曲线不能太弯曲。能否说一下下载地址: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: 预测=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:=1/(1+EXP(-西格玛-阀值2)); {隐含层输出}
END;
西格玛:=0;
FOR J=1 TO 隐含层 DO 西格玛:=西格玛+输出2*权值2;
输出3:=西格玛-阀值3; {学习结果,输出层输出}
德特3:=数据[首K线+POS+3]-输出3;
误差:=误差+德特3*德特3; {计算误差}
FOR J=1 TO 隐含层 DO BEGIN
权值2:=权值2+权值学习率*德特3*输出2; {调整权值}
德特2:=德特3*权值2*输出2*(1-输出2);
FOR I=1 TO 4 DO 权值1[(J-1)*隐含层+I]:=权值1[(J-1)*隐含层+I]+权值学习率*德特2*数据[首K线+POS+I-2];
END;
阀值3:=阀值3+阀值学习率*德特3; {调整阀值}
FOR J=1 TO 隐含层 DO 阀值2:=阀值2+阀值学习率*德特2;
END;
误差:=误差/2;
IF 误差<=要求误差 THEN BREAK; {误差达到要求就退出,避免过度学习}
END;
{版权所有:嘉兴·陈(uuxp.com),QQ:110036737,Mail:cyouwei@zj.com}
FOR POS=1 TO 4 DO 预测:=数据[首K线+样本数-1+POS]; {取预测数据}
FOR POS=1 TO 样本数 DO 数据[首K线+POS+3]:=输出3;{返回学习结果}
FOR POS=1 TO 5 DO BEGIN {进行预测,共5个结果}
FOR J=1 TO 隐含层 DO BEGIN
西格玛:=0;
FOR I=1 TO 4 DO 西格玛:=西格玛+预测*权值1[(J-1)*隐含层+I];
输出2:=1/(1+EXP(-西格玛-阀值2));
END;
西格玛:=0;
FOR J=1 TO 隐含层 DO 西格玛:=西格玛+输出2*权值2;
输出3:=西格玛-阀值3;
FOR I=1 TO 3 DO 预测:=预测; {更换预测数据,提供下一次simulate}
预测:=输出3;
END;
BPNN: (数据+1)/2*最大,COLORYELLOW; {学习结果}
{MABP: MA((数据+1)/2*最大,5);} {也可以做适当的平均}
误差值: 误差,COLORGRAY,LINETHICK0; {误差,要求不要过大或者过小;下面是预测结果}
DRAWTEXT(ISLASTBAR,(输出3+1)/2*最大,'·'),ALIGN0,SHIFT1,COLORMAGENTA,PXUP8;
DRAWTEXT(ISLASTBAR,(输出3+1)/2*最大,'·'),ALIGN0,SHIFT2,COLORMAGENTA,PXUP8;
DRAWTEXT(ISLASTBAR,(输出3+1)/2*最大,'·'),ALIGN0,SHIFT3,COLORMAGENTA,PXUP8;
DRAWTEXT(ISLASTBAR,(输出3+1)/2*最大,'·'),ALIGN0,SHIFT4,COLORMAGENTA,PXUP8;
DRAWTEXT(ISLASTBAR,(输出3+1)/2*最大,'·'),ALIGN0,SHIFT5,COLORMAGENTA,PXUP8;

leftwall 发表于 2007-12-13 21:19

不知道效果怎么样

波浪暗影 发表于 2007-12-13 22:47

:*22*: :*22*: :*22*:

lxpkk 发表于 2007-12-13 23:00

都是强人,拜下,另外寒下21楼

野狐禅 发表于 2007-12-14 00:10

原帖由 hhk 于 2007-12-13 12:51 发表 http://bbs.macd.cn/static/image/common/back.gif
神经网络拟合效果不好,大家是否有什么改进建议。
输入数据是收盘价,归一处理了,采用L_M学习算法。
看上去很好啊,如果外推也是相当的结果的话。有什么问题?

s-qzr 发表于 2007-12-14 01:32

支持楼主!希望你能有所突破!

s-qzr 发表于 2007-12-14 01:32

支持楼主!希望你能有所突破!

tanvd 发表于 2007-12-14 02:15

楼主搞的东西很有用,对神经网络,有不少人努力过。希望你能有所突破!

hhk 发表于 2007-12-14 08:43

原帖由 Laodaold 于 2007-12-13 21:03 发表 http://bbs.macd.cn/static/image/common/back.gif


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

{版权所有:嘉兴·陈(uuxp.com),Mail:cyouwei@zj.com
本人不是做编程的,也不是搞神经网络的,不过是一时兴起,研究了小波分析和神经网络,
还有Matlab7编 ...
非常感谢 Laodaold 的无私奉献,你的代码对我帮助很大,现在程序的外推部分还没有写好,非常感谢大家的大力支持 ,我继续开发下去,把研究结果给大家分享。

[ 本帖最后由 hhk 于 2007-12-14 09:03 编辑 ]

hhk 发表于 2007-12-14 08:48

原帖由 野狐禅 于 2007-12-14 00:10 发表 http://bbs.macd.cn/static/image/common/back.gif

看上去很好啊,如果外推也是相当的结果的话。有什么问题?
你好,我感觉现在的拟合结果就象是一条移动平均线似的,我希望能更精确的拟合价格曲线或价格的其他特征,如波动率等。

野狐禅 发表于 2007-12-14 09:41

原帖由 hhk 于 2007-12-14 08:48 发表 http://bbs.macd.cn/static/image/common/back.gif
我感觉现在的拟合结果就象是一条移动平均线似的,我希望能更精确的拟合价格曲线或价格的其他特征,如波动率等。
关键可能是目标函数的写法。你现在的目标函数是什么?

xmzlwyq 发表于 2007-12-14 09:49

估计是 从 心理图表示的
但是 可以参考一下 庄 散 大资金 中资金的 结构来 编写
从简单到难
最好看看心理学的东西

hhk 发表于 2007-12-14 09:57

原帖由 野狐禅 于 2007-12-14 09:41 发表 http://bbs.macd.cn/static/image/common/back.gif

关键可能是目标函数的写法。你现在的目标函数是什么?
目标函数,是指误差函数吗,是:误差*误差/2;

小助手二 发表于 2007-12-14 11:00

页: 1 [2] 3 4 5 6 7 8
查看完整版本: 辛苦写了一个神经网络程序,效果不太好(如图)