Обсуждение статьи "Библиотека численного анализа ALGLIB в MQL5"

 

Опубликована статья Библиотека численного анализа ALGLIB в MQL5:

В этой статье мы кратко рассмотрим библиотеку численного анализа ALGLIB 3.19, ее приложения и новые алгоритмы, позволяющие повысить эффективность анализа финансовых данных.

Почему стоит выбрать ALGLIB при работе с финансовыми данными?

Вот ключевые преимущества этой библиотеки:

  • Портативность: ALGLIB легко компилируется на различных платформах с использованием различных компиляторов, что делает ее доступной для разработчиков с разным опытом.
  • Простота использования: Поддержка нескольких языков программирования позволяет выбирать наиболее удобный для вас язык, не требуя изучать новый синтаксис.
  • Открытый исходный код: ALGLIB поставляется с открытым исходным кодом и может использоваться на условиях GPL 2+. Это делает ее доступной как для научных исследований, так и для коммерческих проектов.
  • Поддержка коммерческих пользователей: Коммерческие пользователи могут приобрести лицензию, что обеспечивает им правовую защиту при использовании ALGLIB.

Кроме того, библиотека ALGLIB содержит огромный набор тесткейсов, максимально покрывающих функционал предлагаемых методов. 

Автор: MetaQuotes

 

про "ALgLIB в MQL" всегда интересовал вопрос - а насколько она близка к оригиналу и ему соответствует? 

поймите правильно, самое плохое что может случится это получить разные результаты использовав AlgLIB например в C/С++ и в MQL.

 
Maxim Kuznetsov #:

про "ALgLIB в MQL" всегда интересовал вопрос - а насколько она близка к оригиналу и ему соответствует? 

поймите правильно, самое плохое что может случится это получить разные результаты использовав AlgLIB например в C/С++ и в MQL.

Две последние строчки (про тесткейсы) как раз об этом - запускайте, проверяйте и сравнивайте, никто ж не мешает.
 
Aleksey Nikolayev #:
Две последние строчки (про тесткейсы) как раз об этом - запускайте, проверяйте и сравнивайте, никто ж не мешает.

две последний строчки про test-case оригинальной AlgLIB. В адаптации MQL5 нет тестов.

 
Maxim Kuznetsov #:

две последний строчки про test-case оригинальной AlgLIB. В адаптации MQL5 нет тестов.

Какие-то вроде есть. Но если это не те, то что мешает переписать на mql5 которые те?
 
Maxim Kuznetsov #:

две последний строчки про test-case оригинальной AlgLIB. В адаптации MQL5 нет тестов.

Все обширные тесткейсы Alglib всегда были с самой первой портированной версии MQL5 библиотеки (октябрь 2012):

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

Сейчас это 3 850 кб тестов в исходниках и 105 000 строк кода, покрывающих практически весь функционал.

Каждый может скомпилировать юниттесты TestClasses.mq5 / TestInterfaces.mq5 и запустить в терминале.

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

Кроме Алглиба, есть тесткейсы для других математических библиотек:


 
Коллеги,  а где (в каком файле) можно посмотреть номер версии библиотеки?
 

После обновления перестала работать нейросеть.

Откатился на старую версию ALGLIB. Кому нужна - приложил.

Файлы:
Alglib_old.zip  644 kb
 

День добрый!

Кто-то смог разобраться как использовать нелинейную оптимизацию по МНК ?

Вот пример с сайта Alglib https://www.alglib.net/translator/man/manual.cpp.html#example_lsfit_d_nlf

Подскажите, плиз, что я не так делаю.

//+------------------------------------------------------------------+
//|                                                        Optim.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)
{
    // this callback calculates f(c,x)=exp(-c0*sqr(x0))
    // where x is a position on X-axis and c is adjustable parameter
    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;

//
// Fitting without weights
//
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());
   
  }