两张在X轴上有非线性扭曲的报价图的比较 - 页 5 123456789101112 新评论 Igor Makanu 2012.03.07 19:29 #41 alsu: mql代码可能不会太长)) 这里似乎是源代码 http://www.bytefish.de/blog/dynamic_time_warping Alexey Subbotin 2012.03.07 20:33 #42 嗯,是的,它很短,但这是在最简单的版本中,还有一些其他的改进,关于算法的速度和对约束的考虑...... Alexey Subbotin 2012.03.07 20:43 #43 这个 已经实现了对数据维度的支持,包括3维,还有一个下限估计方法和相关的候选路径测试(根据我的理解,这比维度>1的完全DTW要便宜得多,在那里主要的方法变成了一个TK完全问题,导致了指数级的求解时间)。 Igor Makanu 2012.03.09 08:44 #44 在Habrahabra网站上有一篇关于DTW的文章http://habrahabr.ru/blogs/algorithm/135087/, 似乎很清楚,但我搞不清楚如何将DTW用于OHLC,谁能给我解释一下? Dmitry Fedoseev 2012.03.09 14:07 #45 IgorM: 在Habrahabra网站上有一篇关于DTW的文章http://habrahabr.ru/blogs/algorithm/135087/, 似乎很清楚,但我搞不清楚如何将DTW用于OHLC,谁能给我解释一下? 是否已经做到了一口价? Igor Makanu 2012.03.09 14:20 #46 Integer: 它对一个价格起作用了吗? 没有用,把DTW的源码移植到mql不是问题。 //+------------------------------------------------------------------+ // create cost matrix #define costmaxM 100 #define costmaxN 100 double cost[costmaxM][costmaxN]; int costM,costN; // текущая размерность cost //+------------------------------------------------------------------+ double dist(double x, double y){ return(MathSqrt(MathPow((x - y), 2))); } //+------------------------------------------------------------------+ int dtw(double &t1[],double &t2[]) { // возвращаемое значение -1 ошибка // +1 массив cost[][] заполнен правильно int i,j; costM = ArraySize(t1); costN = ArraySize(t2); if(costM>=costmaxM || costN>=costmaxN)return(-1); cost[0][0] = dist(t1[0], t2[0]); // calculate first row for(i = 1; i < costM; i++) cost[i][0] = cost[i-1][0] + dist(t1[i], t2[0]); // calculate first column for(j = 1; j < costN; j++) cost[0][j] = cost[0][j-1] + dist(t1[0], t2[j]); // fill matrix for(i = 1; i < costM; i++) for(j = 1; j < costN; j++) cost[i][j] = MathMin(cost[i-1][j],MathMin(cost[i][j-1], cost[i-1][j-1])) + dist(t1[i],t2[j]); return(1);// return cost[m-1][n-1]; } //+------------------------------------------------------------------+ 问题是,我不明白如何使用它,我所了解的是,用DTW可以把不同的时间段(BP)装入同一个尺度,以便进行后续分析,但如何...- 不懂 Dmitry Fedoseev 2012.03.09 14:47 #47 IgorM:这没有用,DTW源码本身很容易移植到mql,不知为何。 问题是,我不明白如何使用这个,我所理解的是,用DTW你可以把不同的时间段(BPs)装入同一个尺度,以便以后分析,但如何...- 不懂 试过了。也不知道如何使用它。输出应该是转换路径或转换后的数据。假设cost[][]是一个距离矩阵。但它给出了一条有回报的路径(如果我们在每一列中寻找最小值),条件是 "1。单调性--路径从不返回,即:在序列中使用的两个索引i和j都不会减少"。另外,这条道路并没有到达对面的角落。总的来说,我不太理解在填充 cost[][]数组 时对数字进行的所有这些操作的意义--首先是简单地计算距离,然后将它们相加。 如果我们需要计算每个元素t1和每个元素t2之间的距离,那么,如果我们需要满足条件 "1.单调性--路径永不返回,即:序列中使用的两个索引i和j永不减少",我们为什么要进行这么多的计算? . hrenfx 2012.03.09 15:33 #48 DTW完全不适合当前的任务。DTW用于识别实时音频流中的语音(单词),具体如下(大致如此)。 有一个模式(字)--一个数据序列,长度为N。 有一个音频流 - 一个数据序列,长度为M>>N。 从音频流中选择不同长度的最外层的数据片断(大致如此)。 通过DTW将每个块状物与模板进行比较。 如果最大的DTW超过了某个阈值,就认为有一个词被说出来了。 所以,DTW只是一个比较两个不同长度的序列的标准。仅此而已。 要在音频历史中搜索单词,DTW根本不适合,因为它非常耗费资源。例如,使用DTW找出一个词在过去一小时内被说了多少次,几乎是不可能的。 这个问题的快速解决方案是使用快速算法来计算Pearson's QC。在这样做的时候,DTW每次都是由一个具有不同输入参数的ZigZag转换。这样的算法非常容易并行化,使用GPU实现时几乎可以实时工作。 另一个问题是我们为什么需要它?没有人在严肃的层面上解决了这项任务。但我几乎可以肯定,在解决了这个问题之后,模式理论的合理性又多了一个钉子。 模式的理论,以及艾略特波和菲波 并不是技术官僚的思维水平。 Dmitry Fedoseev 2012.03.09 15:46 #49 hrenfx: DTW完全不适合手头的任务......。 让我们先给你看一个工作的DTW,然后我们可以讨论它适合什么,不适合什么。 Dmitry Fedoseev 2012.03.09 15:52 #50 我自己编的东西,但我不知道,这是胡说八道。 黄色的线,那是橙色的线在红色的线上延伸出来的。 123456789101112 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这里似乎是源代码 http://www.bytefish.de/blog/dynamic_time_warping
在Habrahabra网站上有一篇关于DTW的文章http://habrahabr.ru/blogs/algorithm/135087/, 似乎很清楚,但我搞不清楚如何将DTW用于OHLC,谁能给我解释一下?
是否已经做到了一口价?
没有用,把DTW的源码移植到mql不是问题。
问题是,我不明白如何使用它,我所了解的是,用DTW可以把不同的时间段(BP)装入同一个尺度,以便进行后续分析,但如何...- 不懂这没有用,DTW源码本身很容易移植到mql,不知为何。
问题是,我不明白如何使用这个,我所理解的是,用DTW你可以把不同的时间段(BPs)装入同一个尺度,以便以后分析,但如何...- 不懂试过了。也不知道如何使用它。输出应该是转换路径或转换后的数据。假设cost[][]是一个距离矩阵。但它给出了一条有回报的路径(如果我们在每一列中寻找最小值),条件是 "1。单调性--路径从不返回,即:在序列中使用的两个索引i和j都不会减少"。另外,这条道路并没有到达对面的角落。总的来说,我不太理解在填充 cost[][]数组 时对数字进行的所有这些操作的意义--首先是简单地计算距离,然后将它们相加。
如果我们需要计算每个元素t1和每个元素t2之间的距离,那么,如果我们需要满足条件 "1.单调性--路径永不返回,即:序列中使用的两个索引i和j永不减少",我们为什么要进行这么多的计算?
.
DTW完全不适合当前的任务。DTW用于识别实时音频流中的语音(单词),具体如下(大致如此)。
所以,DTW只是一个比较两个不同长度的序列的标准。仅此而已。
要在音频历史中搜索单词,DTW根本不适合,因为它非常耗费资源。例如,使用DTW找出一个词在过去一小时内被说了多少次,几乎是不可能的。
这个问题的快速解决方案是使用快速算法来计算Pearson's QC。在这样做的时候,DTW每次都是由一个具有不同输入参数的ZigZag转换。这样的算法非常容易并行化,使用GPU实现时几乎可以实时工作。
另一个问题是我们为什么需要它?没有人在严肃的层面上解决了这项任务。但我几乎可以肯定,在解决了这个问题之后,模式理论的合理性又多了一个钉子。
模式的理论,以及艾略特波和菲波 并不是技术官僚的思维水平。
DTW完全不适合手头的任务......。
我自己编的东西,但我不知道,这是胡说八道。
黄色的线,那是橙色的线在红色的线上延伸出来的。