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

 
fxsaber #:
NumPy 的算法似乎与 ALglib 不同。

Maxim 的 CPU 速度是我的两倍。我不记得他是否给出了 Algliba 的时序,应该没有。

 
fxsaber #:

与旧版本的 Alglib 相比。我没有数据表明它变得更慢了。

你自己也写道,标准版比现在的 Alglib 慢。我有旧版本的代码,但不在终端里。
 
Forester #:

马克西姆的 CPU 比我的快 2 倍。我不记得他是否给出了 Algliba 的时序,我想应该没有。

时间

交易、自动交易系统和交易策略测试论坛

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

Aleksey Vyazmikin, 2023.09.26 05:19 AM

Array size: 1716.61376953125 MB
Time taken: 4.784467697143555 seconds

这是在老式 FX-8350 上运行的


交易、自动交易系统和交易策略测试论坛。

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

Aleksey Vyazmikin, 2023.09.26 05:37 AM

对于统计数据,这是我的结果

2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   EX5: 3981 AVX Release.
2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   TerminalInfoString(TERMINAL_CPU_NAME) = AMD FX-8350 Eight-Core 
2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   TerminalInfoInteger(TERMINAL_CPU_CORES) = 8 
2023.09.26 06:28:23.304 Test_Corr (USDJPY,H1)   TerminalInfoString(TERMINAL_CPU_ARCHITECTURE) = AVX 
2023.09.26 06:28:23.332 Test_Corr (USDJPY,H1)   inRows = 100 inCols = 15000 
2023.09.26 06:28:45.032 Test_Corr (USDJPY,H1)   matrix<double> Matrix1 = CorrMatrix(Matrix) - 21700095 mcs, 1717 MB
2023.09.26 06:29:48.495 Test_Corr (USDJPY,H1)   matrix<double> Matrix2 = Matrix.CorrCoef(false) - 63460976 mcs, 1717 MB
2023.09.26 06:29:50.225 Test_Corr (USDJPY,H1)   IsEqual(Matrix1, Matrix2) = true 
Python 显然 要快得多 。因此,在 C 语言中也会更快,所以事实证明 MQ 并没有告诉我们什么,它承诺的性能相当....。

我应该注意的是,Python 在运行代码时有一个小的并行化过程--大约两个内核运行半秒,其余的在一个内核上运行。

 
Forester #:
你自己写道,标准版比现在的 alglibov 慢。我有旧版本的代码,但没有终端。

Alglib 源代码本身是由 MQ 为其矩阵重写的。我甚至不想讨论标准 CorrCoef,因为它存在明显的问题。

也就是说,Alglib 有两个源代码。

  • 在 MQ 转换之前的动态数组。
  • 针对矩阵/矢量类型修改过的 MQ。我就是这么测试的。
两个版本的 Alglib 源码都应该可用,这样你就可以相互比较了。
 
fxsaber #:

时间


嗯,是的......人们花了很多年来研究算法。我看到过一篇关于用 C++ 进行快速排序的文章--代码似乎更复杂,而且做了一些不必要的操作,但由于处理器预先进行了计算,所以运行速度更快。展望未来
 
fxsaber #:

Alglib 源码本身是由 MQ 为其矩阵重写的。我甚至不想讨论标准 CorrCoef,因为它存在明显的问题。

也就是说,Alglib 有两个来源。

  • 在 MQ 转换之前的动态数组。
  • 针对矩阵/矢量类型修改过的 MQ。我就是这么测试的。
这两个版本的 Alglib 的源代码都应该可用,因此你可以将它们相互比较。
我比较懒。我不使用相关性。我只是在一年前注意到了速度上的差异,并在这个话题出现时分享了出来。
 
fxsaber #:
NumPy 的算法似乎与 ALglib 不同。

在 AlgLib 中,原始文档说明了为什么不同、哪些不同以及它们的用途。对于回归(我主要是在那里研究 AlgLib),它是相当原始的。

同样,一切比较都很奇怪,因为你无法比较。为不同的库/实现建立速度=f(维度,特殊矩阵属性)依赖关系图,然后看看它们。你这是从天花板上提取的边缘案例。

在这里,你看的不是绝对值,而是症状和 "高原 "的存在。在此基础上,您可以选择一种工具来处理特定数据。

 
Forester #:

马克西姆的 CPU 比我的快 2 倍。我不记得他是否给出了 Algliba 的时间,我想没有。

我的 mt 是通过虚拟化运行的,测试结果不太可信。

另外,我选择在 Python 中计算一些东西,然后将其转移到任何平台上。例如,对于加密来说,你根本不需要终端。

就速度而言,这完全 扯淡。
 
Maxim Kuznetsov #:

同样,这也是一种奇怪的比较方式,你无法比较。

我不做比较,我提供的代码每个人都可以根据自己的情况进行测量。

100 的字符串长度是模式的长度。你可能不需要超过这个长度。

由于相关矩阵的二次方大小,15000 个样本的内存是有限的。样本越多越好。所以我自制了一个,可以有一百万个样本。

我既不想也没时间花在客观比较上。我是为了完成自己的任务而做的,并分享了工作代码。谁需要它,谁就能看到它。

 
诶诶......如果我们能将 5%的精力投入到一项共同的任务中,我们将在几个月内征服这个市场。

就这样,几十年来,每个人都在自己的汤里煮沸,90% 的有用时间都花在了这个无用的论坛上。