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

 
Maxim Dmitrievsky #:

是国防部

如果原始 EA 的模式是一样的,那就没有区别了:看到模式,打开。

 
fxsaber #:

在 MQL5 中,计算这样一个矩阵的元素在我的旧机器上需要约 55 个小时。内存消耗极少。

行长为 100。

一百万乘以一百万还是 100?这是输入矩阵吗?
输出是 1000000* 1000000?这可是一兆兆字节。你是逐行读取并转存到光盘上的吗?
你用的是什么函数?PearsonCorrM、PearsonCorrM2、PearsonCorr2 还是标准?

 
fxsaber #:

如果原始 EA 的模式是相同的,也没有什么区别:看到模式,打开。

这里不同的是,EA 自己会产生信号。

而模式集应该与逻辑相联系。我尝试过定向交易和最小反转,两者都有模式,而且相对较好。

 
Forester #:

是一百万乘以一百万还是一亿?这是输入矩阵吗?

输入是 100x1000000。

输出是 1000000*1000000 ?那就是一兆兆字节你逐行计算并转存到磁盘?

一行一行地数我什么也没转存。要做到这一点,我们不需要写矩阵,只需要计算它的行数。

您用什么函数进行计数?PearsonCorrM、PearsonCorrM2、PearsonCorr2 还是标准函数?

我找不到逐行计算的内部函数。Alglib 看起来很慢。我正在尝试自己的版本。

 
Maxim Dmitrievsky #:

这不一样,NS 会产生自己的信号。

而模式集应与逻辑相联系。我尝试过定向交易和最小反转,两者都有模式,而且相对较好

听起来不错。

 
Maxim Dmitrievsky #:

我暂时把它放在一边,因为它的效果并不比 MO 好,虽然 MO 在平衡的流畅性方面也很逊色

5 分钟,半训练


看到更多的风险是很有趣的。
 
fxsaber #:

一行一行地看。我没有打折扣。在讨论寻找模式时,粗略地说,在每一行中,您只需要找到 Abs(Corr[i]) > 0.9 的情况。

A 是精确的。每一行可能只有 1-5 千个相关行,必要时可以保存。

fxsaber#: 我还没有找到标准的逐行计算方法。Alglib 看起来很慢。我正在尝试自己的变体。

我认为 PearsonCorrM2 可以快速工作。我们输入 1 个满矩阵,从一行开始检查第 2 个矩阵。如果从最后一行开始计算,我们可以将第一个矩阵的大小指定为下一行的行数,这样就不会重复计算被检验行以下各行的相关性。

 
Forester #:

我认为 PearsonCorrM2 将是一条快速通道。

我一开始也怀疑它的速度。

// Считает Pos-строку.
const matrix<double> CorrMatrix( const matrix<double> &Matrix, const int Pos )
{
  matrix<double> Res = {};
  
  const CMatrixDouble MatrixIn(Matrix);
      
  matrix<double> Column;
  Column.Assign(Matrix.Col(Pos));
  Column.Init(Column.Cols(), 1);
  
  const CMatrixDouble Vector(Column);
  CMatrixDouble MatrixOut;  

  if (CBaseStat::PearsonCorrM2(Vector, MatrixIn, MatrixIn.Rows(), 1, MatrixIn.Cols(), MatrixOut))
    Res = MatrixOut.ToMatrix();
  
  return(Res);
}

我试过其中一个,但只测出了亮点。有些慢,所以我自己做了一个。

 

除了我,其他人又不是不知道。


皮尔逊在乘法和加法的作用下是不变的。

void OnStart()
{
  const double a = 2, b = 7;  
  const vector<double> Vector = {1, 2, 3, 4};
    
  Print(Vector.CorrCoef(Vector * a + b));   // 1
  Print(Vector.CorrCoef((Vector + a) * b)); // 1
}

尽管公式很简单,但我并不觉得是加法。维基上也是这么说的。

Ключевым математическим свойством коэффициента корреляции Пирсона является то, что он инвариант при отдельных изменениях положения и масштаба двух переменных. То есть мы можем преобразовать X в a + bX и преобразовать Y в c + dY, где a, b, c и d - константы с b, d>0, без изменения коэффициента корреляции.

尤其是这个初始矩阵
[[1,2,3]
 [1,2,3]
 [2,4,4]]

有一个单位相关矩阵(行乘以列)。

 
fxsaber #:

皮尔逊在乘法和加法的作用下是不变的。

对于价格数据来说,这可能不是很好。