English Русский 中文 Español Deutsch 日本語
preview
MQL5 — Você também pode se tornar um mestre nesta linguagem

MQL5 — Você também pode se tornar um mestre nesta linguagem

MetaTrader 5Entrevistas | 21 fevereiro 2023, 16:21
840 3
Daniel Jose
Daniel Jose

Introdução

Neste artigo, irei fazer algo um pouco diferente, do que venho fazendo. Basicamente este artigo, será voltado para pessoas com pouco, ou nenhum conhecimento em MQL5, ou em programação, no geral. Então este artigo será como uma entrevista com a minha pessoa, onde explicarei um pouco, de como você pode aprender MQL5, e se tornar um grande profissional, e isto começando do zero.


Um pouco de história.

Desde que comecei a escrever artigos, aqui para a comunidade MQL5, tenho recebido um feedback muito grande, por parte de todos. Muitos tem me procurado, querendo saber onde aprendi a programar em MQL5, a ponto de fazer o que tenho mostrado nos artigos. Tenho notado, que grande parte destas pessoas, ou são entusiastas ou pessoas querendo uma orientação básica de como fazer para aprender, o mínimo necessário. Então este artigo é voltado a todos vocês, entusiastas e aspirantes a aprender como programar em MQL5.

Antes de começar de mais nada, preciso falar uma coisa. O motivo não é para desmotivar você, muito pelo contrário, a ideia é motivar ainda mais.

Você talvez pense, que eu deva ter muitos anos programando em MQL5. Mas na verdade, no momento que escrevo este artigo, estou completando apenas um ano e seis meses, fazendo uso da linguagem MQL5. Isto mesmo, tenho menos de dois anos como programador de MQL5. Talvez você não consiga entender, como alguém com tão pouco tempo, programado em MQL5, pode conseguir fazer o que tenho mostrado, ser possível ser feito em MQL5 e voltado a plataforma MetaTrader 5.

Pois bem, o motivo, é justamente o fato de que os desenvolvedores e mantedores da linguagem de programação MQL5, tiveram e bela sacada de fazer com que a linguagem, se parecesse em muitos aspectos a linguagem C / C++. O simples fato de isto acontecer, faz com que programadores com muito tempo de experiência em C / C++, tenham uma curva de aprendizado extremamente inclinada. Já que não é preciso que precisemos reaprender todos conceitos, sintaxe e comandos.

E por que estou dizendo isto ?!?! O motivo, é que sou programador profissional em C / C++, desde o começo dos anos 2000, ou seja, tenho mais de 23 anos programando em C / C++. Se eu tivesse que aprender uma nova linguagem, para consegui de fato fazer algo para o MetaTrader 5, muito provavelmente eu acabaria por desistir.

Diversas pessoas pensam, que para ser um bom programador, é preciso fazer este ou aquele curso. Mas no bem da verdade, para realmente aprender a programar, você não deve ter medo de errar. Não deve nunca se apegar a um código, ou ideia. Deve sempre procurar experimentar e tentar coisas novas.

Isto talvez soe um pouco estranho, já que muitos gostam sempre de fazer a mesma coisa, e sempre do mesmo jeito. Mas uma pessoa que realmente irá se tornar um programador de qualidade, está sempre tentando fazer a mesma coisa, só que de formas diferentes. Uma outra coisa, que muitos também não conseguem de fato compreender, é que um programador, irá sempre se inspirar em um outro. A pessoa pega o código fonte, que foi feito por um programador mais experiente, e que esteja funcionando, e vai mudando o código aos poucos, experimentando e vendo o resultado, para assim aprender como de fato o programa foi construído.

Muitos acham, erroneamente, que para aprender MQL5, você tem que sair estudando qualquer coisa. Na verdade, todos que tem me perguntando como fazer para aprender de fato, não tendo nenhum outro conhecimento prévio, sobre o assunto. Tenho lhes aconselhado a começar pelo mais simples. Ou seja aprender um pouco sobre C legado, para de fato conhecer a sintaxe e a forma de programar, assim como os comandos. Depois que conseguir compreender o básico sobre C, começar a estudar C++ ao mesmo tempo que começa a praticar MQL5. O simples fato, de você já ter uma base de como programar em C, já lhe ajudará imensamente a começar a programar em MQL5.

Muita gente pode achar que a linguagem C, está morta, mas a verdade, é que a linguagem C, é extremamente documentada e muito explorada. Sendo assim você encontrará vasto material a fim de conseguir aprender a fazer uso dela. Agora atenção: Não estou dizendo que você precisa se aprofundar na linguagem C. Muito pelo contrário, se você aprender alguns comandos básicos, a sintaxe e a forma como os comandos são dados, isto já será suficiente para que você consiga começar no MQL5.

Isto talvez possa parecer um pouco desmotivador. Aprender C para se desenvolver em MQL5 ?!?! Talvez, se você se dedicar muito, e encontrar alguém disposto a lhe ensinar. Talvez você possa começar diretamente no MQL5. Mas por conta da experiência que tive no começo, e por relatos de outras pessoas, posso dizer que a tarefa não será muito simples. Já que o pouco material de qualidade, realmente está quase todo concentrado aqui na comunidade MQL5. No resto da internet, o material é muito disperso e muitas das vezes de baixa qualidade, o que mais irá lhe prejudicar do que lhe ajudar. No entanto, no que tange a linguagem C e C++, existe muito material de excelente qualidade, e bastante acessível. Assim sendo fica ao seu critério, a escolha de por onde começar.


Meu primeiro código feito em MQL5

Muita gente pensa, que por eu já saber programar em C / C++, e ter bastante experiência em ambas linguagens. Quando comecei a fazer códigos em MQL5, fui logo começando a fez coisas complicadas e elaboras. Bem, até que eu queria poder dizer, que foi assim que tudo começou. Mas, porém, toda via e entretanto, a coisa não foi bem assim.

Sempre que começamos, a realmente tomar as nossas próprias decisões, e desenvolver as nossa próprias soluções. Começamos por algo que imaginamos já conhecer. No caso, quando comecei no MQL5, tudo que eu tinha em mãos era a documentação da mesma. A mesma documentação que você tem quando instala o programa. Eu se quer sabia que existia uma comunidade, voltada e foca em ajudar outros interessados.

Pois bem, vendo a documentação, e olhando os códigos fonte, que vem junto com o Meta Editor. Comecei a experimentar, e o meu primeiro código real, feito com tudo que eu havia compreendido, pode ser visto logo abaixo.

01. //+------------------------------------------------------------------+
02. #property copyright "Daniel Jose"
03. #property version   "1.00"
04. #property description "Modify special chart properties"
05. #property script_show_inputs
06. //+------------------------------------------------------------------+
07. enum eWhat  {
08.                eScaleDate  = CHART_SHOW_DATE_SCALE,   //Time scale
09.                eScalePrice = CHART_SHOW_PRICE_SCALE   //Price scale
10.             };
11. enum eOp    {
12.                eFalse,                                //Makes hidden
13.                eTrue                                  //Makes visible
14.             };
15. //+------------------------------------------------------------------+
16. input eWhat user00 = eScaleDate;                      //Graphic property
17. input eOp   user01 = eFalse;                          //What to do?
18. //+------------------------------------------------------------------+
19. void OnStart()
20. {
21.    ChartSetInteger(0, (ENUM_CHART_PROPERTY_INTEGER) user00, user01);
22. }
23. //+------------------------------------------------------------------+

Código fonte do meu primeiro programa em MQL5

Sim, você não está vendo algo assim tão extraordinário, ou inovador. Trata-se de um código, cujo intuito para mim, era verificar se de fato eu estava compreendendo adequadamente a documentação, e como as coisas poderiam ser definidas e trabalhadas. O resultado da execução deste mesmo código pode ser visto no vídeo logo abaixo.


Vídeo de demonstração

Veja que é algo extremamente básico. Mas conseguir de fato fazer este código, e de forma completamente autônoma, ou seja, sem a ajuda de ninguém, a não ser a própria documentação e os código fontes que vem junto do Meta Editor, me mostrou que algo mais poderia ser feito. E que, tudo que seria preciso, seria adequar e adaptar tudo que eu já sabia e conhecia sobre C e C++ ao MQL5. E a partir dai começou de fato as coisas progredirem.

Talvez, você olhando este singelo código acima, não o dê o devido valor a ele. Mas como de praxe, todo iniciante em uma linguagem de programação, tem como sua primeira tarefa, criar um código chamado de "HELLO WORLD", onde a ideia é conseguir colocar uma mensagem diretamente na tela.

Mas eu, já passei muito desta fase, do código "HELLO WORLD". Então, fui tentar algo um pouco mais complicado do que isto. No entanto, por não ter tanta experiência e compreensão de como o MQL5, de fato funcionava. Comecei desenvolvendo um script. Que para mim, seria algo bem mais fácil, dada a pouquíssima experiência e conhecimento de como as coisas de fato aconteciam.

Somente depois de algum tempo, comecei a notar que o MQL5, é na verdade uma linguagem, não processual, e sim uma linguagem baseada em eventos. O fato de ter percebido isto, fez com que diversas coisas viessem a mudar na minha forma de programar e analisar os códigos. Precisando e querendo me aperfeiçoar, comecei a estudar e ler o conteúdo dos artigos presentes, aqui na comunidade MQL5. Notei que muitos, apesar de conseguir fazer seus códigos funcionarem, estavam explorando o MQL5 de uma forma relativamente básica, isto ao meu ver. Então me voltei a desenvolver e a experimentar soluções um pouco mais elaboradas, que viessem a explorar mais profundamente as capacidades, tanto da plataforma MetaTrader 5, quanto da linguagem MQL5.

Em um dado momento, decidi começar a divulgar, de alguma forma o resultado de meus experimentos. Dai surgiu o primeiro dos artigos. É bem verdade, que uma coisa é construir um código. A outra é explicar, como ele foi construído e pensado. Isto sabendo, que pessoas mais experientes irão ler o que foi escrito, assim como também pessoas com pouquíssima experiência.

Os artigos tem passado por mudanças, tanto na forma, como também no conteúdo dos mesmo. Isto para que mesmo alguém com pouco experiência, consiga compreender a informação. E mesmo que naquele momento, você de fato não consiga absorver todo o conhecimento presente no artigo. Com o tempo, e conforme você for se desenvolvendo na programação, você irá conseguir absorver adequadamente o que estou tentando passar em um dado artigo.

O conhecimento, tem que ser passado a diante. Não vejo glória, em morrer sabendo tanto, e não ter deixado algo bom para traz. Algo que de fato poderá mudar a forma de alguém ver o mundo. Abrindo os olhos para algo que muitos não conseguem enxergar por sempre manterem as cabeças abaixadas.

Muito bem, mas vamos voltar ao código. Quero mostrar a você, que mesmo algo tão simples, que faz uso de poucas linhas, pode conter muito mais informações e conhecimento, do que um código com milhares de linhas. Se bem, que originalmente, todas as informações, que não fazem parte da sintaxe do C / C++, e por consequência do MQL5, não estavam em inglês. Mas isto é apenas um mero detalhe. Vamos dessecar este pequeno código, e entender como ele está funcionando. E principalmente: Por que de ele funcionar.


Dissecando o código

As linhas dois, três e quatro, poderiam ser descartadas do código. Elas na verdade, apenas servem para que o MetaTrader 5, informe para o utilizador, a intenção do código. Sendo você tal utilizador, poderia simplesmente descartar tais linhas em seu código de aprendizagem.

A linha cinco é bastante importante, já que sem ela, o MetaTrader 5, não entenderá que o script poderá se ajustado pelo usuário, via algum tipo de estrutura de entrada, que no caso, são as inputs que podem ser vistas nas linhas 16 e 17. Mas calma, nos vamos chegar lá.

Agora vem algo que muitos podem não compreender. Principalmente se estudaram apenas o MQL5, ou se estão vindo de alguma outra linguagem muito diferente da linguagem C / C++. Tal coisa é justamente as enumerações, que se encontram presentes nas linhas 07 e 11.

Muito provavelmente você pode estar extremamente confuso, ao olhar tais coisas. E até mesmo ficar imaginando que elas são algo muito além do que você pode ou conseguiria entender. Mas justamente pelo fato do MQL5, ter sido construído, a fim de trazer programadores C / C++, com alguma experiência, é que a torna tão agradável de ser usada por quem já tem mesmo que uma pequena base em C / C++. Mas vamos entender, pelo menos superficialmente o que seria uma enumeração.

Uma enumeração, pode a grosso modo, ser compreendida como uma sequencia de dados, onde você pode atribuir valor a eles, ou não. Quando você não atribui um valor, a contagem irá começar sempre do primeiro valor possível, que no caso é o zero. Por conta disto, a enumeração definida na linha 11, segue o mesmo principio de um valor 0 ou 1. Em C / C++, assim como também em MQL5, por consequência, o valor zero é considerado como sendo um valor falso, e o valor um como sendo um dado verdadeiro.

Assim sendo, a linha 12, onde o valor eFalse é definido, temos a indicação de zero, e na linha 13, sendo o segundo valor da enumeração, teremos o valor um, se tivéssemos mais coisas definidas, elas iriam seguir a sequência, então o próximo dado seria dois, o próximo três e assim por diante. Este é o caso mais simples.

Porém, quero chamar a sua atenção para uma outra coisa. Veja que no final da linha 12, temos algo que em C / C++ seria um comentário, assim como temos este mesmo tipo de coisa em outras linhas. Mas vamos ficar apenas na linha 12, no entanto o que for falado para ela, serve também para todas as outras.

Se você observar o script ao lançar ele no gráfico, irá ver a imagem 01. Nela estou destacando algo que é justamente o que está sendo colocado como comentário na linha 12.

Image 01

Imagem 01 - Janela de interação com o usuário


Este tipo de coisa facilita muito, e imensamente grande parte da codificação em MQL5. Em outras linguagens, temos que fazer diversas coisas, para conseguir exatamente o que está sendo feito, aqui no MQL5, de maneira tão simples e prática. Então note que muitas das vezes, comentar algo no código, não é perda de tempo. Fazer isto, além de deixar o código mais claro, permite que você possa também configurar uma mensagem que será mostrada para o usuário.

Agora vamos dar um passo para trás, e voltar na linha 07, onde temos uma outra enumeração. Mas esta enumeração é diferente da que acabei de explicar. Bem, ela não é de todo diferente. A diferença aqui, é que agora estamos atribuindo valores para cada um dos elementos. Ou seja, agora o compilador irá fazer uso dos valores que estamos indicado. No caso os valores que estão sendo indicados são constantes definidas no MQL5. Mas ai você pode perguntar: Por que você não utiliza as constantes diretamente ao invés de atribuir elas a uma enumeração ?!?! O motivo é justamente facilidade de implementação. Se fossemos fazer uso das constantes diretamente, precisaríamos criar algo diferente, fosse um array, fosse uma estrutura, mas de qualquer forma seria muito mais trabalhoso de ser feito. No entanto, fazendo uso da forma como estou mostrando, posso colocar qualquer valor, em qualquer lugar ou sequencia. E caso alguma constante tenha valores que são de interesse, e vem na sequencia de que estou declarando, não precisarei de fato atribuir, ou declarar tal constante, tudo que precisarei fazer será adicionar mais conteúdo na enumeração, que a própria linguagem irá fazer com que os valores corretos sejam de fato utilizados e atribuídos de maneira correta.

Veja o quanto, ter uma base sólida e bem construída em uma linguagem como o C / C++, nos ajuda aqui, na hora de codificar as coisas no MQL5. Este tipo de coisa que estou mostrando aqui, não vejo assim de forma tão frequente em códigos feitos em MQL5. Na verdade, o que vejo, é que muitos fazem uso de construções muito mais complicadas e trabalhosas a fim de conseguir fazer a mesma coisa que estou fazendo aqui. E notem que no final das contas, foi necessário que eu de fato escrevesse apenas, e tão somente uma única linha de código. E esta é justamente a linha 21.

Agora prestem atenção ao seguinte: Nesta mesma linha 21, que é de fato a única linha que será executada. Precisamos fazer uma conversão de tipos de forma explicita. Isto para que o compilador, compreenda e assim gere de forma adequada o código final. Mas por que esta conversão explicita é importante ?!?! O motivo disto é para uso do compilador. Para o processador, isto pouco importa. Pois observem que de fato, estamos usando apenas números e é somente isto que o processador de fato vê. Para o processador tipos não são de interesse, ele apenas observa números. Mas o segundo argumento da linha 21, apesar de ser um valor numérico, não é exatamente o que é esperado pela função ChartSetInteger. Esta função espera de fato um determinado tipo, e não um valor numérico. Mesmo que o valor represente o tipo esperado, ou seja o valor é exatamente a constante que estamos usando, o compilador irá ver isto como uma falha. Então para corrigir isto, forçamos explicitamente que o valor numérico seja convertido em um tipo, esperado pela função ChartSetInteger. Assim o compilador irá conseguir entender que estamos cientes dos valores que estamos passando para a função.


Um pouco sobre Python

Antes de terminar esta minha conversa com você, caro leitor e aspirante a programador. Existe uma última questão, que eu gostaria de deixar um pouco da minha experiência e conhecimento, que consegui obter ao longo de vários anos trabalhando com diversas linguagens diferentes. Já que também foi alvo de questionamento por parte de alguns. Isto para que você não venha a se frustrar no futuro, ao estudar e vier a tentar fazer determinadas coisas, no MetaTrader 5.

Apesar do tema principal da conversa aqui, ser o MQL5. Existe uma outra coisa, da qual muitos costumam ter dúvidas. Tal coisa é se deve ou não estudar, Python. Muita gente, principalmente quem está iniciando seus estudos em programação, voltada para o mercado financeiro, costuma ficar na dúvida se deve ou não, vim a estudar e se aprofundar em Python, a fim de conseguir trabalhar com o MetaTrader 5. Este tipo de dúvida, de fato é válida, já que estudar Python, é relativamente muito mais simples e rápido, do que ter que passar por todo o crivo ao se estudar a linguagem C e depois C++, para finalmente ter uma base sólida e consolida a fim de conseguir trabalhar profissionalmente com MQL5. Mas existe uma pequena questão aqui, algo que torna um pouco turva as coisas, e esta precisa ser de fato compreendida, para que você não venha a imaginar que perdeu seu tempo estudando Python, ou deixando de estudar Python.

A linguagem de programação, se bem que alguns não a considera assim, a rebaixando a uma linguagem de script, conhecida como Python, não se equipara ao que se pode fazer no MQL5, talvez dai o fato de alguns não a considerarem uma linguagem de programação, mas isto é uma questão da qual não irei discutir aqui. Mas se o seu intuito é de aprender, e conseguir gerar códigos a fim de apenas testar, averiguar e analisar algo de forma pura e simplesmente matemática. O caminho mais curto, e mais simples é aprendendo Python. Isto por que você poderá facilmente executar backtests e coisas do tipo em Python, conversando diretamente com o MetaTrader 5, do que tentar fazer a mesma coisa usando MQL5.

Pode parecer estranho para alguns, mas com muito pouco estudo, e uma boa dose de dedicação, você pode muito facilmente criar um script em Python, que conseguirá fazer a mesma coisa que um outro programador, com muito mais experiência e tempo de programação, faria usando MQL5. Onde ele, muitas das vezes, teria de criar os indicadores, o Expert Advisor, além de ter que configurar o testador de estratégias, para verificar se um dado sistema operacional, o dito SETUP, é ou não lucrativo. Isto fora o risco de pôr uma bobagem, por tudo a perder, por não ter configurado as coisas de forma adequada.

Muitos podem achar que usando o MetaTrader 5, você ainda teria acesso a gráficos e uma bela apresentação dos resultados, a fim de facilitar a análise destes mesmos resultados obtidos. Mas, no entanto, veja só o quanto você precisará saber para conseguir programar, todas as coisas necessárias, para conseguir de fato efetuar um simples backtest diretamente no MetaTrader 5.

Já utilizando o Python, você pode fazer uso de um pacote, a fim de conseguir acessar os dados do MetaTrader 5. E usando tudo que pode ser feito em Python, conseguir muito mais facilmente produzir, o mesmo tipo de estudo, que seria feito por um programador de MQL5. Uma vez que o estudo tenha sido finalizado, você pode utilizar como alternativa, exportar os dados para o Excel, ou um outro programa qualquer, e fazer toda a apresentação gráfica que seria feita no MetaTrader 5, a fim de conseguir analisar adequadamente os resultados obtidos.

Vale uma breve explicação aqui, sobre uma outra coisa. Por que usar o Python e não o Excel diretamente, já que os resultados seriam plotados em um gráfico no Excel ?!?! O motivo é simples: O VBA ( Visual Basic for Application ) não nos dá acesso direto aos mesmos dados que teremos acesso via Python, isto pensando em fazer uso dos dados do MetaTrader 5. Para fazer isto no Excel, você deveria ou criar uma DLL a ponto de promover tal coisa, ou exportar, vários e vários arquivos em formato CVS a fim de conseguir os mesmos dados.

Uma vez dentro do Excel, você teria todo, e talvez até mais trabalho em produzir todos os cálculos que seriam feitos em Python. Com uma desvantagem, se você decidir trocar a base de dados, terá que refazer todo o trabalho novamente no Excel, mas se você estiver usando o Python, tudo que você precisará fazer, será informar ao Python, para mudar a base de dados, e ele providenciará isto diretamente ao MetaTrader 5, sem que você precise fazer mais nada.

Então minha dica, é procure estudar tudo que você puder, pois cada ferramenta tem suas vantagens e desvantagens. Apesar do Python nos ajudar bastante, ele não servirá para você criar um indicador a fim de colocar este em um gráfico, ou criar um Expert Advisor para lhe ajudar na operações. Quem de fato irá lhe permitir fazer isto será o MQL5. Então não existe uma coisa melhor, ou pior. Ambas são complementares, e servem a propósitos distintos. Mas de qualquer forma estude ambas as coisa, pois você nunca sabe, quando irá precisar usar uma ou outra.


Conclusão

Apesar de toda a simplicidade envolvida aqui. Você deve sempre lembrar do seguinte: Você esta começando. Não tente fazer algo complicado logo de inicio. Tente fazer algo que funcione. Mesmo que possa lhe parecer algo completamente inútil a primeira vista, faça algo simples primeiro.

Comece experimentando as funções aos pouco. Estude a linguagem C / C++, a fim de conseguir ampliar a suas capacidades de imaginar e bolar soluções em MQL5. Pratique sempre, e sempre tente fazer as coisas de maneira diferente do que muitos fazem sempre, pois por mais que pareça complicado, você sempre irá ver que é possível deixar as coisas melhores.

Aprenda a simplificar seus próprios códigos, tenha paciência e perseverança. Não desista apenas por que encontrou algo um pouco além do seu conhecimento. Neste ponto estude mais, tente criar uma solução com base no que você já conhece. Quando conseguir solucionar o problema, tente conseguir uma solução melhor. E no final você terá como recompensa um vasto e amplo conhecimento, e este ninguém irá lhe roubar, podem pegar emprestado, mas roubar jamais.

Seja sempre humilde e procure compartilhar seu aprendizado com outros, pois assim você irá aprender coisas novas, e também mostras novas possibilidades para aqueles que focaram em outro tipo de solução. No demais é isto.


Últimos Comentários | Ir para discussão (3)
1226820
1226820 | 26 fev 2023 em 17:52
obrigado por nos ensinar professor.
Ronysson Santos
Ronysson Santos | 2 abr 2023 em 18:21
agradeço pelo feedback. sou iniciante e pretendo quem sabe um dia conseguir criar códigos.
Joao David Ngululia Buta
Joao David Ngululia Buta | 2 mai 2023 em 20:21
Olá Daniel, concordo plenamente com o que você disse neste artigo. Saí do MQL5 para aprender Python e agora que comecei a programar no mql5 tudo faz muito sentido. Funções, alguns conceitos oop. Uma coisa me fez voltar para o mql5: domínio. Veja, percebi muito cedo que essa linguagem foi criada para negociação e atividades relacionadas à negociação. Tem tudo que um comerciante de algo precisa. Eu gostaria de não ter aprendido Python, porque backtest suas estratégias você terá que instalar muitas bibliotecas diferentes, algumas das quais eu paguei apenas para descobrir que o MQL5 faria tudo. Nova biblioteca significa nova documentação e horas de leituras muito, muito longas na documentação. Eu simplesmente achei o python muito limitado. de volta ao mql5, pretendo automatizar minhas estratégias e compartilhar meus resultados. Discuta as armadilhas comuns dos iniciantes do mql5 e etc. Obrigado pelo seu artigo
Integrando modelos de ML ao Testador de estratégias  (Parte 3): Gerenciamento de Arquivos CSV(II) Integrando modelos de ML ao Testador de estratégias (Parte 3): Gerenciamento de Arquivos CSV(II)
Este artigo fornece uma visão detalhada sobre como construir uma classe em MQL5 para gerenciamento eficiente de arquivos CSV. Ele explica como os métodos de abertura, escrita, leitura e conversão de dados são implementados e como eles podem ser utilizados para armazenar e carregar dados. Além disso, o artigo também discute as limitações e considerações importantes ao usar essa classe. É uma leitura valiosa para aqueles interessados em aprender a trabalhar com arquivos CSV em MQL5.
Algoritmos de otimização populacionais: Algoritmo de otimização de cuco (COA) Algoritmos de otimização populacionais: Algoritmo de otimização de cuco (COA)
O próximo algoritmo que abordaremos será a otimização de busca de cuco usando voos Levy. Este é um dos algoritmos de otimização mais recentes e um novo líder na tabela de classificação.
Redes neurais de maneira fácil (Parte 33): regressão quantílica em aprendizado Q distribuído, Redes neurais de maneira fácil (Parte 33): regressão quantílica em aprendizado Q distribuído,
Continuamos a estudar o aprendizado Q distribuído e hoje veremos essa abordagem de outro ponto de vista. Falaremos sobre a possibilidade de usar regressão quantílica para resolver o problema de previsão de movimentos de preços.
Algoritmos de otimização populacionais: Otimizador lobo-cinzento (GWO) Algoritmos de otimização populacionais: Otimizador lobo-cinzento (GWO)
Vamos falar sobre um dos algoritmos de otimização mais recentes e modernos: o "Packs of grey wolves" (manada de lobos-cinzentos). Devido ao seu comportamento distinto em funções de teste, este algoritmo se torna um dos mais interessantes em comparação com outros considerados anteriormente. Ele é um dos principais candidatos para treinamento de redes neurais e para otimizar funções suaves com muitas variáveis.