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

 
Maxim Dmitrievsky #:

通过 SQL 阅读是否有效?

这辈子都不会

....

试试 Apache Arrow 或 DuckDB。

但 RAM 仍然是最快的方法。

.....

问题本身可以通过 G...ugly 解决,你的问题是不需要的 cor.

 
Forester #:

算法库中有一个双重相关计算函数。我想你只需将所有变量改为 char/uchar 变量,一切就都能正常工作了。 还有其他几十个常用函数也应重新设计。我们应该将 CMatrixDouble 改为动态数组或其他函数。

Pearson product-moment correlation matrix                        |
//| INPUT PARAMETERS:                                                |
//|     X   -   array[N,M], sample matrix:                           |
//|             * J-th column corresponds to J-th variable           |
//|             * I-th row corresponds to I-th observation           |
//|     N   -   N>=0, number of observations:                        |
//|             * if given, only leading N rows of X are used        |
//|             * if not given, automatically determined from input  |
//|               size                                               |
//|     M   -   M>0, number of variables:                            |
//|             * if given, only leading M columns of X are used     |
//|             * if not given, automatically determined from input  |
//|               size                                               |
//| OUTPUT PARAMETERS:                                               |
//|     C   -   array[M,M], correlation matrix (zero if N=0 or N=1)  |
//+------------------------------------------------------------------+
static bool CBaseStat::PearsonCorrM(const CMatrixDouble &cx,const int n,
                                    const int m,CMatrixDouble &c)


如果你有一个自制程序,如果没有现成的软件包,你也必须进行量化。

我想我太笨了......通过 Nampai 计算非常快,但通过 Panda 计算却又长又耗内存。我稍后再仔细检查。

 
Maxim Dmitrievsky #:

无模式,模式按相关矩阵搜索

也许我有什么不明白的地方。

 
mytarmailS #:

也许我有什么不明白的地方。

模式 = 一整套彼此高度相关的样本。

整个数据集中可能有很多这样的模式,每种模式在历史上的重合次数都不同。

如果没有矩阵,你就什么都找不到,或者你只能选取其中零散的一部分,而我正在计算所有可能的变体。

因此,你必须选取每一行,计算其与所有其他行的相关性,然后得到一个矩阵。
 
Maxim Dmitrievsky #:

模式 = 彼此高度相关的整组样本

整个数据集中可能有很多这样的集合

如果没有矩阵,你就什么也找不到,或者你只能选取其中零散的一部分,而我正在计算所有可能的变体。

因此,你必须取每一行,计算与其他所有行的相关性,然后得到一个矩阵。
我在 15-16 年也做过类似的工作。我把当前的情况,例如过去 20-50 个交易日的情况,搜索历史上最相似的 20 个例子。然后从这 20 个例子中得出未来的平均值。几乎每次我都能得到一条 +-5 点的直线。当时,5 个点的利润在我看来有点小,处于噪音的边缘。最后,我改用 MO,希望它能更大一些。但在这里,它与
一般来说,它与聚类相似。
在这里,示例的相似性被最大化。


树状分类/回归最大化了这些示例的未来相似性。它使过去的相似性变差。

 
Forester #:

很久以前我也做过类似的事情,现在有了新的想法,我又重新做了一遍

 
Maxim Dmitrievsky #:

模式 = 彼此高度相关的整组样本

整个数据集中可能有许多这样的模式,每个模式在历史上的匹配次数各不相同

如果没有矩阵,你将什么都找不到,或者你只能选取其中零散的一部分,而我正在计算所有可能的变体。

所以你必须把每一行都算上,然后计算与其他行的相关性,这样就得到了一个矩阵。

我们有一些三维数据。

一行代表一个观察结果,一列代表一个特征。

第一行是最近的数据。

X
      [,1] [,2] [,3]
 [1,]    1    4    1   посл. строка
 [2,]    4    1    2
 [3,]    1    2    5
 [4,]    2    5    3
 [5,]    5    3    2
 [6,]    3    2    3
 [7,]    2    3    3
 [8,]    3    3    1
 [9,]    3    1    5
[10,]    1    5    5
[11,]    5    5    2
[12,]    5    2    2
[13,]    2    2    1
[14,]    2    1    5
[15,]    1    5    5
[16,]    5    5    1
[17,]    5    1    1
[18,]    1    1    5
[19,]    1    5    5
[20,]    5    5    2
[21,]    5    2    2
[22,]    2    2    1
[23,]    2    1    4
[24,]    1    4    1
[25,]    4    1    4
[26,]    1    4    3
[27,]    4    3    2
[28,]    3    2    2

我们可以计算最后一行与其他每一行的相关性。

             cor
 [1,] 1 4 1  1.0000000
 [2,] 4 1 2 -0.7559289
 [3,] 1 2 5 -0.2773501
 [4,] 2 5 3  0.9449112
 [5,] 5 3 2 -0.1889822
 [6,] 3 2 3 -1.0000000
 [7,] 2 3 3  0.5000000
 [8,] 3 3 1  0.5000000
 [9,] 3 1 5 -0.8660254
[10,] 1 5 5  0.5000000
[11,] 5 5 2  0.5000000
[12,] 5 2 2 -0.5000000
[13,] 2 2 1  0.5000000
[14,] 2 1 5 -0.6933752
[15,] 1 5 5  0.5000000
[16,] 5 5 1  0.5000000
[17,] 5 1 1 -0.5000000
[18,] 1 1 5 -0.5000000
[19,] 1 5 5  0.5000000
[20,] 5 5 2  0.5000000
[21,] 5 2 2 -0.5000000
[22,] 2 2 1  0.5000000
[23,] 2 1 4 -0.7559289
[24,] 1 4 1  1.0000000
[25,] 4 1 4 -1.0000000
[26,] 1 4 3  0.7559289
[27,] 4 3 2  0.0000000
[28,] 3 2 2 -0.5000000

我们就能得到最后一行/当前一行与历史记录之间的 "相似性模式"。

你也可以进行聚类,得到类似的结果。

                cor    cluster
 [1,] 1 4 1  1.0000000      10
 [2,] 4 1 2 -0.7559289       6
 [3,] 1 2 5 -0.2773501       5
 [4,] 2 5 3  0.9449112      10
 [5,] 5 3 2 -0.1889822       7
 [6,] 3 2 3 -1.0000000       3
 [7,] 2 3 3  0.5000000       1
 [8,] 3 3 1  0.5000000       4
 [9,] 3 1 5 -0.8660254       5
[10,] 1 5 5  0.5000000       1
[11,] 5 5 2  0.5000000       2
[12,] 5 2 2 -0.5000000       9
[13,] 2 2 1  0.5000000       4
[14,] 2 1 5 -0.6933752       5
[15,] 1 5 5  0.5000000       1
[16,] 5 5 1  0.5000000       4
[17,] 5 1 1 -0.5000000       9
[18,] 1 1 5 -0.5000000       5
[19,] 1 5 5  0.5000000       1
[20,] 5 5 2  0.5000000       2
[21,] 5 2 2 -0.5000000       9
[22,] 2 2 1  0.5000000       4
[23,] 2 1 4 -0.7559289       5
[24,] 1 4 1  1.0000000      10
[25,] 4 1 4 -1.0000000       8
[26,] 1 4 3  0.7559289       1
[27,] 4 3 2  0.0000000       7
[28,] 3 2 2 -0.5000000       9


但我不明白,如果我们只需要当前/最后一行的状态,为什么还要计算 整个 相关矩阵?

            [,1]        [,2]        [,3]        [,4]       [,5]       [,6]       [,7]
 [1,]  1.0000000 -0.75592895 -0.27735010  0.94491118 -0.1889822 -1.0000000  0.5000000
 [2,] -0.7559289  1.00000000 -0.41931393 -0.92857143  0.7857143  0.7559289 -0.9449112
 [3,] -0.2773501 -0.41931393  1.00000000  0.05241424 -0.8910421  0.2773501  0.6933752
 [4,]  0.9449112 -0.92857143  0.05241424  1.00000000 -0.5000000 -0.9449112  0.7559289
 [5,] -0.1889822  0.78571429 -0.89104211 -0.50000000  1.0000000  0.1889822 -0.9449112
 [6,] -1.0000000  0.75592895  0.27735010 -0.94491118  0.1889822  1.0000000 -0.5000000
 [7,]  0.5000000 -0.94491118  0.69337525  0.75592895 -0.9449112 -0.5000000  1.0000000
 [8,]  0.5000000  0.18898224 -0.97072534  0.18898224  0.7559289 -0.5000000 -0.5000000
 [9,] -0.8660254  0.32732684  0.72057669 -0.65465367 -0.3273268  0.8660254  0.0000000
[10,]  0.5000000 -0.94491118  0.69337525  0.75592895 -0.9449112 -0.5000000  1.0000000
[11,]  0.5000000  0.18898224 -0.97072534  0.18898224  0.7559289 -0.5000000 -0.5000000
[12,] -0.5000000  0.94491118 -0.69337525 -0.75592895  0.9449112  0.5000000 -1.0000000
[13,]  0.5000000  0.18898224 -0.97072534  0.18898224  0.7559289 -0.5000000 -0.5000000
[14,] -0.6933752  0.05241424  0.88461538 -0.41931393 -0.5765567  0.6933752  0.2773501
[15,]  0.5000000 -0.94491118  0.69337525  0.75592895 -0.9449112 -0.5000000  1.0000000
[16,]  0.5000000  0.18898224 -0.97072534  0.18898224  0.7559289 -0.5000000 -0.5000000
[17,] -0.5000000  0.94491118 -0.69337525 -0.75592895  0.9449112  0.5000000 -1.0000000
[18,] -0.5000000 -0.18898224  0.97072534 -0.18898224 -0.7559289  0.5000000  0.5000000
[19,]  0.5000000 -0.94491118  0.69337525  0.75592895 -0.9449112 -0.5000000  1.0000000
[20,]  0.5000000  0.18898224 -0.97072534  0.18898224  0.7559289 -0.5000000 -0.5000000
[21,] -0.5000000  0.94491118 -0.69337525 -0.75592895  0.9449112  0.5000000 -1.0000000
[22,]  0.5000000  0.18898224 -0.97072534  0.18898224  0.7559289 -0.5000000 -0.5000000
[23,] -0.7559289  0.14285714  0.83862787 -0.50000000 -0.5000000  0.7559289  0.1889822
[24,]  1.0000000 -0.75592895 -0.27735010  0.94491118 -0.1889822 -1.0000000  0.5000000
[25,] -1.0000000  0.75592895  0.27735010 -0.94491118  0.1889822  1.0000000 -0.5000000
[26,]  0.7559289 -1.00000000  0.41931393  0.92857143 -0.7857143 -0.7559289  0.9449112
[27,]  0.0000000  0.65465367 -0.96076892 -0.32732684  0.9819805  0.0000000 -0.8660254
[28,] -0.5000000  0.94491118 -0.69337525 -0.75592895  0.9449112  0.5000000 -1.0000000
            [,8]       [,9]      [,10]      [,11]      [,12]      [,13]       [,14]
 [1,]  0.5000000 -0.8660254  0.5000000  0.5000000 -0.5000000  0.5000000 -0.69337525
 [2,]  0.1889822  0.3273268 -0.9449112  0.1889822  0.9449112  0.1889822  0.05241424
 [3,] -0.9707253  0.7205767  0.6933752 -0.9707253 -0.6933752 -0.9707253  0.88461538
 [4,]  0.1889822 -0.6546537  0.7559289  0.1889822 -0.7559289  0.1889822 -0.41931393
 [5,]  0.7559289 -0.3273268 -0.9449112  0.7559289  0.9449112  0.7559289 -0.57655666
 [6,] -0.5000000  0.8660254 -0.5000000 -0.5000000  0.5000000 -0.5000000  0.69337525
 [7,] -0.5000000  0.0000000  1.0000000 -0.5000000 -1.0000000 -0.5000000  0.27735010
 [8,]  1.0000000 -0.8660254 -0.5000000  1.0000000  0.5000000  1.0000000 -0.97072534
 [9,] -0.8660254  1.0000000  0.0000000 -0.8660254  0.0000000 -0.8660254  0.96076892
[10,] -0.5000000  0.0000000  1.0000000 -0.5000000 -1.0000000 -0.5000000  0.27735010
[11,]  1.0000000 -0.8660254 -0.5000000  1.0000000  0.5000000  1.0000000 -0.97072534
[12,]  0.5000000  0.0000000 -1.0000000  0.5000000  1.0000000  0.5000000 -0.27735010
[13,]  1.0000000 -0.8660254 -0.5000000  1.0000000  0.5000000  1.0000000 -0.97072534
[14,] -0.9707253  0.9607689  0.2773501 -0.9707253 -0.2773501 -0.9707253  1.00000000
[15,] -0.5000000  0.0000000  1.0000000 -0.5000000 -1.0000000 -0.5000000  0.27735010
[16,]  1.0000000 -0.8660254 -0.5000000  1.0000000  0.5000000  1.0000000 -0.97072534
[17,]  0.5000000  0.0000000 -1.0000000  0.5000000  1.0000000  0.5000000 -0.27735010
[18,] -1.0000000  0.8660254  0.5000000 -1.0000000 -0.5000000 -1.0000000  0.97072534
[19,] -0.5000000  0.0000000  1.0000000 -0.5000000 -1.0000000 -0.5000000  0.27735010
[20,]  1.0000000 -0.8660254 -0.5000000  1.0000000  0.5000000  1.0000000 -0.97072534
[21,]  0.5000000  0.0000000 -1.0000000  0.5000000  1.0000000  0.5000000 -0.27735010
[22,]  1.0000000 -0.8660254 -0.5000000  1.0000000  0.5000000  1.0000000 -0.97072534
[23,] -0.9449112  0.9819805  0.1889822 -0.9449112 -0.1889822 -0.9449112  0.99587059
[24,]  0.5000000 -0.8660254  0.5000000  0.5000000 -0.5000000  0.5000000 -0.69337525
[25,] -0.5000000  0.8660254 -0.5000000 -0.5000000  0.5000000 -0.5000000  0.69337525
[26,] -0.1889822 -0.3273268  0.9449112 -0.1889822 -0.9449112 -0.1889822 -0.05241424
[27,]  0.8660254 -0.5000000 -0.8660254  0.8660254  0.8660254  0.8660254 -0.72057669
[28,]  0.5000000  0.0000000 -1.0000000  0.5000000  1.0000000  0.5000000 -0.27735010
           [,15]      [,16]      [,17]      [,18]      [,19]      [,20]      [,21]
 [1,]  0.5000000  0.5000000 -0.5000000 -0.5000000  0.5000000  0.5000000 -0.5000000
 [2,] -0.9449112  0.1889822  0.9449112 -0.1889822 -0.9449112  0.1889822  0.9449112
 [3,]  0.6933752 -0.9707253 -0.6933752  0.9707253  0.6933752 -0.9707253 -0.6933752
 [4,]  0.7559289  0.1889822 -0.7559289 -0.1889822  0.7559289  0.1889822 -0.7559289
 [5,] -0.9449112  0.7559289  0.9449112 -0.7559289 -0.9449112  0.7559289  0.9449112
 [6,] -0.5000000 -0.5000000  0.5000000  0.5000000 -0.5000000 -0.5000000  0.5000000
 [7,]  1.0000000 -0.5000000 -1.0000000  0.5000000  1.0000000 -0.5000000 -1.0000000
 [8,] -0.5000000  1.0000000  0.5000000 -1.0000000 -0.5000000  1.0000000  0.5000000
 [9,]  0.0000000 -0.8660254  0.0000000  0.8660254  0.0000000 -0.8660254  0.0000000
[10,]  1.0000000 -0.5000000 -1.0000000  0.5000000  1.0000000 -0.5000000 -1.0000000
[11,] -0.5000000  1.0000000  0.5000000 -1.0000000 -0.5000000  1.0000000  0.5000000
[12,] -1.0000000  0.5000000  1.0000000 -0.5000000 -1.0000000  0.5000000  1.0000000
[13,] -0.5000000  1.0000000  0.5000000 -1.0000000 -0.5000000  1.0000000  0.5000000
[14,]  0.2773501 -0.9707253 -0.2773501  0.9707253  0.2773501 -0.9707253 -0.2773501
[15,]  1.0000000 -0.5000000 -1.0000000  0.5000000  1.0000000 -0.5000000 -1.0000000
[16,] -0.5000000  1.0000000  0.5000000 -1.0000000 -0.5000000  1.0000000  0.5000000
[17,] -1.0000000  0.5000000  1.0000000 -0.5000000 -1.0000000  0.5000000  1.0000000
[18,]  0.5000000 -1.0000000 -0.5000000  1.0000000  0.5000000 -1.0000000 -0.5000000
[19,]  1.0000000 -0.5000000 -1.0000000  0.5000000  1.0000000 -0.5000000 -1.0000000
[20,] -0.5000000  1.0000000  0.5000000 -1.0000000 -0.5000000  1.0000000  0.5000000
[21,] -1.0000000  0.5000000  1.0000000 -0.5000000 -1.0000000  0.5000000  1.0000000
[22,] -0.5000000  1.0000000  0.5000000 -1.0000000 -0.5000000  1.0000000  0.5000000
[23,]  0.1889822 -0.9449112 -0.1889822  0.9449112  0.1889822 -0.9449112 -0.1889822
[24,]  0.5000000  0.5000000 -0.5000000 -0.5000000  0.5000000  0.5000000 -0.5000000
[25,] -0.5000000 -0.5000000  0.5000000  0.5000000 -0.5000000 -0.5000000  0.5000000
[26,]  0.9449112 -0.1889822 -0.9449112  0.1889822  0.9449112 -0.1889822 -0.9449112
[27,] -0.8660254  0.8660254  0.8660254 -0.8660254 -0.8660254  0.8660254  0.8660254
[28,] -1.0000000  0.5000000  1.0000000 -0.5000000 -1.0000000  0.5000000  1.0000000
           [,22]      [,23]      [,24]      [,25]       [,26]      [,27]      [,28]
 [1,]  0.5000000 -0.7559289  1.0000000 -1.0000000  0.75592895  0.0000000 -0.5000000
 [2,]  0.1889822  0.1428571 -0.7559289  0.7559289 -1.00000000  0.6546537  0.9449112
 [3,] -0.9707253  0.8386279 -0.2773501  0.2773501  0.41931393 -0.9607689 -0.6933752
 [4,]  0.1889822 -0.5000000  0.9449112 -0.9449112  0.92857143 -0.3273268 -0.7559289
 [5,]  0.7559289 -0.5000000 -0.1889822  0.1889822 -0.78571429  0.9819805  0.9449112
 [6,] -0.5000000  0.7559289 -1.0000000  1.0000000 -0.75592895  0.0000000  0.5000000
 [7,] -0.5000000  0.1889822  0.5000000 -0.5000000  0.94491118 -0.8660254 -1.0000000
 [8,]  1.0000000 -0.9449112  0.5000000 -0.5000000 -0.18898224  0.8660254  0.5000000
 [9,] -0.8660254  0.9819805 -0.8660254  0.8660254 -0.32732684 -0.5000000  0.0000000
[10,] -0.5000000  0.1889822  0.5000000 -0.5000000  0.94491118 -0.8660254 -1.0000000
[11,]  1.0000000 -0.9449112  0.5000000 -0.5000000 -0.18898224  0.8660254  0.5000000
[12,]  0.5000000 -0.1889822 -0.5000000  0.5000000 -0.94491118  0.8660254  1.0000000
[13,]  1.0000000 -0.9449112  0.5000000 -0.5000000 -0.18898224  0.8660254  0.5000000
[14,] -0.9707253  0.9958706 -0.6933752  0.6933752 -0.05241424 -0.7205767 -0.2773501
[15,] -0.5000000  0.1889822  0.5000000 -0.5000000  0.94491118 -0.8660254 -1.0000000
[16,]  1.0000000 -0.9449112  0.5000000 -0.5000000 -0.18898224  0.8660254  0.5000000
[17,]  0.5000000 -0.1889822 -0.5000000  0.5000000 -0.94491118  0.8660254  1.0000000
[18,] -1.0000000  0.9449112 -0.5000000  0.5000000  0.18898224 -0.8660254 -0.5000000
[19,] -0.5000000  0.1889822  0.5000000 -0.5000000  0.94491118 -0.8660254 -1.0000000
[20,]  1.0000000 -0.9449112  0.5000000 -0.5000000 -0.18898224  0.8660254  0.5000000
[21,]  0.5000000 -0.1889822 -0.5000000  0.5000000 -0.94491118  0.8660254  1.0000000
[22,]  1.0000000 -0.9449112  0.5000000 -0.5000000 -0.18898224  0.8660254  0.5000000
[23,] -0.9449112  1.0000000 -0.7559289  0.7559289 -0.14285714 -0.6546537 -0.1889822
[24,]  0.5000000 -0.7559289  1.0000000 -1.0000000  0.75592895  0.0000000 -0.5000000
[25,] -0.5000000  0.7559289 -1.0000000  1.0000000 -0.75592895  0.0000000  0.5000000
[26,] -0.1889822 -0.1428571  0.7559289 -0.7559289  1.00000000 -0.6546537 -0.9449112
[27,]  0.8660254 -0.6546537  0.0000000  0.0000000 -0.65465367  1.0000000  0.8660254
[28,]  0.5000000 -0.1889822 -0.5000000  0.5000000 -0.94491118  0.8660254  1.0000000

这里的思考深度是什么?

我们是需要所有的模式,还是需要与当前情况和最后观察结果相对应的模式?

 
mytarmailS #:

我们是否有任何三维数据

一行代表一个观察结果,一列代表一个特征。

第一行就像是最近的数据。

您可以计算最后一行与其他各行的相关性。

我们可以得到最后一行/当前行与历史记录之间的 "相似模式

你也可以进行聚类,得到类似的结果。


但我不明白,如果我们只需要当前/最后一行的状态,为什么还要计算 整个 相关矩阵。

这里的思考深度是什么?

是我们将一次性找到所有模式,我们需要所有模式,还是我们需要与当前情况和最后观察结果相对应的模式?

没有当前情况,只是历史搜索。

然后,你根据你的指标对模式进行排序,然后把最好的模式输入机器人。

 
Maxim Dmitrievsky #:

没有当前,只是历史搜索

你可以一次只搜索一个模式,内存几乎是免费的,如果在任何时刻你只能在一个模式中,而不是所有模式中,你为什么要查看整个历史中的所有模式呢....?


还是我有什么不明白的地方?

 
mytarmailS #:

您可以一次只搜索一个模式,内存几乎是免费的,如果在任何特定时刻您只能在一个模式中,而不是所有模式中,您为什么要查看整个历史记录中的所有模式呢...


还是我有什么不明白的地方?

你仍然需要检查所有的数据,并选择最好的数据与新数据进行核对。

#32456
Машинное обучение в трейдинге: теория, модели, практика и алготорговля - Если объем добавок в позицию зависит от текущей просадки, тогда никакие ТС не работают.
Машинное обучение в трейдинге: теория, модели, практика и алготорговля - Если объем добавок в позицию зависит от текущей просадки, тогда никакие ТС не работают.
  • 2023.09.21
  • www.mql5.com
Корреляционная матрица между строками заданных признаков. берется статистика по всем строкам как было в будущем в среднем. в тестере ищем корреляцию текущих значений с эталоном. Но я делаю в питоне и считаю корреляцию сразу для всех возможных пар