Discussão do artigo "Usando os recursos computacionais do MATLAB 2018 no MetaTrader 5"

 

Novo artigo Usando os recursos computacionais do MATLAB 2018 no MetaTrader 5 foi publicado:

Depois da atualizar o pacote MATLAB em 2015, é necessário considerar a maneira moderna de criar bibliotecas DLL. Como o exemplo de um indicador preditivo, o artigo ilustra os recursos de vinculação do MetaTrader 5 e do MATLAB usando versões modernas de plataformas de 64 bits. Ao analisar toda a sequência de conexão do MATLAB, o desenvolvedor MQL5 criará rapidamente aplicativos com recursos computacionais avançados, evitando riscos.

A eficiência do indicador foi testada com base em dados de negociação fornecidos pela plataforma MetaTrader, EURUSD H1. Foi selecionado um segmento de dados de 450 contagens (não muito grande), enquanto foram testados atrasos de longo período "sazonal" de 28, 30, e 32 contagens, no período analisado o melhor entre eles foi o atraso com um período de 32 contagens.

Foi realizada uma série de cálculos para diferentes fragmentos do histórico. No modelo, o comprimento do segmento de dados (450), o atraso sazonal (32), o comprimento da previsão (30) foram definidos uma vez e sem alterações posteriores. Para avaliar a qualidade da previsão, os resultados de diferentes fragmentos foram comparados com os dados reais.

Apresentamos imagens mostrando o resultado do indicador. Em todas as imagens, a cor de chocolate indica a conclusão do fragmento, segundo o qual o modelo SARIMA(2,1,2) foi selecionado no MATLAB, enquanto a previsão obtida, construída com base nele, é plotada a azul.

EURUSDH1_450(32)-180

Autor: Roman Korotchenko

 

No R, esse e outros modelos mais complexos são criados em poucas linhas. O consumo de tempo não é proporcional. Além disso, para cada novo modelo, você precisa escrever seu código original.

Não é promissor. No entanto, para aqueles que são fortes em MATLAB, pode ser uma opção.

Mas o trabalho realizado é impressionante.

Boa sorte

 

Devo ajustá-lo aqui? Não?

matlab_st

Boa sorte.

 
Vladimir Perervenko:

Devo ajustá-lo aqui? Não?

Boa sorte.

Você quer dizer que há um erro? Onde exatamente e o que devo mudar? Não estou vendo.

 
Roman Korotchenko:

Quer dizer que houve um erro? Onde exatamente e o que devo mudar? Não estou vendo isso.

Há algo errado com essa expressão. Veja isso. A expressão sempre diz FALSE.

 
Vladimir Perervenko:

Há algo errado com essa expressão. Veja isso. A expressão sempre diz FALSO.

Parece ser um "excesso de seguro" excessivo para a etapa de tempo usada. Acontece que o processamento ocorreu mais rápido do que a nova contagem. Isso também pode indicar um bom desempenho do computador. Como a condição é falsa, ela não afeta o algoritmo. Seria pior se ela fosse verdadeira com muita frequência). Trabalharei no desenvolvimento do indicador e "moverei" a condição para que ela não seja tão sem sentido. Obrigado por seu comentário.

 
Roman Korotchenko:

Parece que há um "excesso de seguro" excessivo para a etapa de tempo usada. Acontece que o processamento foi feito mais rapidamente do que a nova contagem regressiva. Isso também pode indicar um bom desempenho do computador. Como a condição é falsa, ela não afeta o algoritmo. Seria pior se ela fosse verdadeira com muita frequência). Trabalharei no desenvolvimento do indicador e "moverei" a condição para que ela não seja tão sem sentido. Obrigado por seu comentário.

Boa sorte.

 
Roman Korotchenko:

Parece que há um "excesso de seguro" excessivo para a etapa de tempo usada. Acontece que o processamento foi feito mais rapidamente do que a nova contagem regressiva. Isso também pode indicar um bom desempenho do computador. Como a condição é falsa, ela não afeta o algoritmo. Seria pior se ela fosse verdadeira com muita frequência). Trabalharei no desenvolvimento do indicador e "moverei" a condição para que ela não seja tão sem sentido. Obrigado pela observação.

Esse é um aviso do compilador, não relacionado à velocidade de processamento. A condição usa variáveis sem sinal do tipo uint, que nunca podem ser < 0. Substitua por int para que você possa obter uma diferença negativa.

 
Stanislav Korotky:

Esse é um aviso do compilador não relacionado à velocidade de processamento. A condição usa variáveis sem sinal do tipo uint, que nunca podem ser < 0. Substitua por int para que você possa obter uma diferença negativa.

Obrigado pela dica.

 
E para integrar com TradingView? 
 
Roman ,
você já testou os arquivos em uma instalação limpa do Windows 10?Não importa o que eu faça, ele não carrega as dlls de tempo de execução do pacote mcr. Eu baixei o MCR Runtime
http://ssd.mathworks.com/supportfiles/downloads/R2018b/deployment_files/R2018b/installers/win64/MCR_R2018b_win64_installer.exe
 Obrigado pela ajuda.