文章 "MQL5 中的统计分布 - 取最佳的 R" - 页 10

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

什么叫 "显示"?

由于英镑现在不工作,我有一个 PAMM....

这不是重点....

我在写关于模型的文章,但这与模型无关--它一如既往地与钱有关,或者更准确地说,是与未来能否确定收到钱有关。

我认为,金融市场交易系统的主要问题不在于是否应用了复杂的数学模型,而在于对这些模型的过度训练(过度拟合)。过度训练的表现是,随着时间的推移(如果不是立即的话),TS 会失去与其训练相关的性能。

为了解决这个问题,我试图证明我开发的交易系统没有过度训练。也就是说,我想确保 TS 的未来表现不会有太大变化,而且无论如何也不会耗尽我的存款。

我正忙于这项工作。R 中有大量完成这项任务所需的工具。MKL 中根本没有相应的工具。

请看 Burnakov 关于机器学习的主题。我在那里详细讨论了这个话题。

这就是问题所在。你可能是个天才,但 R 不会让你转过身来--一切都在那里准备就绪。你想冲过去接受任务,--在这里,你--砰!-获得现成的解决方案。

过多的机会会让人的才能发展停滞不前。如果没有挑战,就不会有发展。那还能剩下什么?- 停滞不前,能力不可避免地退化。

对于一个追求自我发展的人来说,有必要逃离这样的领域。

要知道,机器学习并不是万能的。它在交易中可能毫无用处。策略参数可以在测试仪中通过优化进行调整。

也许你只是想让你的工作更轻松。

我理解,但我不接受。您需要努力工作。

[删除]  
СанСаныч Фоменко:

为了解决这个问题,我试图证明我所开发的交易系统没有变形。也就是说,我想确保 TS 的未来性能指标不会有太大变化,而且无论如何也不会耗尽我的存款。

我正忙于这项工作。R 中有大量完成这项任务所需的工具。MKL 中根本没有相应的工具。


这不完全正确,桑桑尼奇。

银行和对冲基金使用 "Tikhonov 正则化 "等数学方法来进行期权交易和其他用途。在存在大量噪声的交易中,这些银行离不开它。

而在 R 中却没有这种方法(这实在令人吃惊),或者说它就在互联网上的某个地方,但只是以预制脚本的形式存在,而且质量和准确性都难以理解。

http://stackoverflow.com/questions/38899849/r-packages-for-tikhonov-regularization-in-solving-least-squares-with-ill-conditi

这只能说明

a). 真正的实践者与 R 的开发毫无关系;

b). 来自交易界的严肃大叔们,如果他们在某处秘密使用 R 系统,那也只是为了建立非常简单的交易模型原型。

他们从未听说过 R 软件包中的 Yanenko 方法,银行和对冲基金有时会用它来解决期权计算和投资组合管理中的难题。(现在的交易大叔们有比亚能科方法更好的方法)。

我甚至不是在谈论一般计算机上,特别是 R 软件包中数学计算的准确性问题。

函数和子程序的聚合度越高(如 R 软件包),计算错误的系统误差概率就越大。

R packages for Tikhonov regularization in solving least squares with ill-conditioned matrices?
R packages for Tikhonov regularization in solving least squares with ill-conditioned matrices?
  • stackoverflow.com
Does anybody know any R packages available for Tikhonov regularization in solving least squares with ill-conditioned matrices? I know that there few functions available in MATLAB.
 

今天,我们收到了大量统计函数的 MQL5 与 R 基准测试结果。

R 的失败次数从数次到数十次不等。它的代码是正面编写的,没有人考虑过优化。在 MQL5 中,数学显然要快得多。

一旦我们完成 MQL5 数学库的工作,我们将发布一篇关于功能和基准的新文章。

[删除]  
令人惊叹的图书馆。伟大的作品
 

MetaTrader 5 1467 版本的测试版包括一个更新的统计库,其中包含扩展函数。

我们做了大量工作,对 MQL5 版本和原始 R 中的所有函数进行全面质量和准确性检查。结果发现,R 使用了许多旧的不可靠函数,这些函数的优化会导致计算错误。

我们的单元测试揭示了这一点,我们有义务将这些测试作为单独的脚本与我们的库一起发布在 /Scripts/UnitTests/Stat 目录中:

  • TestStat.mq5 - 用于检查计算结果的主要测试脚本
  • TestPrecision.mq5 - 测试计算精度
  • TestBenchmark.mq5 - 测量计算性能的测试


最大的惊喜 是,MQL5 的速度 令人信服地超过了 R 中函数的 C++ 实现。加速度从 1.5 到 46 倍不等,但平均加速度在 3 到 7 倍之间。

这证明了 MQL5 编译器的高质量,并允许交易者在平台内以更快的速度进行计算。

 

此外,一个类似于 R 的图形库也即将面世。

通过它,您可以轻松地将复杂的数据序列直接可视化到图形上:


 
Renat Fatkhullin:

此外,一个类似于 R 的图形库也即将面世。

通过它,您可以轻松地将复杂的数据序列直接可视化到图形上:

酷毙了!

贝塞尔曲线?NURBS?

 
Andrey Dik:

不错!

贝塞尔?NURBS?

贝塞尔。

我们将发布一篇大文章,对 R 的功能进行比较,并提供代码示例和大量图片来演示这些功能。

 

回到这条评论,下面是使用标准图形库在 MT5 中显示图表的新选项:

n <- 2000

k <- seq(0, n, by = 20)
a <- dbinom(k, n, pi/10, log = TRUE)
str(a)
plot(a)


#include <Math/Stat/Binomial.mqh>
#include <Graphics/Graphic.mqh>

void OnStart(void)
  {
   double    vars[101];
   double    results[101];
   const int N=2000;
//---
   MathSequence(0,N,20,vars);
   MathProbabilityDensityBinomial(vars,N,M_PI/10,true,results);
   ArrayPrint(results,4);
   GraphPlot(results);
//---
  }



就代码大小和调用本身而言,一切几乎相同。虽然只有 4 行代码,但 MQL5 代码从外观上更好看。

虽然引擎盖下是全功能图形 OOP 库 CGraphic,但我们有一些简单的 GraphPlot 函数,可以轻松输出 1、2、3 个数据序列的简单情况。

同一图形的两种输出方式:


将函数用作数据序列的有趣功能:

#include <Graphics/Graphic.mqh>

double Func1(double x) { return MathPow(x,2); }
double Func2(double x) { return MathPow(x,3); }
double Func3(double x) { return MathPow(x,4); }

void OnStart()
  {
   GraphPlot(Func1,Func2,Func3,-2,2,0.05,CURVE_LINES);
  }


将在今天的 MetaQuotes-Demo 测试版中提供。
 
Renat Fatkhullin:

回到这条评论,下面是使用标准图形库在 MT5 中显示图表的新选项:

#include <Math/Stat/Binomial.mqh>

... 

就代码大小和调用本身而言,一切几乎相同。那里和那里都是 4 行工作线,但 MQL5 代码从外部读起来更好。

...

将在今天的 MetaQuotes-Demo 测试版中提供。

谢谢。非常怀念好的统计图形!