Discussão do artigo "Biblioteca de análise numérica ALGLIB em MQL5"

 

Novo artigo Biblioteca de análise numérica ALGLIB em MQL5 foi publicado:

Neste artigo, vamos brevemente revisar a biblioteca de análise numérica ALGLIB 3.19, suas aplicações e novos algoritmos que aumentam a eficácia da análise de dados financeiros.

Por que escolher o ALGLIB ao trabalhar com dados financeiros?

Aqui estão as principais vantagens desta biblioteca:

  • Portabilidade: O ALGLIB é facilmente compilado em diferentes plataformas usando vários compiladores, tornando-o acessível para desenvolvedores com diferentes experiências.
  • Facilidade de Uso: O suporte a múltiplas linguagens de programação permite escolher a mais conveniente para você, sem a necessidade de aprender uma nova sintaxe.
  • Código Aberto: O ALGLIB vem com código aberto e pode ser utilizado sob os termos da GPL 2+. Isso o torna acessível tanto para pesquisas científicas quanto para projetos comerciais.
  • Suporte a Usuários Corporativos: Usuários corporativos podem adquirir uma licença, o que lhes proporciona proteção legal ao usar o ALGLIB.

Além disso, a biblioteca ALGLIB contém um vasto conjunto de casos de teste, cobrindo ao máximo as funcionalidades dos métodos oferecidos. Isso permite que você faça seus próprios testes e relate quaisquer erros encontrados aos autores do projeto. Mais informações sobre a biblioteca podem ser encontradas no site do projeto https://www.alglib.net/

Autor: MetaQuotes

 

Sempre me perguntei sobre o "ALgLIB em MQL" - quão próximo ele é do original e corresponde a ele?

Se você entender corretamente, a pior coisa que pode acontecer é obter resultados diferentes usando o AlgLIB, por exemplo, em C/C++ e em MQL.

 
Maxim Kuznetsov #:

A pergunta sobre o "ALgLIB in MQL" sempre foi interessante: o quanto ele se aproxima do original e corresponde a ele?

Se você entender corretamente, a pior coisa que pode acontecer é obter resultados diferentes usando o AlgLIB, por exemplo, em C/C++ e em MQL.

As duas últimas linhas (sobre casos de teste) são exatamente sobre isso - execute, teste e compare, ninguém está lhe impedindo.
 
Aleksey Nikolayev #:
As duas últimas linhas (sobre casos de teste) são exatamente sobre isso - execute, teste e compare, ninguém o está impedindo.

As duas últimas linhas são sobre o caso de teste do AlgLIB original. Não há testes na adaptação para MQL5.

 
Maxim Kuznetsov #:

as duas últimas linhas sobre o caso de teste do AlgLIB original. Não há testes na adaptação para MQL5.

Acho que alguns. Mas, se não forem os testes, o que o impede de reescrever os que estão no mql5?
 
Maxim Kuznetsov #:

as duas últimas linhas sobre o caso de teste do AlgLIB original. Não há testes na adaptação para MQL5.

Todos os extensos casos de teste da Alglib sempre foram da primeira versão portada da biblioteca MQL5(outubro de 2012):

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

Agora são 3.850 kb de testes no código-fonte e 105.000 linhas de código que abrangem quase todas as funcionalidades.

Qualquer pessoa pode compilar os testes unitários TestClasses.mq5 / TestInterfaces.mq5 e executá-los no terminal.

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

Além da Alglib, há casos de teste para outras bibliotecas de matemática:


 
Colegas, onde (em que arquivo) posso ver o número da versão da biblioteca?
 

Após a atualização, a rede neural parou de funcionar.

Voltei para a versão antiga do ALGLIB. Se você precisar dela - em anexo.

Arquivos anexados:
Alglib_old.zip  644 kb
 

Boa tarde!

Alguém conseguiu descobrir como usar a otimização não linear do ISC?

Aqui está um exemplo do site da Alglib https://www.alglib.net/translator/man/manual.cpp.html#example_lsfit_d_nlf

Poderia me dizer o que estou fazendo de errado?

//+------------------------------------------------------------------+
//|Otimizar.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)
{
    // essa chamada de retorno calcula f(c,x)=exp(-c0*sqr(x0))
    // em que x é uma posição no eixo X e c é um parâmetro ajustável
    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;

//
// Ajuste sem pesos
//
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); // EXPECTATIVA: [1.5]
Print(grep.GetIterationsCount());
Print(grep.GetRMSError());
   
  }