文章 "在 MetaTrader 5 中使用自组织特征映射(Kohonen 映射)" - 页 4 123456 新评论 Dmitriy Skub 2011.07.12 10:54 #31 Graff:我不知道它们有什么用。你可以直接从终端获取信息。我甚至不敢想象它们的用途,可能是有人手动计算的。SZY:有人能发布一个修改程序,让智能交易系统可以直接从终端获取信息,而不需要脚本吗? 好吧,如果你害怕,那当然不行)。 Serge 2011.07.12 12:04 #32 sergeev: 您需要哪些信息? 即 SOM.mq5 Expert Advisor 可以独立(无需 DJ.mq5 和 FX.mq5 脚本的帮助)从终端接收数据。 supercoder2006 2012.07.26 19:26 #33 这篇文章是否包含了获得专家顾问的所有内容? 我对实施神经网络 专家顾问很感兴趣。 Sealdo Сергей 2012.08.31 22:20 #34 你好,亲爱的论坛成员!这篇文章非常有趣!我也在尝试使用 SOM 代码。权重 p1-p4 - 来自市场的数据(目前只有 ZZ 点之间的差值)。p5 - 虚拟买入交易的结果 - TP=1,SL=-1(到目前为止,TP=SP=300pp)。在我看来,仅仅一个 p5 BMU(最接近的向量)不足以预测结果。有谁能建议如何计算 BMU(为清晰起见,用蓝色)周围区域的结果,同时考虑到与 BMU 的距离? Viktor Vasilyuk 2012.09.26 22:21 #35 sealdo:有谁能告诉我,在考虑到与 BMU 的距离的情况下,计算 BMU 周围区域(为清楚起见用蓝色圈出)的结果 有多简单? 我想知道,这是否也是我在想的? Sealdo Сергей 2012.10.31 20:22 #36 progma137: 我想知道,我也是这么想的吗? 你是说如何通过编程找到这个区域的坐标?在 CSOM 类中已经有一个函数了:int BestMatchingNode(double &vector[]); // 根据给定向量找到网格中的最佳节点了解了网格的维数后,我们就可以很容易地计算出 BMU(或本实现中的 BMN)的坐标了。 这里我们要计算的正是 BMU 周围区域的总结果(通过一个参数(权重)),同时考虑到与 BMU 的距离。例如,我们取一个直径为 10 个神经元(细胞)的区域。距离最近的神经元对结果的影响较大。而距离越远,....。这里有一个问题,我们应该如何处理位于网格边缘的 BMU-shell。毕竟,它们的邻居较少。 Sergey Gustaytis 2012.11.13 23:33 #37 请问如何在地图上找到条形图?我们输入四个矢量,得到四张地图。我想在所有这些地图上绘制一条轨迹,例如,从当前日期(天数)到后面 3 个条形图,并分析集群的状态。可以通过编程来实现,例如使用 void DrawTrajectory(int from, int count) 函数,它会在所有地图上绘制从给定条数开始的轨迹。 第二个问题,如何获得输出地图,最重要的是频率地图? Sergey Gustaytis 2012.11.17 03:40 #38 我没等到回复...我写的方法是在输入地图上显示输入矢量给定步数后的轨迹,如果有什么不对,请不要见怪--我不是程序员:)谁能把这个非常聪明的库(感谢作者和阿列克谢-谢尔盖耶夫)推广到实际应用层面?!!!!//------------------------------------------------------------------ ShowTrajectory void CSOM::ShowTrajectory(int n_patern, int m_cnt) // 显示输入向量轨迹的方法 { if(m_cnt<=0) return; int idx=0,x[],y[], dy=0; string name[]; ArrayResize(x,m_cnt); ArrayResize(y,m_cnt); ArrayResize(name,m_cnt); double data[]; ArrayResize(data, m_dimension); for(int ind=0; ind<m_nSet; ind++) // 根据训练集的向量值设置数据 { if(ind<n_patern) continue; // 等待所需的输入模式 for(int k=0; k<m_dimension; k++) data[k]=m_set[m_dimension*(ind)+k]; int winningnode=BestMatchingNode(data); // 查找最近节点的索引 // 保存选定用于跟踪的输入图案的坐标 int x1,y1,x2,y2; m_node[winningnode].GetCoordinates(x1,y1,x2,y2); if(m_bHexCell) // 如果是六边形 { int x_size=int(MathAbs(x2-x1)); int y_size=int(MathAbs(y2-y1)); dy=y_size; y1=y1+y_size/4; y2=y2+y_size/4; } x[idx]=(x1+x2)/2; y[idx]=(y1+y2)/2; name[idx]=(string)ind; //x[idx]=(int)m_node[winnode].X(); //y[idx]=(int)m_node[winnode].Y(); idx++; m_cnt--; if(m_cnt==0) break; // 记录所需的输入四元数 } // 绘制轨迹、节点和铭文 int bcol=clrBlack; for(int k=0; k<m_dimension; k++) { int yp=0, yc; int sz=ArraySize(x); for(int j=0; j<sz; j++) { yc=y[j]; // 节点 int sh=2; if(j>0) sh=1; m_bmp[k].DrawRectangle(x[j]-sh,y[j]-sh,x[j]+sh,y[j]+sh,bcol,true); // 轨迹 if(j<sz-1) m_bmp[k].DrawLine(x[j],y[j],x[j+1],y[j+1],bcol); yc=y[j]-dy; if(MathAbs(yp-yc)<dy) yc-=dy; yp=yc; // 柱状图的数量(条形图) m_bmp[k].TypeText(x[j],yc,name[j], clrIndigo); } } } Sealdo Сергей 2013.01.05 22:47 #39 在 CSOM 类中,加载训练向量的计数器 m_nSet 仅在 CSOM::CSOM() 构造函数中重置。因此,在循环再训练模式下,训练向量的数量会不断增加。最好在 CSOM::LoadTrainData(...) 方法中添加 m_nSet=0; 一行。 Viktor Vasilyuk 2013.01.16 16:34 #40 GSB:也许有人会把一个非常有用的库(感谢作者和阿列克谢-谢尔盖耶夫)提升到实际使用的水平?!!!! 这些地图只不过是建立数据的一种手段,需要对这些数据进行分析并在此基础上得出结论。 123456 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我不知道它们有什么用。你可以直接从终端获取信息。
我甚至不敢想象它们的用途,可能是有人手动计算的。
SZY:有人能发布一个修改程序,让智能交易系统可以直接从终端获取信息,而不需要脚本吗?
您需要哪些信息?
这篇文章是否包含了获得专家顾问的所有内容?
我对实施神经网络 专家顾问很感兴趣。
你好,亲爱的论坛成员!
这篇文章非常有趣!我也在尝试使用 SOM 代码。
权重 p1-p4 - 来自市场的数据(目前只有 ZZ 点之间的差值)。
p5 - 虚拟买入交易的结果 - TP=1,SL=-1(到目前为止,TP=SP=300pp)。在我看来,仅仅一个 p5 BMU(最接近的向量)不足以预测结果。
有谁能建议如何计算 BMU(为清晰起见,用蓝色)周围区域的结果,同时考虑到与 BMU 的距离?
有谁能告诉我,在考虑到与 BMU 的距离的情况下,计算 BMU 周围区域(为清楚起见用蓝色圈出)的结果 有多简单?
我想知道,我也是这么想的吗? 你是说如何通过编程找到这个区域的坐标?
在 CSOM 类中已经有一个函数了:
int BestMatchingNode(double &vector[]); // 根据给定向量找到网格中的最佳节点
了解了网格的维数后,我们就可以很容易地计算出 BMU(或本实现中的 BMN)的坐标了。
这里我们要计算的正是 BMU 周围区域的总结果(通过一个参数(权重)),同时考虑到与 BMU 的距离。例如,我们取一个直径为 10 个神经元(细胞)的区域。距离最近的神经元对结果的影响较大。而距离越远,....。
这里有一个问题,我们应该如何处理位于网格边缘的 BMU-shell。毕竟,它们的邻居较少。
请问如何在地图上找到条形图?
我们输入四个矢量,得到四张地图。我想在所有这些地图上绘制一条轨迹,例如,从当前日期(天数)到后面 3 个条形图,并分析集群的状态。
可以通过编程来实现,例如使用 void DrawTrajectory(int from, int count) 函数,它会在所有地图上绘制从给定条数开始的轨迹。
第二个问题,如何获得输出地图,最重要的是频率地图?
我没等到回复...我写的方法是在输入地图上显示输入矢量给定步数后的轨迹,如果有什么不对,请不要见怪--我不是程序员:)
谁能把这个非常聪明的库(感谢作者和阿列克谢-谢尔盖耶夫)推广到实际应用层面?!!!!
在 CSOM 类中,加载训练向量的计数器 m_nSet 仅在 CSOM::CSOM() 构造函数中重置。
因此,在循环再训练模式下,训练向量的数量会不断增加。
最好在 CSOM::LoadTrainData(...) 方法中添加 m_nSet=0; 一行。
也许有人会把一个非常有用的库(感谢作者和阿列克谢-谢尔盖耶夫)提升到实际使用的水平?!!!!