神经网络预测外汇的误差、精度情况
一、涨落方向预测效果
1.1涨落方向的计算公式:
for( i=0;i<Testnum;i++)
If((Result[i+1]- Result[i])* (Computer_Result[i+1]- Computer_Result[i]))>=0
num=num+1
percent=(num/Testnum)*100%
公式中,Testnum 表示测试例数;Result 表示用来测试数据的实际值,Computer_Result 表示通过神经网络训练学习而计算出的测试数据的预测值。
I 表示工作日,i+1表示下一个工作日;如果满足
(Result[i+1]- Result[i])* (Computer_Result[i+1]- Computer_Result[i]))>=0 (1) 则说明第二天与第一天汇率实际值的差,和第二天与第一天汇率预测值的差是同号。
也就是说,第二天比第一天汇率的实际值增涨时,第二天比第一天的预测值也增涨了。
最终涨落度以这两者差的同号个数在测试例数中所占的比例来计量。
1.2涨落效果
表1 涨落情况分析
测试例数
涨落度 20个 64%-71% 30个
62%-70% 50个
53%-59% 100个 53%-61%
涨落情况分析如图所示,这是单机版forcast 的测试结果。
涨落度是满足上面(1)式的测试数据量与测试例数的比例。
从此分析结果得出如下结论:
1、测试数据和训练数据间隔越近,准确度越高。
2、测数例数越少,涨落度的值越大。
二、误差分析
2.1误差计算公式
M x x Y M t t t SE 2)
(12∑=-= (2)
公式(2)为半方差SE (half square error )计算误差公式,其中M 是预测的
次数,t 是预测汇率的时间序数,t x 是第t 时刻汇率的预测值,t x 是第t 时刻汇率
的实际值。
2.2误差效果分析
这个误差计算结果主要用来衡量网络收敛效果。
最小训练误差在forcast 中可以根据自己的需要来自行设定。
通常在训练时,设定的最小误差为1.0e-4。
如最小训练误差为1.0e-4,实际训练次数为3675次,误差为1.77559e-4。
下图是欧元收盘价训练误差的变化图。
三、预测效果分析
3.1预测效果分析
在C/S 方式中,神经网络训练是在forcast 选择好网络模型的基础上,以所选日期内的汇率数据为历史数据来预测以后的汇率数据。
在这里的训练只能对网络中的部分参数进行微调。
选练完后同样有测试,其测试对比图如下所示:
0 图 欧元收盘价网络训练误差变化
训练次数 3048
纵坐标每格为:0.0001
横坐标每格为:60
系统自动对所选数据按5:1的比例分成训练和测试两部分。
图中红线为测试数据的实际值,绿线为测试值。
3.2具体预测实例情况
表2 欧元开盘价的预测值和实际值的对比
(1)预测一天
日期实际值00.2.20-03.4.1501.4.2-03.4.1502.4.15-03.4.1503.1.1-03.4.15
2003-4-16 1.0799 1.07953 1.087073 1.07982 1.07972
(2)预测三天
日期实际值00.2.20-03.4.1501.4.2-03.4.1502.4.15-03.4.1503.1.1-03.4.15 2003-4-16 1.0799 1.07953 1.087073 1.07982 1.07972 2003-4-17 1.0906 1.08027 1.08214 1.0827 1.08111 2003-4-18 1.0882 1.08097 1.08332 1.08167 1.0829
(3)预测五天
上表是欧元开盘价以不同时段作为训练样本的预测值与实际值的对比情况。
预测的日期为2003-4-16起,往后一天、三天、五天的汇率值。
实际值是样本的实际汇率值;00.2.20-03.4.15是预测前训练所选的起始日期和终止日期,这一列是在这个训练样本下的预测值;01.4.2-03.4.15,02.4.15-03.4.15,和03.1.1-03.4.15是同样的,分别用这些起始到终止日期之间的汇率数据做训练集,然后预测,对应的预测值如表中所示。
通过对比得出如下结论:
1.同一日期为起始,预测一天、三天,更多天的汇率,前面相同日期的预测值是不变的。
2.训练集的汇率不能太大,也就是说要尽量用靠近预测日期的汇率来预测,这样效果要明显好些。
3.对同一时段的汇率不能反复训练,否则会出现训练过度,会影响预测效果。
4.用来在服务器端的模型的配置文件,也与所选数据有一定的关系,需要在一定时间给与更新。