交易中的机器学习:理论、模型、实践和算法交易 - 页 297

 
匿名 的。

apply(embed(pattern, length(signal)), 1, cor, y = signal, method = 'pearson')

谢谢!我想知道有多少R这样的计数。我在1 000 000个信号长度和100 000个图案的情况下测量了bibla算法 - 1秒。
 
fxsaber:
谢谢你!我想知道有多少R这样的计数。我在信号长度为1,000,000和模式为100,000-1秒的情况下测量了圣经算法。

快了一百万倍!那又怎样?交易系统像处理器一样测量?
 
桑桑尼茨-弗门科

快了一百万倍!那么,是什么?交易系统像处理器一样被测量?
你有某种情结。
 
fxsaber:
你有某种情结。


不,不是复杂。

μl和R是完全不同且不重叠的系统。那有什么可比较的呢?而且你不是唯一的一个!

 
桑桑尼茨-弗门科

μl和R是完全不同且不重叠的系统。那有什么可比较的呢?而且你不是唯一的一个!

我只对在任何语言中实现并不罕见的统计任务的速度感兴趣。

R是最流行的统计语言,有许多用户使用它。这就是为什么我把比较的问题放在这里。

实施的算法以及因此而产生的效率是令人感兴趣的。用什么语言写的并不重要。

 
fxsaber:

我只是对任何一种语言中一个并不常见的统计任务的实现速度感兴趣。

R是最流行的统计语言,这里有很多人知道它。这就是为什么在这里提出比较的问题。

实施的算法以及因此而产生的效率是令人感兴趣的。用什么语言写的并不重要。

MT是一个交易终端。因此,我在这个网站上和这个主题中,正在讨论TS的发展。但我们总是发现人们在讨论一些对交易结果几乎没有影响的编程技巧。相关函数本身在其他算法中很有用。

这个函数可以用在交易决策块中(至少我是这样用的),但它的执行速度根本不起作用,因为计算交易信号的主要时间是由其他计算复杂的算法决定的,这些算法在mql中根本不存在。

这是在执行阶段。

如果我们考虑到TS的发展阶段,R主要优于μl,因为它是一个解释器,这在算法不太清楚,我们需要尝试许多变体的阶段非常有用,例如,比较货币对的相关度。在R上,检查相关性的时间是敲击键盘,有几行,包括一个非常方便的初始向量的形成。

这就是我想说的,比较这些函数和一般在mcl和R上实现的任何其他函数的执行速度是没有意义的。


PS。

但你的图书馆救了我,让我不用学习mcl5,谢谢你。

 
桑桑尼茨-弗门科

MT是一个交易终端。因此,我在这个网站上和这个主题中,讨论了TS的发展。但我们总是发现人们在讨论一些对交易结果几乎没有影响的编程技巧。事实上你的问题是一样的,因为相关函数本身在其他算法中是有意义的。

以前,一些想法无法通过TC进行测试,因为它受到了一些算法的低性能的阻碍。在这个案例中,这正是发生的事情--一种替代性的算法使优化者能够探索一个与世界一样古老的想法,但以前无法在合理的时间内计算出来。


当一个人必须在几千长度的模式中计算数以千亿计的皮尔逊QC时,一个看似简单的任务的低速度就成了一个不可逾越的瓶颈。人们可能会开始说,如果一个问题看起来计算量太大,那么它就是一个表述不清的问题,几乎没有人理解。也许是这样。但是,该做的还是要做。而且,看到其他人如何实施这种事情总是很有趣。

 

是在开发上多花一点时间,然后总是快速计算,还是快速开发,然后总是忍受缓慢的计算?

如果R的开发速度快,但计算速度慢,那么你在哪里计算呢?为了快速开发出一款慢速的超级跑车?你不需要这样一辆超级跑车。

 
fxsaber:

我只是对任何一种语言中一个并不常见的统计任务的实现速度感兴趣。

R是最流行的统计语言,这里有很多人知道它。这就是为什么在这里提出比较的问题。

实施的算法以及因此而产生的效率是令人感兴趣的。用什么语言写的并不重要。


好吧,在一个1000000长度的信号和100000长度的模式上,这种实现根本不可能在合理的时间内计算出来,因为它需要创建一个900001x100000的时间矩阵 :D 但是写它只花了不到30秒的时间,而且到某个任务规模,它将是相当适用。我们可以用fft/convolve做同样的事情,在这种情况下,我们需要写更多的代码,但它将和C代码一样快。

在R中,制作复杂模型的原型非常方便--这是它强大的一面。代码性能是一个技能和经验的问题。

1.一些R结构和数据类型 的工作速度比其他的快(可变与不可变的类型(列表与环境),for与lapply/sapply/等等,S4与R6)。

2.在R中对一些问题进行并行处理的便利性,使你能以更快的速度得到一个慢速代码的解决方案,而不是用其他语言+计算来写快速代码。

3.语言中的个别操作是普遍进行的,但效率很低。如果你在C++中实现小的但计算量大的函数,你可以得到巨大的结果,而不会像用类似C语言编写整个代码那样降低开发速度。 例如,在R中对行或列的矩阵项进行求和,可以比rowSums/colSums/apply(, 1, sum)/apply(, 2, sum)快4到15倍。

 
匿名 的。


好吧,在一个1000000长度的信号和100000长度的模式上,这个实现几乎无法在合理的时间内计算出来,因为它需要创建一个900001x100000的时间矩阵 :D 但它花了不到30秒的时间来写它,并且在一些任务大小上,它将是相当适用的。我们可以用fft/convolve做同样的事情,在这种情况下,我们需要写更多的代码,但它将和C代码一样快。

R在复杂模型的原型设计方面非常出色--这是它的优势。代码的速度是一个技能和经验的问题。

1.一些R结构和数据类型 比其他的快(可变与不可变类型(列表与环境),for与lapply/sapply/等等,S4与R6)。

2.在R中对一些问题进行并行处理的便利性,使你能以更快的速度得到一个慢速代码的解决方案,而不是用其他语言+计算来写快速代码。

3.语言中的个别操作是普遍进行的,但效率很低。如果你在C++中实现小的但计算量大的函数,你可以得到巨大的结果,而不会像用类似C语言编写整个代码那样降低开发速度。 例如,在R中对行或列的矩阵项进行求和,可以比rowSums/colSums/apply(, 1, sum)/apply(, 2, sum)快4到15倍。

谢谢你的详细回答!总是有同样的问题--我自己能力差。