文章 "MQL5中的ALGLIB数值分析库"

 

新文章 MQL5中的ALGLIB数值分析库已发布:

本文简要介绍了ALGLIB 3.19数值分析库、它的应用以及可以提高金融数据分析效率的新算法。

为什么在处理金融数据时选择ALGLIB?

以下是库的主要优点:

  • 可移植性:ALGLIB使用各种编译器在各种平台上轻松编译,使不同背景的开发人员都可以访问它。
  • 易用性:支持多种编程语言,因此您可以选择最熟悉的语言,而无需学习新的语法。
  • 开源:ALGLIB是开源的,可以在GPL2+协议下使用。这使得科学研究和商业项目都可以使用它。
  • 商业用户支持:商业用户可以购买许可证,在使用ALGLIB时为他们提供法律保护。

此外,该库包含大量测试用例,涵盖了所提出方法功能的主要部分。这将允许您进行测试,并向项目作者报告检测到的错误。有关该库的更多详细信息,请访问项目网站https://www.alglib.net/

作者:MetaQuotes

 

我一直想知道 "MQL 中的 ALgLIB"--它与原版有多接近和对应?

如果理解正确,最糟糕的情况就是在 C/C++ 和 MQL 中使用 AlgLIB 得到不同的结果。

 
Maxim Kuznetsov #:

关于 "MQL 中的 ALgLIB "的问题一直很有趣--它与原版有多接近和对应?

如果理解正确,最糟糕的情况就是在 C/C++ 和 MQL 中使用 AlgLIB 得到不同的结果。

最后两行(关于测试用例)就是这个意思--运行、测试和比较,没有人会阻止你。
 
Aleksey Nikolayev #:
最后两行(关于测试用例)就是关于这一点--运行、测试和比较,没有人会阻止你。

最后两行是关于原始 AlgLIB 的测试用例。MQL5 中没有测试。

 
Maxim Kuznetsov #:

最后两行是关于原始 AlgLIB 的测试用例。MQL5 适应版中没有测试。

我认为 一些。但如果不是这样,有什么理由不重写 mql5 中的测试呢?
 

一些链接可拓宽您的视野。

<img width="640" height="480" src="https://c.mql5.com/3/419/3676818984909.png" loading="lazy" alt style="vertical-align:middle;"/ translate="no">

 
Maxim Kuznetsov #:

最后两行是关于原始 AlgLIB 的测试用例。MQL5 适应版中没有测试。

所有广泛的 Alglib 测试用例都来自 MQL5 库的第一个移植版本(2012 年 10 月):

\MQL5\Scripts\UnitTests\Alglib\
                               TestClasses.mq5
                               TestInterfaces.mq5
                               TestClasses.mqh
                               TestInterfaces.mqh

现在,源代码中有 3,850 kb 的测试和 105,000 行代码,几乎涵盖了所有功能。

任何人都可以编译单元测试 TestClasses.mq5 / TestInterfaces.mq5,并在终端运行它们。

Библиотеки: ALGLIB - библиотека численного анализа - Хорошая библиотека численного анализа MetaQuotes.
Библиотеки: ALGLIB - библиотека численного анализа - Хорошая библиотека численного анализа MetaQuotes.
  • 2012.10.12
  • www.mql5.com
ALGLIB - библиотека численного анализа MetaQuotes. Библиотека ALGLIB - крайне нужный инструмент исследователя и строителя торговых систем. Хотелось бы увидеть развернутую документацию по использованию функционала библиотеки и несколько статей на эту тему
 

除 Alglib 外,还有其他数学库的测试用例:


 
同事们,在哪里(哪个文件中)可以看到图书馆的版本号?
 

更新后,神经网络停止工作。

我退回到了旧版本的 ALGLIB。如果你需要它--附后。

附加的文件:
Alglib_old.zip  644 kb
 

下午好!

有人知道如何使用非线性 ISC 优化吗?

下面是 Alglib 网站https://www.alglib.net/translator/man/manual.cpp.html#example_lsfit_d_nlf 上的一个示例

您能告诉我我做错了什么吗?

//+------------------------------------------------------------------+
//|优化。mq5
//|vp
//|https://www.mql5.com ||
//+------------------------------------------------------------------+
#property copyright "vp"
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Math\Alglib\alglib.mqh>
 
 void function_cx_1_func(double &c[],double &x[],double &func,CObject &obj)
{
    // 该回调计算 f(c,x)=exp(-c0*sqr(x0))
    // 其中 x 是 X 轴上的位置,c 是可调参数
    func = MathExp(-c[0]*MathPow(x[0],2));
}


void OnStart()
  {
int info;
CObject  obj;
vector v = {-1,-0.8,-0.6,-0.4,-0.2,0,0.2,0.4,0.6,0.8,1.0}; 
double y[] = {0.223130, 0.382893, 0.582748, 0.786628, 0.941765, 1.000000, 0.941765, 0.786628, 0.582748, 0.382893, 0.223130};
double c[] = {0.3}; 
CMatrixDouble x;
x.Col(0,v);
double epsx = 0.000001;
int maxits = 0;
double diffstep = 0.0001;

//
// 无权重拟合
//
CLSFitStateShell state;
CAlglib::LSFitCreateF(x,y,c,diffstep,state);
CAlglib::LSFitSetCond(state,epsx,maxits);
CNDimensional_Rep rep;
CNDimensional_PFunc function_cx_1_func;
CAlglib::LSFitFit(state,function_cx_1_func,rep,0,obj);

CLSFitReportShell grep;
CAlglib::LSFitResults(state,info,c,grep); 
 
ArrayPrint(c); // expected:[1.5]
Print(grep.GetIterationsCount());
Print(grep.GetRMSError());
   
  }