脚本形式的神经网络 - 页 4 1234567891011...14 新评论 Yuriy Zaytsev 2008.05.10 22:22 #31 rip: YuraZ:并不总是需要归一化,谁说网格可能而且必须只对0和1起作用? 我可以附上一个简单的网格和一个例子,(不幸的是现在手头没有材料)--我以后会做的。 其中,一个简单的NN解决了这个问题,而不需要通过归一化进行数据准备 不幸的是,这不是源头 我所举的例子,虽然!这就像它已经正常化了。 该条件有两个范围 1 0-100 2 10-30 你只需要找到一个范围内的位置的比率--已知的是 从本质上讲,这就是缩放。 几乎总是需要规范化。数据必须在激活函数的定义范围内。 在脚本中,sigmoid是[-1;+1]。如果你把它换成,比如说,一个指数......。或平方根。 http://www.statsoft.ru/home/portal/applications/NeuralNetworksAdvisor/Adv-new/ActivationFunctions.htm http://www.statsoft.ru/statportal/tabID__32/MId__141/ModeID__0/PageID__354/DesktopDefault.aspx 这里有一个网络创建的例子... 输入为LOW,即没有规范化。 RIP 2008.05.10 22:56 #32 YuraZ: http://www.statsoft.ru/statportal/tabID__32/MId__141/ModeID__0/PageID__354/DesktopDefault.aspx 这里有一个网络创建的例子... 输入是LOW,即没有正常化。 使用非正常化的数据有时是非常有用的。它们不会失去信息性,而信息性在转换过程中可能会丢失。 而且也没有正式的机制来确定训练样本的信息量......。 顺便说一下,这篇文章没有显示任何地方使用了什么激活函数。显然,定义区域[-inf;+inf]或[0;+inf]的东西 ... Yuriy Zaytsev 2008.05.12 10:24 #33 改变了一下程序! 略微改变了输出格式现在,SCRIPT认为有责任以高精确度计算输出数据。当然,该程序不是通用的,而是专门针对一些输入和输出的。但隐藏层的大小!在学习过程中会被调整。 在下一个版本中,我将努力使它在输入和输出的数量上更加灵活。如果成功,我将添加一个遗传算法其目的将是杀死有大量错误的神经元并以很少的错误重现神经元!即从本质上说,在阵列中寻找那些错误最少的神经元,并从这些神经元中孕育,以取代那些行为不端的神经元...1 目前的学习率很低2 变化 - 第一层的隐藏神经元数量是随机的,没有逻辑性3 如果在输入和输出的样本数据上获得较高的准确性,则停止学习过程 附加的文件: yznnewowacfinal.mq4 24 kb [删除] 2008.05.12 10:40 #34 我如何使用这个?在图表上放一个脚本,成堆的数字开始重写...他们说这些数字说明了什么? [删除] 2008.05.12 13:09 #35 Blast:我如何使用这个?在图表上放一个脚本,成堆的数字开始重写...这些数字说明了什么? 你需要它们做什么?我已经有了自己的GA算法,但我几乎没有理解代码--我需要时间来弄清楚把输入放在哪里,如何输出,何时购买-结算,以及我是否能做到这一点?或者你是为了圣杯 而来? Yuriy Zaytsev 2008.05.12 13:40 #36 Loknar: 爆炸。 我如何使用这个?在图表上放一个脚本,成堆的数字开始重写...这些数字说明了什么? 你需要它们做什么?我已经有了自己的GA算法,但我几乎没有理解代码--我需要时间来弄清楚把输入放在哪里,如何取出来,何时买入结算,如果有的话?或者说,你在这里追求的是圣杯? 爆炸 ,不要寻找专家顾问或指标--这是很遥远的事情。 这更像是对MQL4中的神经网络 原理的研究。 --- 一般来说,用C++的DLL形式或其他快速语言来编写是合理的。 Loknar - 这只是在开始时对脚本的修改,试图在输出时获得更准确的数据。 -- 顺便尝试添加一个层:-),更不用说输出输入...管道学习算法在一瞬间就死了...... --- 想试试像 3项产出 输出不只是0或1或-1 0+1,而是一个范围 x 0 0 - 买入持有 0×0--平仓(退出买入或卖出) 0 0 x 卖出 - 持有 卖出 其中x不是0或1,而是在某个范围内有一些偏差,例如-1.000 0.000 +1.000 即可以取值为0.1122或-0.012。 对三个输出的组合进行了越界分析 每个时间段有9个入口 - 以M1 M5 M15 M30 H1 H4共54个入口为例 我们把平均数3 5 8 13 21 34 55 89 144 233之间的差额输入到每个流量上。 共计 3-5 5-8 8-13 13-21 21-34 34-55 55-89 89-144 144-233 每个时间段共9人 我们在网格视图中获得一种VERIABLE的平均数...:-) 在矩阵中 当我们有像模式2 3 4 5 6 7 8 9 10 11风扇完全打开向上判断的东西时,所有看起来像卖的 当我们有-2-3-4-5-6-7-8-9-10-11的图案时,图案是完全向下开放的--BAY。 这些数字是任意的,有时是一个模式-1 -3 -7 -10 -15 -20 -30 -40 -80,在更大的时间范围内的模式 --- 的训练样本,如 1 2 1 0 -3 2 3 0 4 M1 -1 2 -1 0 1 2 3 0 -4 M5 ... ........................ H4 How to form the Neural network in the 如何正确形成NS的输入值。 Yuriy Zaytsev 2008.05.12 13:55 #37 为训练准备数据 #property copyright "Copyright © 2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" static int hWR; static double ma[9][233] ; static datetime SaveTime[9]; static int indx[8]={3,5,8,13,21,34,55,89,144}; static int iFW = 0; int init() { hWR = FileOpen( "MA.CSV", FILE_BIN|FILE_WRITE) ; string strPut="DATETIM |"+ "m100035|m010058|m010813|m011321|m012134|m013455|m015589|"+ "m500035|m050058|m050813|m051321|m052134|m053455|m055589|"+ "m150035|m150058|m150813|m151321|m152134|m153455|m155589|"+ "m300035|m300058|m300813|m301321|m302134|m303455|m305589|"+ "h010035|h010058|h010813|h011321|h012134|h013455|h015589|"; // "-0.0001|-0.0001|-0.0001|-0.0001|-0.0001|-0.0001|-0.0001|-0.0001| FileWrite(hWR, strPut); return(0); } int deinit() { FileClose(hWR); } int start() { iFW = 0; getMA( PERIOD_M1 ,1); getMA( PERIOD_M5 ,2); getMA( PERIOD_M15,3); getMA( PERIOD_M30,4); getMA( PERIOD_H1 ,5); getMA( PERIOD_H4 ,6); if ( iFW == 1 ) { PutFile( ); } return(0); } void getMA(int TF,int iTF) { if ( SaveTime[iTF] != iTime(Symbol(),TF,0) ) { SaveTime[iTF] = iTime(Symbol(),TF,0); ma[iTF][89] = iMA(Symbol(),TF,89,0,MODE_EMA,PRICE_CLOSE,0); ma[iTF][55] = iMA(Symbol(),TF,55,0,MODE_EMA,PRICE_CLOSE,0); ma[iTF][34] = iMA(Symbol(),TF,34,0,MODE_EMA,PRICE_CLOSE,0); ma[iTF][21] = iMA(Symbol(),TF,21,0,MODE_EMA,PRICE_CLOSE,0); ma[iTF][13] = iMA(Symbol(),TF,13,0,MODE_EMA,PRICE_CLOSE,0); ma[iTF][ 8] = iMA(Symbol(),TF, 8,0,MODE_EMA,PRICE_CLOSE,0); ma[iTF][ 5] = iMA(Symbol(),TF, 5,0,MODE_EMA,PRICE_CLOSE,0); ma[iTF][ 3] = iMA(Symbol(),TF, 3,0,MODE_EMA,PRICE_CLOSE,0); iFW = 1; } } void PutFile( ) { string strPut; strPut = TimeToStr( SaveTime[1] , TIME_DATE|TIME_MINUTES|TIME_SECONDS) ; for ( int iiTF = 1; iiTF <= 6; iiTF++) { for ( int jM = 0; jM <= 6; jM++) { int nMA = indx[jM]; int nMA_N = indx[jM+1]; double nn = NormalizeDouble( (ma[iiTF][ nMA] - ma[iiTF][ nMA_N])/Point,0) ; string sss = DoubleToStr( nn , 0); if ( nn >= 0 ) sss =" "+sss; if (MathAbs(nn) <= 9) sss =" "+sss; // strPut = strPut+DoubleToStr( ma[iiTF][ nMA] , 4)+"|"; strPut = strPut+"|"+sss; } } FileWrite(hWR, strPut); } [删除] 2008.05.12 15:45 #38 Loknar:爆炸: 我如何使用这个?在图表上放一个脚本,成堆的数字开始重写...这些数字说明了什么? 你需要它们做什么?我已经有了自己的GA算法,但我几乎没有理解代码--我需要时间来弄清楚把输入放在哪里,如何取出来,何时买入结算,如果有的话?还是说你在这里追求圣杯了? 最初我喜欢神经网络的 想法。我所知道的是,拥有1000个点的网络会以某种方式收敛到一个点。并且,自动交易是以基于网络算法的EA赢得的。我有计划创建我自己的这种网络版本,但在这个阶段我对mql4和神经网络都不了解。 因此,首先我将把我的策略放到专家顾问中,学习mql4。然后我将考虑网络问题。 我已经下载了你的版本,只是为了感兴趣。这是我第一次遇到这样的事情。我不了解这种网络的运作。我不知道这种网络是如何工作的,所以我有这样的问题。 我将很高兴收到关于类似主题的任何参考资料,在您看来,这些资料是值得关注的! Yuriy Zaytsev 2008.05.12 17:05 #39 本网络 YuraZ: 改变了一些软件! 稍微改变了一下 的显示格式。现在,SCRIPT认为有责任高度准确地计算出输出数据。 该程序不是通用的,而是专门针对输入和输出的数量。 但隐藏层的大小!在学习过程中会被调整。 在下一个版本中,我将努力使它在输入和输出的数量上更加灵活。 如果成功,我将添加一个遗传算法 其目的将是杀死有大量错误的神经元 并以很少的错误重现神经元! 即在阵列中寻找那些错误最少的神经元,并从它们中选取一个来替换。 那些行为不端的神经元... 1 目前的学习率很低 2 变化 - 第一层的隐藏神经元数量是随机的,没有逻辑性 3 如果它在输入和输出的样本数据上获得较高的准确性,就停止学习 同样的网络,但用微软Visual C++ 6.0编写。 速度比MQL4高了好几个数量级 算法不变,从MQL4到C++的转移是尽可能直接的,不需要使用类对象。 附加的文件: yzpnn.zip 63 kb Yuriy Zaytsev 2008.05.16 05:32 #40 另一个选择,但在MQL 只是试图在M1上工作,显示当前的趋势方向。 3日退出,理论上你可以不在启动时授课 - 但立即采取准备好的权重 - 提前授课 --- 9个输入,将缪斯的 归一化差值输入其中 --- OUT-1 OUT-2 OUT-3 输出 0.9 0.01 0.01 趋势上升 0.01 0.9 0.01 Flet 0.01 0.01 0.9 趋势下降 --- 我计划增加3-4个时间段,并一次性数完!"。 PNN在已经称重的情况下工作速度非常快 --- 实验性测试代码 - 请不要踢我。 附加的文件: yz_better_hc_1_1.mq4 61 kb Neural network in the 周末晚上 Big Expert Advisor example 1234567891011...14 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
并不总是需要归一化,谁说网格可能而且必须只对0和1起作用?
我可以附上一个简单的网格和一个例子,(不幸的是现在手头没有材料)--我以后会做的。
其中,一个简单的NN解决了这个问题,而不需要通过归一化进行数据准备
不幸的是,这不是源头
我所举的例子,虽然!这就像它已经正常化了。
该条件有两个范围
1 0-100
2 10-30
你只需要找到一个范围内的位置的比率--已知的是
从本质上讲,这就是缩放。
几乎总是需要规范化。数据必须在激活函数的定义范围内。
在脚本中,sigmoid是[-1;+1]。如果你把它换成,比如说,一个指数......。或平方根。
http://www.statsoft.ru/home/portal/applications/NeuralNetworksAdvisor/Adv-new/ActivationFunctions.htm
http://www.statsoft.ru/statportal/tabID__32/MId__141/ModeID__0/PageID__354/DesktopDefault.aspx
这里有一个网络创建的例子... 输入为LOW,即没有规范化。
http://www.statsoft.ru/statportal/tabID__32/MId__141/ModeID__0/PageID__354/DesktopDefault.aspx
这里有一个网络创建的例子... 输入是LOW,即没有正常化。
使用非正常化的数据有时是非常有用的。它们不会失去信息性,而信息性在转换过程中可能会丢失。
而且也没有正式的机制来确定训练样本的信息量......。
顺便说一下,这篇文章没有显示任何地方使用了什么激活函数。显然,定义区域[-inf;+inf]或[0;+inf]的东西 ...
改变了一下程序!
略微改变了输出格式现在,SCRIPT认为有责任以高精确度计算输出数据。
当然,该程序不是通用的,而是专门针对一些输入和输出的。
但隐藏层的大小!在学习过程中会被调整。
在下一个版本中,我将努力使它在输入和输出的数量上更加灵活。
如果成功,我将添加一个遗传算法
其目的将是杀死有大量错误的神经元
并以很少的错误重现神经元!
即从本质上说,在阵列中寻找那些错误最少的神经元,并从这些神经元中孕育,以取代
那些行为不端的神经元...
1 目前的学习率很低
2 变化 - 第一层的隐藏神经元数量是随机的,没有逻辑性
3 如果在输入和输出的样本数据上获得较高的准确性,则停止学习过程
我如何使用这个?在图表上放一个脚本,成堆的数字开始重写...他们说这些数字说明了什么?
我如何使用这个?在图表上放一个脚本,成堆的数字开始重写...这些数字说明了什么?
你需要它们做什么?我已经有了自己的GA算法,但我几乎没有理解代码--我需要时间来弄清楚把输入放在哪里,如何输出,何时购买-结算,以及我是否能做到这一点?或者你是为了圣杯 而来?
我如何使用这个?在图表上放一个脚本,成堆的数字开始重写...这些数字说明了什么?
你需要它们做什么?我已经有了自己的GA算法,但我几乎没有理解代码--我需要时间来弄清楚把输入放在哪里,如何取出来,何时买入结算,如果有的话?或者说,你在这里追求的是圣杯?
爆炸 ,不要寻找专家顾问或指标--这是很遥远的事情。
这更像是对MQL4中的神经网络 原理的研究。
---
一般来说,用C++的DLL形式或其他快速语言来编写是合理的。
Loknar - 这只是在开始时对脚本的修改,试图在输出时获得更准确的数据。
--
顺便尝试添加一个层:-),更不用说输出输入...管道学习算法在一瞬间就死了......
---
想试试像
3项产出
输出不只是0或1或-1 0+1,而是一个范围
x 0 0 - 买入持有
0×0--平仓(退出买入或卖出)
0 0 x 卖出 - 持有 卖出
其中x不是0或1,而是在某个范围内有一些偏差,例如-1.000 0.000 +1.000
即可以取值为0.1122或-0.012。
对三个输出的组合进行了越界分析
每个时间段有9个入口 - 以M1 M5 M15 M30 H1 H4共54个入口为例
我们把平均数3 5 8 13 21 34 55 89 144 233之间的差额输入到每个流量上。
共计 3-5 5-8 8-13 13-21 21-34 34-55 55-89 89-144 144-233 每个时间段共9人
我们在网格视图中获得一种VERIABLE的平均数...:-) 在矩阵中
当我们有像模式2 3 4 5 6 7 8 9 10 11风扇完全打开向上判断的东西时,所有看起来像卖的
当我们有-2-3-4-5-6-7-8-9-10-11的图案时,图案是完全向下开放的--BAY。
这些数字是任意的,有时是一个模式-1 -3 -7 -10 -15 -20 -30 -40 -80,在更大的时间范围内的模式---
的训练样本,如
1 2 1 0 -3 2 3 0 4 M1
-1 2 -1 0 1 2 3 0 -4 M5
...
........................ H4
为训练准备数据
我如何使用这个?在图表上放一个脚本,成堆的数字开始重写...这些数字说明了什么?
你需要它们做什么?我已经有了自己的GA算法,但我几乎没有理解代码--我需要时间来弄清楚把输入放在哪里,如何取出来,何时买入结算,如果有的话?还是说你在这里追求圣杯了?
最初我喜欢神经网络的 想法。我所知道的是,拥有1000个点的网络会以某种方式收敛到一个点。并且,自动交易是以基于网络算法的EA赢得的。我有计划创建我自己的这种网络版本,但在这个阶段我对mql4和神经网络都不了解。
因此,首先我将把我的策略放到专家顾问中,学习mql4。然后我将考虑网络问题。
我已经下载了你的版本,只是为了感兴趣。这是我第一次遇到这样的事情。我不了解这种网络的运作。我不知道这种网络是如何工作的,所以我有这样的问题。
我将很高兴收到关于类似主题的任何参考资料,在您看来,这些资料是值得关注的!
本网络
改变了一些软件!
稍微改变了一下 的显示格式。现在,SCRIPT认为有责任高度准确地计算出输出数据。
该程序不是通用的,而是专门针对输入和输出的数量。
但隐藏层的大小!在学习过程中会被调整。
在下一个版本中,我将努力使它在输入和输出的数量上更加灵活。
如果成功,我将添加一个遗传算法
其目的将是杀死有大量错误的神经元
并以很少的错误重现神经元!
即在阵列中寻找那些错误最少的神经元,并从它们中选取一个来替换。
那些行为不端的神经元...
1 目前的学习率很低
2 变化 - 第一层的隐藏神经元数量是随机的,没有逻辑性
3 如果它在输入和输出的样本数据上获得较高的准确性,就停止学习
同样的网络,但用微软Visual C++ 6.0编写。
速度比MQL4高了好几个数量级
算法不变,从MQL4到C++的转移是尽可能直接的,不需要使用类对象。
另一个选择,但在MQL
只是试图在M1上工作,显示当前的趋势方向。
3日退出,理论上你可以不在启动时授课 - 但立即采取准备好的权重 - 提前授课
---
9个输入,将缪斯的 归一化差值输入其中
---
OUT-1 OUT-2 OUT-3 输出
0.9 0.01 0.01 趋势上升
0.01 0.9 0.01 Flet
0.01 0.01 0.9 趋势下降
---
我计划增加3-4个时间段,并一次性数完!"。
PNN在已经称重的情况下工作速度非常快
---
实验性测试代码 - 请不要踢我。