文章 "自组织特征映射 (Kohonen 映射) - 再访主题" - 页 3 12345 新评论 Viktor Vasilyuk 2017.03.01 12:08 #21 对了,还拍了其他数据。第三张照片中又出现了彩虹。我想,出现这种情况是因为你对写这篇论文的代码进行了干扰。您在文章中写道,您做了一些修改。 MetaTrader 交易平台截图 英镑兑美元, H1, 2017.03.01 Alpari International Limited, MetaTrader 5, 演示版 什么是彩虹? Mykola Demko 2017.03.02 07:36 #22 Viktor Vasilyuk: 对了,还拍了其他数据。第三张照片中又出现了彩虹。我想,出现这种情况是因为你对写这篇论文的代码进行了干扰。你在论文中写道,你做了一些修改。 在初始化节点时将随机性归一化并不会在训练时限制节点本身。你可以用单位来初始化节点,这不会影响结果。但它可能会影响获得结果的速度。事实上,我分别从每一列的最小值和最大值之间的字段中随机初始化节点,只是加快了收敛速度,因为 SOM 无需一开始就将节点驱动到指定字段中。这一过程与学习过程本身有机地交织在一起,因此你甚至不能说此时是网格的驱动时刻,此时是网格的学习时刻。驶入一个给定的领域意味着以非常大的变化系数调整节点。因此,从根本上说,我的干预并没有改变任何东西。它只是加快了收敛的速度。但如果你对这一机制有不满,你可以自由地修正它。在 Include\SOMNode.mqh 中创建网格时更改节点的初始化//+------------------------------------------------------------------+// | 在设定的限制范围内初始化节点参数//+------------------------------------------------------------------+void CSOMNode::InitNode(int x1,int y1,int x2,int y2,const double &min_values[],const double &max_values[]) {//--- 设置节点坐标 m_x1=x1; m_y1=y1; m_x2=x2; m_y2=y2;//--- 计算节点中心坐标 m_x=x1+MathAbs((x2-x1))/2; m_y=y1+MathAbs((y2-y1))/2;//--- 准备一个权重数组 ArrayResize(m_weights,m_dimension);//--- 用随机值初始化权重; for(int i=0; i<m_dimension; i++) {m_weights[i]=min_values[i]+(max_values[i]-min_values[i])*rand()/32768;} };放入非规范化的 rand(),这样就会和原始算法一模一样。像这样:m_weights[i]=rand(); Discussion of article "Self-organizing 自组织特征映射 (Kohonen 映射) - 为EA交易提供指标的现成模板(第2部分):交易量和比尔威廉姆斯指标 Vladimir Karputov 2017.04.04 09:56 #23 如果创建这样一个文件 "optim.csv",我的理解是否正确?i;Title -0.195;2017.04.04 0.086;2017.04.03 -0.195;2017.03.31 -0.195;2017.03.30 -0.195;2017.03.29 0.086;2017.03.28 -0.195;2017.03.27 -0.195;2017.03.24 0.086;2017.03.23 0.086;2017.03.22只有两个值-0.1950.086那么运行 "Sample5_SOM_Net_Player "将显示如下内容 也就是说,科恩网络发现文件 "optim.csv "中有两个...两个什么?模式? Vladimir Karputov 2017.04.04 13:49 #24 也就是说,如果我想研究两个相邻的条形图--它们是看涨还是看跌,我需要对这些序列进行类似这样的描述:最后会有四个主要序列("11"、"12"、"21"、"22")和第五个序列--当任何柱状图既非看涨也非看跌时(柱状体大小为零)。然后,只需浏览给定数量的条形图,并创建一个 "optim.csv "文件,将这些序列写入其中。你会得到类似于i;Time 21;2017.04.03 11;2017.03.31 11;2017.03.30 11;2017.03.29 12;2017.03.28 22;2017.03.27 21;2017.03.24 11;2017.03.23 12;2017.03.22 然后运行 "Sample5_SOM_Net_Player"。对吗? Mykola Demko 2017.04.04 15:54 #25 您有两个值,但您订购了 250 个节点(50x50),因此网格自然会将节点拉伸到整个中间值域。此外,您在聚类字段中输入了一个无关紧要的值 "时间"。如果要使用时间,那么数据结构 就应该以某种方式反映周期性,否则网格将如何理解星期一和星期五的不同。这样的时间表示法至少在几年的数据中是合理的,否则会出现重复(当然,如果去掉年份值的话)。理解一个简单的想法,科霍宁网格将节点放置在相似(多变量)实例的邻近地区。然后,一切都会随着对工作的理解而水到渠成。 Vladimir Karputov 2017.04.04 16:08 #26 Nikolay Demko:您有两个值,但您订购了 250 个节点(50x50),因此网格自然会将节点拉伸到整个中间值域。此外,您在聚类字段中输入了一个无关紧要的值 "时间"。如果要使用时间,那么数据结构 就应该以某种方式反映周期性,否则网格将如何理解星期一和星期五的不同。这样的时间表示法至少在几年的数据中是合理的,否则会出现重复(当然,如果去掉年份值的话)。理解一个简单的想法,科霍宁网格将节点放置在相似(多变量)实例的邻近地区。然后,事情就会随着对工作原理的理解而水到渠成。 如果我以下面的格式重做 csv 文件[烛体大小][星期几(1、2、3、4、5)],并填写例如 100 条,那么 csv 文件中最终会有100 个示例 吗?在这种情况下要放入多少个节点?3*3? Mykola Demko 2017.04.04 17:58 #27 Vladimir Karputov: 如果我以这种格式重做 csv 文件:[烛体大小][星期几(1、2、3、4、5)],并填写例如 100 条,那么 csv 文件中最终会有100 个示例 吗?在这种情况下要放入多少个节点?3*3? 这取决于您想要得到什么,聚类还是回归。 聚类会将多个示例合并为一个聚类,那么节点数应少于示例数。回归则需要比示例更多的节点,以覆盖示例中没有体现的点的字段。同样,这个过程不是二进制的,所以你不能说它是聚类,但这是回归,把它想象成一个多向光谱,聚类越多,回归越少,反之亦然。在零点,当节点数等于示例数时,聚类和回归的数量大致相等。 Vladimir Karputov 2017.04.04 18:08 #28 Nikolay Demko: 这取决于您想要聚类还是回归。 聚类会将多个示例合并成一个聚类,那么节点数就应该少于示例数。回归则需要比示例更多的节点,以覆盖示例中没有体现的点域。 简单来说,我想获得四个序列的可视化结果: 交易论坛、自动交易系统和交易策略测试。 讨论文章 "再谈柯霍宁映射" Vladimir Karputov, 2017.04.04 13:49 也就是说,如果我想研究两个相邻的条形图--它们是看涨还是看跌,我需要对这样的序列进行描述,类似于这样的描述:最终会有四个主要序列("11"、"12"、"21"、"22")和第五个序列--当任何条形图既不看涨也不看跌时(条形图主体大小为零)。 在给定的条数内。也就是说,我在给定数量的条形图上运行脚本,并指定五个序列("0"、"11"、"12"、"21"、"22")中的一个。我还指定了一周中的某一天。最后,我得到了 100 个条形图中 100 个[序列名称][星期]的示例。 Mykola Demko 2017.04.04 19:22 #29 Vladimir Karputov: 简单地说,我想要的是四个序列的可视化效果: 在给定的小节数内。也就是说,我将脚本传递到给定数量的小节上,并指定五个序列("0"、"11"、"12"、"21"、"22")中的一个。我还指定了一周中的某一天。这样,100 个小节中就有 100 个[序列名称][星期]的例子。 对不起,我不明白,如果你有一个条件组合,而且对它们了如指掌,为什么还需要网格?如果不是,最好在网格中显示您感兴趣的内容,例如,在一列中显示开仓[i]-收盘[i]的差值,在另一列中显示开仓[i+1]-收盘[i+1]的差值,并在聚类的基础上设置要解释哪个聚类的条件。 Vladimir Karputov 2017.04.04 19:34 #30 Nikolay Demko: 对不起,我不明白,如果您有一组条件组合,而且您清楚地知道它们是什么,为什么还需要网格?***组合("0"、"11"、"12"、"21"、"22") 我今天只是举了个例子。我不知道它们是否有效。这就是我想问的--如果我想出了各种各样的组合,网格会对我有什么帮助?我以为这个网格会直观地显示我的例子在某些组(群?那么,如果我把"......例如,一列中 Open[i]-Close[i] 之间的差值,以及另一列中 Open[i+1]-Close[i+1] 之间的差值...... "放在一起,会有什么反馈呢?我会看到不同的颜色--但哪个是哪个? 12345 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
MetaTrader 交易平台截图
英镑兑美元, H1, 2017.03.01
Alpari International Limited, MetaTrader 5, 演示版
什么是彩虹?
对了,还拍了其他数据。第三张照片中又出现了彩虹。我想,出现这种情况是因为你对写这篇论文的代码进行了干扰。你在论文中写道,你做了一些修改。
在初始化节点时将随机性归一化并不会在训练时限制节点本身。你可以用单位来初始化节点,这不会影响结果。
但它可能会影响获得结果的速度。
事实上,我分别从每一列的最小值和最大值之间的字段中随机初始化节点,只是加快了收敛速度,因为 SOM 无需一开始就将节点驱动到指定字段中。
这一过程与学习过程本身有机地交织在一起,因此你甚至不能说此时是网格的驱动时刻,此时是网格的学习时刻。驶入一个给定的领域意味着以非常大的变化系数调整节点。
因此,从根本上说,我的干预并没有改变任何东西。它只是加快了收敛的速度。
但如果你对这一机制有不满,你可以自由地修正它。在 Include\SOMNode.mqh 中创建网格时更改节点的初始化
// | 在设定的限制范围内初始化节点参数
//+------------------------------------------------------------------+
void CSOMNode::InitNode(int x1,int y1,int x2,int y2,const double &min_values[],const double &max_values[])
{
//--- 设置节点坐标
m_x1=x1;
m_y1=y1;
m_x2=x2;
m_y2=y2;
//--- 计算节点中心坐标
m_x=x1+MathAbs((x2-x1))/2;
m_y=y1+MathAbs((y2-y1))/2;
//--- 准备一个权重数组
ArrayResize(m_weights,m_dimension);
//--- 用随机值初始化权重;
for(int i=0; i<m_dimension; i++) {m_weights[i]=min_values[i]+(max_values[i]-min_values[i])*rand()/32768;}
};
放入非规范化的 rand(),这样就会和原始算法一模一样。像这样:m_weights[i]=rand();
如果创建这样一个文件 "optim.csv",我的理解是否正确?
只有两个值
那么运行 "Sample5_SOM_Net_Player "将显示如下内容
也就是说,科恩网络发现文件 "optim.csv "中有两个...两个什么?模式?
也就是说,如果我想研究两个相邻的条形图--它们是看涨还是看跌,我需要对这些序列进行类似这样的描述:
最后会有四个主要序列("11"、"12"、"21"、"22")和第五个序列--当任何柱状图既非看涨也非看跌时(柱状体大小为零)。
然后,只需浏览给定数量的条形图,并创建一个 "optim.csv "文件,将这些序列写入其中。你会得到类似于
然后运行 "Sample5_SOM_Net_Player"。对吗?
您有两个值,但您订购了 250 个节点(50x50),因此网格自然会将节点拉伸到整个中间值域。
此外,您在聚类字段中输入了一个无关紧要的值 "时间"。如果要使用时间,那么数据结构 就应该以某种方式反映周期性,否则网格将如何理解星期一和星期五的不同。这样的时间表示法至少在几年的数据中是合理的,否则会出现重复(当然,如果去掉年份值的话)。
理解一个简单的想法,科霍宁网格将节点放置在相似(多变量)实例的邻近地区。然后,一切都会随着对工作的理解而水到渠成。
您有两个值,但您订购了 250 个节点(50x50),因此网格自然会将节点拉伸到整个中间值域。
此外,您在聚类字段中输入了一个无关紧要的值 "时间"。如果要使用时间,那么数据结构 就应该以某种方式反映周期性,否则网格将如何理解星期一和星期五的不同。这样的时间表示法至少在几年的数据中是合理的,否则会出现重复(当然,如果去掉年份值的话)。
理解一个简单的想法,科霍宁网格将节点放置在相似(多变量)实例的邻近地区。然后,事情就会随着对工作原理的理解而水到渠成。
如果我以下面的格式重做 csv 文件[烛体大小][星期几(1、2、3、4、5)],并填写例如 100 条,那么 csv 文件中最终会有100 个示例 吗?在这种情况下要放入多少个节点?3*3?
如果我以这种格式重做 csv 文件:[烛体大小][星期几(1、2、3、4、5)],并填写例如 100 条,那么 csv 文件中最终会有100 个示例 吗?在这种情况下要放入多少个节点?3*3?
这取决于您想要得到什么,聚类还是回归。
聚类会将多个示例合并为一个聚类,那么节点数应少于示例数。
回归则需要比示例更多的节点,以覆盖示例中没有体现的点的字段。
同样,这个过程不是二进制的,所以你不能说它是聚类,但这是回归,把它想象成一个多向光谱,聚类越多,回归越少,反之亦然。在零点,当节点数等于示例数时,聚类和回归的数量大致相等。
这取决于您想要聚类还是回归。
聚类会将多个示例合并成一个聚类,那么节点数就应该少于示例数。
回归则需要比示例更多的节点,以覆盖示例中没有体现的点域。
简单来说,我想获得四个序列的可视化结果:
交易论坛、自动交易系统和交易策略测试。
讨论文章 "再谈柯霍宁映射"
Vladimir Karputov, 2017.04.04 13:49
也就是说,如果我想研究两个相邻的条形图--它们是看涨还是看跌,我需要对这样的序列进行描述,类似于这样的描述:
最终会有四个主要序列("11"、"12"、"21"、"22")和第五个序列--当任何条形图既不看涨也不看跌时(条形图主体大小为零)。
在给定的条数内。也就是说,我在给定数量的条形图上运行脚本,并指定五个序列("0"、"11"、"12"、"21"、"22")中的一个。我还指定了一周中的某一天。最后,我得到了 100 个条形图中 100 个[序列名称][星期]的示例。
简单地说,我想要的是四个序列的可视化效果:
在给定的小节数内。也就是说,我将脚本传递到给定数量的小节上,并指定五个序列("0"、"11"、"12"、"21"、"22")中的一个。我还指定了一周中的某一天。这样,100 个小节中就有 100 个[序列名称][星期]的例子。
对不起,我不明白,如果你有一个条件组合,而且对它们了如指掌,为什么还需要网格?
如果不是,最好在网格中显示您感兴趣的内容,例如,在一列中显示开仓[i]-收盘[i]的差值,在另一列中显示开仓[i+1]-收盘[i+1]的差值,并在聚类的基础上设置要解释哪个聚类的条件。
对不起,我不明白,如果您有一组条件组合,而且您清楚地知道它们是什么,为什么还需要网格?
***