神经网络 - 页 7

 
Cyclesurfer:
很好的新数字! 我将在几分钟内看一下这些材料......我得拿出俄语......这不是很好,但我认为,加上AltaVista,我能够做出一个体面的尝试。 我目前在CORTEX中对其他神经网络(从现在开始是NN)进行编码,并计划将其转换为MQ4......我认为我们应该明确地保持这个主题,因为(这是一个观点)NN是技术分析的未来。 NN,对于那些不够极客的人来说......基本上是模仿大脑的算法(不一定是人脑......因为那将是非常复杂的),它可以边走边学。 我在写EA的时候,根据之前给出的类似信号的小模式,就是否接受某一特定信号给出建议。 这就是大多数NN的工作,他们搜索数据,寻找对我们或甚至其他算法来说毫无意义的小模式,看看这些模式随着时间的推移会有什么变化。 第一个EA将以大脑趋势为特色。 我要求每个人都要有耐心,CORTEX编码需要时间......确切地说,它需要时间来训练NN和完善它们。 如果这里有人对CORTEX或代码转换比较熟悉,欢迎提供任何帮助。 我明白为什么俄罗斯论坛会选择商业化......NN是目前大资金交易者的风格。 那么......你们怎么说?

我把你的帖子移到了这个主题,在那里你可以找到一些关于这个软件的人。上面引用了其中一个人的话。

 

使用Matlab和Metatrader的神经网络

你好!

我正在使用Matlab并为几个货币对开发了一个神经网络,但是我有问题,要把NN从Matlab重新编程到mql4!

为了测试,我创建了一个小的神经网络,从i+10和i+20的价格预测USDJPY的价格。它有2个输入,3个隐藏,1个输出。隐藏层的激活函数 是tansigmoide,输出是线性的。

如果我将NN的输出与实际价格绘制在一起,它显示NN在工作,但用我的代码,它绝对没有工作。

隐蔽层的计算权重是:

[13.8525 -43.4534;

-11.2084 18.4331;

-0.30603 0.01022]

从隐藏层到输出层的权重是:

[0.0020021 0.0047956 -3.4143]

隐蔽层的偏差 :

[13.876;

2.644;

0.083215]

输出的偏差

[0.27514]

问题一定出在激活函数上,它应该是tan sigmoide。由于价格超过100,MathExp(-100)给我的东西非常小...。

下面是代码中有趣的部分。

>>

double a1=iClose("USDJPY",0,i+10)。

double a2=iClose("USDJPY",0,i+20);

//节点(1,1)

double Sum_node_1_1=13.8525*a1 -43.4534*a2+13.876;

double Sigmoide_node_1_1=(1-MathExp(-Sum_node_1_1))/(1+MathExp(-Sum_node_1_1))。

//节点(1,2)

double Sum_node_1_2=-11.2084*a1+18.4331*a2+2.644;

double Sigmoide_node_1_2=(1-MathExp(-Sum_node_1_2))/(1+MathExp(-Sum_node_1_2) )。

//节点(1,3)

double Sum_node_1_3=-0.30603*a1+0.01022*a2+0.083215;

double Sigmoide_node_1_3=(1-MathExp(-Sum_node_1_3))/(1+MathExp(-Sum_node_1_3) )。

//---- 退出值-----

double Sum_node_2_1=(0.0020021*Sigmoide_node_1_1+0.0047956*Sigmoide_node_1_2-3.4143*Sigmoide_node_1_3+0.27514);

<<

谢谢您的帮助!

 

这里有一个例子来说明我在Matlab下构建神经网络 的问题。我发布的图片说明了欧元兑英镑的目标值(X)和神经网络的输出(Y)。因此,在更糟的情况下,对于0.7的实际价格,NN的输出在0.68和0.73之间(相当糟糕,但这只是一个测试!)。

如果我用NN的权重来手工计算输出值,我得到的是0.75,这对0.7来说是不可能的......。所以我一定是在计算输出的某个地方出了问题......这里的公式是:

-1.1261*tansig(-1.6589*0.6964+1.4776*0.6936+4.5965)

-0.013796*Tansig(-2.6065*0.6964+4.3402 *0.6936+0.30321)

+1.2166*tansig( 0.88612*0.69669364+0.11309 *0.6936+0.055821)+1.1116

权重。

-从输入到层的权重

[-1.6589 1.4776;

-2.6065 4.3402;

0.88612 0.11309]

-到层的权重

[-1.1261 -0.013796 1.2166]

-对第1层的偏置

[4.5965;

0.30321;

0.055821]

-对第2层的偏置

[1.1116]

用来计算输出的2个输入价格是:

0.6964

0.6936

该网络是一个2输入/3隐藏/1输出的网络,隐藏层为Tangente sigmoide激活,输出层为线性激活。

谢谢!!

附加的文件:
captureplot.jpg  23 kb
 

除此之外,在我的mql4代码中,正确的Tangente sigmoide激活函数 是错误的。正确的函数是:2/(1+MathExp(-2*x))-1

欢呼吧!

 

第一个结果

这个主题看起来有点死气沉沉,但我希望还有人对神经网络感兴趣!所以,请在这里分享你的神经网络经验。所以,请在这里分享你对NNets的经验吧

我已经测试了一些因素的组合来测试神经网络的预测能力。

正如我在不同的论文和帖子中读到的那样,使用以前的高-低-开-关似乎完全没有效率。NN完全迷失在黑暗中......真实值与NN输出的拟合图是水平的(第一张照片Open-Low-High-Close.jpg),意味着它根本无法预测任何东西。这和试图用NN找乐透数字的结果是一样的 ,我尝试了不同的输入和输出值,无论是否规范化,结果都是一样的。

那么,看什么更糟糕呢?看来,技术指标 的工作方式更好。我测试了混合的经典指标作为输入来预测绝对价格。拟合图不是最好的,但也不差(第二张照片--技术因素输入.jpg)。我也认为使用绝对值是一个非常糟糕的主意。

使用移动平均线的斜率来预测未来的斜率,可以得到有趣的结果来识别可能的反转(第三张图片--MA斜率.jpg)。

另一个有趣的研究方法是使用一个NN来评估良好的交易条件。因此,我创建了一个由当前收盘价和它与未来高点和低点的距离计算的归一化分数。如果分数很高,这意味着在未来4个时期内,当前收盘价和未来高点之间的距离很高(买入利润领先),与低点的距离很低(没有明显的缩减)。我目前还没有用这个方法成功过。

希望能尽快得到一些评论和经验分享。

附加的文件:
 

祝贺韦伯萨

谢谢你,亲爱的韦伯萨。

这些都是很好的结果。

但有一个问题:使用更大的NN(更多的输入+更多的层+更多的神经元)来接近蜡烛之间更好的关系不是更好吗?

 

从神经网络到dll

你好。

有谁有经验将包含Matlab或Neurosolutions训练的神经网络 的dll集成到mq4脚本中?

 
webesa:
这个主题看起来有点死气沉沉,但我希望周围仍有对神经网络感兴趣的人!因此,请大家分享你们使用神经网络的经验。所以,请在这里分享你在NNets方面的经验!

我已经测试了一些因素的组合来测试神经网络的预测能力。

正如我在不同的论文和帖子中读到的,使用以前的高-低-开-关似乎完全没有效率。神经网络完全迷失在黑暗中......真实值与NN输出的拟合图是水平的(第一张照片Open-Low-High-Close.jpg),意味着它根本无法预测任何东西。这与试图用NN寻找乐透数字的结果相同。

我尝试了不同的输入和输出值,无论是否规范化,结果都是一样的。

那么,看什么更糟糕呢?似乎技术指标的工作方式更好。我测试了一个混合的经典指标作为输入来预测绝对价格。拟合图不是最好的,但也不差(第二张照片--技术因素输入.jpg)。我也认为使用绝对值是一个非常糟糕的主意。

使用移动平均线的斜率来预测未来的斜率,可以得到有趣的结果来识别可能的反转(第三张图片--MA斜率.jpg)。

另一个有趣的研究方法是使用一个NN来评估良好的交易条件。因此,我创建了一个由当前收盘价和它与未来高点和低点的距离计算的归一化分数。如果分数很高,这意味着在未来4个时期内,当前收盘价和未来高点之间的距离很高(买入利润领先),与低点的距离很低(没有明显的缩减)。我暂时没有成功使用这个方法。

希望很快能有一些评论和经验分享!

你对利用移动平均线 的NN的输入/输出到底是什么?

 
 

我想你是对的,如果你不需要持续的再培训,你就不需要这个dll。

你愿意分享一个这样的模板吗?