通往GRAAL的道路上的边缘效应 - 页 2

 
还有用了什么小波,我用了Matlab小波。边缘效应在那里似乎不那么明显,但当然它们是存在的(它们不能帮助它)我还尝试了分解(近似)和一个神经网络。在网络上学习的数据非常酷。学习网状结构似乎很容易,但在新的数据上--地狱。我得出一个结论,小波是个好东西,尤其是在应用滞后空间的时候。但到目前为止,我还没有在实践中应用它。
 
vladevgeniy писал(а)>>
你用的是哪种小波,我用的是Matlab的。似乎边缘效应不那么明显了,但当然它们是存在的(它们没办法),我也尝试应用分解(近似)和神经网络。在网络上学习的数据非常酷。学习网状结构似乎很容易,但在新的数据上--地狱。我得出一个结论,小波是个好东西,尤其是在应用滞后空间的时候。但到目前为止,我还没有在实践中应用它。

使用了Dobeshi小波。他们说Meyer小波不容易产生边缘效应,但我还没有试过。

问题是,对每一种方法进行编程都要花费大量的时间。

什么是Matlab的小波?我从来没有在Matlab中工作过。

你是指多项式吗?它的效果如何?

 
Desperado писал(а)>>

跨越层级并没有得到一个非常有吸引力的结果。我也想到了这一点。

在指标中,高点和低点的分布遵循高斯法则,只是MO不同。

高点大约有0.3,低点-0.3。

条形图越高,信号就越可靠,数量就越少。

而且每个月赚取200个积分并不有趣 :)

是的,不幸的是,不是扭曲就是滞后。

我不喜欢正态高斯分布。我更喜欢对数正态。但不幸的是,这并不适合所有人。我得出的结论是,通过拟合来进行近似是合理的(如我上面写的)。如果会有一个结果,或一些有趣的东西,那么我将调整分布函数。一般来说,偏差不大,所以可以信任。

 
Desperado, matlab任何关于小波的matlab工具箱。你可以得到必要的分解和细节和近似。编写了M函数,然后使用了一个横向的dll,并通过dll连接到公制。我想还有一个Mayer的功能,也许没有,我不记得了。但你可以节省编程的时间,尽管我在将矩阵从Matlab翻译成普通变量并返回时遇到了很多麻烦。我试着把用Delphi写的著名库改写成C++(网上有很多)。这就是观察到的最强烈的边缘失真。但是Matlab没有这些,尽管它也有曲线(在趋势时它喜欢在边缘画钩)。试着在Matlab中简单地建立所需的小波,如果你喜欢这个结果,你可以通过dll把它和Mt连接起来。
 
vladevgeniy писал(а)>>
Desperado,任何matlab的你都可以在Matlab的工具箱里找到关于小波的。你可以得到你需要的分解,以及细节和近似。编写M函数,然后编写过渡dll,并通过dll连接到MT。我想还有一个Mayer的功能,也许没有,我不记得了。但你可以节省编程的时间,尽管我在将矩阵从Matlab翻译成普通变量并返回时遇到了很多麻烦。我试着把用Delphi写的著名库改写成C++(网上有很多)。这就是观察到的最强烈的边缘失真。但是Matlab没有这些,尽管它也有曲线(在趋势时它喜欢在边缘画钩)。试着在Matlab中简单地建立所需的小波,如果你喜欢这个结果,你可以通过dll把它和Mt连接起来。

非常感谢你。事实上,我用的就是这个德尔福 :)只有一个模块,我把它回收到一个图书馆。

我先试着找一下Matlab。

 
infinum13 писал(а)>>

我不喜欢正常的高斯分布。对数正态是更好的。但不幸的是,这也并不适合所有人。我得出的结论是,通过拟合来进行近似是合理的(如我上面写的)。如果会有一个结果,或一些有趣的东西,那么我将调整分布函数。一般来说,偏差不大,所以我也可以相信这个。

我试过你的算法。正如预期的那样,原则上它可以去除细微的噪音。它对小周期和大的TFs有很好的效果。

我将看看我可以用它做什么。

他的结果用红线表示。而我需要类似绿线的东西。

 

这就是你在Matlab中得到的那种绿线,有大的分解水平。这一切都通过一行代码完成。有一种特殊的小波去噪模式,你可以选择小波的类型,还有一些其他参数。主要的任务是做一个瞬时的dll。那个Delph模块有非常强的边缘效应,是的。我不知道是怎么回事,但在Matlab中,它们被大大减少了--有时甚至看起来根本就没有。

最新的Matlab在torrent上差不多有4G。))))最好使用它。经检查,dll编译良好,对接良好。

 

来自附件中的文章。

我们的应用--预测--指出了最终价值对我们的关键重要性。我们的时间序列是有限的,数值n,n-1,n-2,...,是我们最感兴趣的。任何对称的小波函数对于处理这样的边界(或边缘)都是有问题的。如果这些系数是由 "未来 "的数据值计算出来的,我们也不能使用小波系数。一个asymmetric filter ,可以让我们绕过这个问题。这样的小波函数可以适当处理对我们来说很重要的边缘。我们的时间序列的第一个值,也构成了一个边界,可以任意处理的结果,但这没有实际意义。

根据我的理解,非对称函数只基于时间序列的前值。

对称性--关于过去和未来的价值。例如,这里来自CDF 9/7算法。

// 预测1

a=-1.586134342;

for (i=1; i<n-2; i+=2) {

x[n-1]+=2*a*x[n-2]。

}

x[i]+=a*(x[i-1]+x[i+1]);

最后一行创造的边缘效应。

根据这篇文章,顺便说一下,是一个indyuke写的。

在这里,每个小波系数只对系列的前一个值进行计算。

当然,这也是有可能对齐的。

未知区域为对称函数,并填入类似x[n-1]+=2*a*x[n-2]的内容。

它应该被重新绘制。

如果你想玩,请点击这里

附加的文件:
 
vladevgeniy писал(а)>>

这就是你在Matlab中得到的那种绿线,有大的分解水平。这一切都通过一行代码完成。有一种特殊的小波去噪模式,你可以选择小波的类型,还有一些其他参数。主要的任务是做一个瞬时的dll。那个Delph模块有非常强的边缘效应,是的。我不知道是怎么回事,但在Matlab中,它们被大大减少了--有时甚至看起来根本就没有。

最新的Matlab在torrent上差不多有4G。))))最好使用它。我检查了一下,dll编译得很好,对接也很好。

对不起,我提出了一个RTFM式的问题,但你能不能简明扼要地描述一下。

如何在MathLab中创建dll并从MT4中调用它?

如果可能,请举例说明。

 

哦,几个月前我还能轻松一下。我已经忘了这一切。但这是Matlab的标准,在手册里有说明。一般来说,你会在Matlab中找到质量非常好的帮助。编译完成后,将创建一个.dll和lib文件,以及其他几个不太重要的文件。在m文件中,你将有一个matlab语言的函数,这个函数是由中间dll调用的。你只需要先调用那里的初始化,好吧,帮助有它。然而,有一个 "但是"。我们需要将变量double string等重载到mxArray中,然后在Matlab中调用该函数,再回到C语言中。

下面是一个在C语言中使用mxArray的例子

mxArray *inm = mxCreateDoubleMatrix(1,size,mxREAL); 为输入数组创建大小的mxArray变量
memcpy(mxGetPr(inm), &in[0], size*sizeof(double)); 它被输入数组的变量所填充

然后调用matlab函数

然后mxArray的输出数组被转换为一个二进制的

// ---------------------- 将mxArray转换成double ------
memcpy(out, mxGetPr(outm), size*sizeof(double))


这大约是现在,很难确切地记得。

用mxArray工作的内含物

#include "mex.h"

位于matlab文件夹中