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

 
СанСаныч Фоменко #:

定量是一种概率。因此,我们要移除/替换概率小于 1%/大于 99% 或其他数量的数据。我们不能截断数量--我们有倾斜和有尾的分布。

他们写道,最好将替换值作为 MOE 对该数量的预测值。但在我看来,这似乎有点矫枉过正。

问题的关键在于,通常很难确定自动机上的分布。

通常情况下,它应该是对数正态分布,但这只是因为异常值的存在,并不符合逻辑。

而且如果取一个量值,就意味着在整个范围内进行切割,这不足以去除异常值。


在第二个样本中,我得到了一个非常奇怪的结果--在没有任何操作的情况下,它只是在快速学习,但在移除有异常值的行之后,学习效果几乎等于零。

现在,我开启了慢速学习功能--我将把它开启一夜--看看是否会有什么结果。

否则,事实证明整个学习过程都是基于对异常值的记忆,至少我在实验中使用的公共预测因子是这样。

 
Aleksey Vyazmikin #:

问题的关键在于,通常很难确定自动驾驶汽车的分配情况。

通常情况下,它可能是对数正态分布,但这只是因为排放的原因,并不符合逻辑。

如果采用定量法,就意味着要在整个范围内进行切割,这不足以去除异常值。


在第二个样本中,我得到了一个非常奇怪的结果--在没有任何操作的情况下,它只是在快速学习,但在移除有异常值的行之后,学习的效果几乎等于零。

现在,我开启了慢速学习功能--我将把它开启一夜--我将看看它是否会产生任何效果。

否则,事实证明整个学习过程都是基于对异常值的记忆,至少我在实验中使用的公共预测因子是这样。

我在冬季运行了 EA 模型(我在这个主题上发布了结果),结果恰恰相反:分类错误(不到 20%)被异常值捕获。因此,80% 的正确预测被这些错误抵消了。

有一点我很清楚:应该剔除异常值。而模型的真正结果是没有异常值的。

 
СанСаныч Фоменко #:

我在冬季将模型升级到了 EA(我已将结果发布在本主题上)。 我得到了相反的结果:分类错误(小于 20%)被异常值捕获。因此,80% 的正确预测被这些错误抵消了。

有一点我很清楚:应该剔除异常值。而模型的真正结果是没有异常值的。

在边缘处,有明显的概率向某个类别转移--这本身并不是坏事,糟糕的是这些观察结果不足以得出具有统计学意义的结论。

因此,离群值中一个有更多的零,而另一个有更多的一,这是正常的--这取决于预测因子集。

还有一种情况是,如果从两边观察离群值,一边更接近零,另一边更接近一。

 
Aleksey Vyazmikin #:

在哪里可以看到最终代码?

我在这个主题中发布了所有内容。

 
Rorschach #:

源代码已打开,您可以查看一下。计算相关性的函数,右侧有[源]字样,点击后将进入代码。我们感兴趣的是第 2885-2907 行。第 2889 行使用了协方差,点击 cov 后,代码中所有提到 cov 的地方都会出现在右侧。的行后,将跳转到协方差函数,以此类推。MQL 类 C 语言,所有类 C 语言都有 ~90% 的相似性,您可以毫不费力地理解 C#、Java、Python、JavaScript。

谢谢。我对算法已经有点冷淡了,等热情恢复后我再看看。

 
fxsaber #:

我想我已经在这个主题中发布了所有内容。

我当然读过了,但根据时间顺序,Forester 发现了一些错误,你同意了它,然后代码的某些部分被修正了。

最后,我没有在这里看到完整版的最终代码。我并不是说你有义务公布代码,我只是问......

 
Aleksey Vyazmikin #:

我当然读过了,但根据时间顺序,福雷斯特 发现了一些错误,你同意了它,然后代码的某些部分被纠正了。

最后,我没有在这里看到完整版的最终代码。我并不是说你有义务公布代码,我只是问......

快速、逐行(已更正)。

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

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

fxsaber, 2023.10.01 09:38

#include <Math\Alglib\statistics.mqh> // https://www.mql5.com/ru/code/11077

const matrix<double> CorrMatrix( const matrix<double> &Matrix )
{
  matrix<double> Res = {};
  
  const CMatrixDouble MatrixIn(Matrix);
  CMatrixDouble MatrixOut;  

  if (CBaseStat::PearsonCorrM(MatrixIn, MatrixIn.Rows(), MatrixIn.Cols(), MatrixOut)) // https://www.mql5.com/ru/code/11077
    Res = MatrixOut.ToMatrix();
  
  return(Res);
}

const matrix<double> CorrMatrix2( const matrix<double> &Matrix )
{
  matrix<double> Res = {};
  Res.Init(Matrix.Cols(), Matrix.Cols());
  
  const CMatrixDouble MatrixIn(Matrix);
  CMatrixDouble Vector(Matrix);
  CMatrixDouble Corr;

  for (int i = 0; i < (int)Matrix.Cols(); i++)
  {
    if (i)
      Vector.SwapCols(0, i);
    
    CBaseStat::PearsonCorrM2(Vector, MatrixIn, MatrixIn.Rows(), 1, MatrixIn.Cols(), Corr);
      
    Res.Col(Corr.Row(0), i);
  }
  
  return(Res);
}
 
fxsaber #:

快速、逐行(经更正)。

谢谢!

 
Maxim Dmitrievsky #:

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

5 分钟,半训练


无非是把 4 罗汉拳类比为短停。

 
Renat Akhtyamov #:

无非是用短停来类比 4rosh Grail。

比喻你的对冲基金余额为负。