Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Eu mesmo estou passando por essa jornada neste momento, portanto, a seguir, faço algumas breves observações sobre o tópico do artigo do ponto de vista de um operador que deseja negociar nos mercados financeiros com o Metatrader usando seus próprios algoritmos. Lembre-se de que o objetivo principal do operador é a negociação, enquanto o do engenheiro de software é a programação.
1. O maior obstáculo será atravessar a lama da irrelevância que, atualmente, transformou o aprendizado pela Internet em um verdadeiro pântano. Encontrar boas fontes consumirá mais tempo e esforço do que aprender com as fontes certas quando você as encontrar.
2. Não há nenhuma boa fonte de baixo custo para aprender MQL, até onde eu sei. Os cursos da Udemy não são tão bons assim (falo por experiência própria), só vale a pena comprá-los quando estiverem com grandes descontos (10 euros ou menos). Vídeos do YouTube: há alguns canais que são muito bons, se você estiver procurando por coisas específicas. Alguns fornecem apenas o básico. Nenhum publica um curso sistemático que ensina tudo o que você precisa saber, não de graça. A maioria dos bons vídeos gratuitos geralmente é um funil de marketing para os cursos pagos. Não há nada de errado nisso, apenas algo de que você precisa estar ciente. Não possocomentar sobre os cursos pagos, pois nunca fiz nenhum.
3. Na engenharia de software em geral, a MQL simplesmente não existe. Há um ou dois livros que ensinam a linguagem em sua totalidade. Portanto, aprender tudo isso consumirá muitos meses, se não anos, de seu tempo, mesmo que você tenha paciência e tempo. Tempo que você poderia estar gastando em negociações. O subconjunto real de conhecimento necessário para criar seus próprios EAs e indicadores que sejam sofisticados o suficiente para serem confiáveis em suas próprias contas reais é consideravelmente menor. Muitas coisas simplesmente não são necessárias para códigos de uso próprio. Se você quiser trabalhar como freelancer ou vender códigos MQL pré-embalados, precisará dominar uma parte maior do idioma, é claro. Uma observação:mesmo que você seja um operador, talvez valha a pena dedicar tempo e esforço para aprender engenharia de software em geral (em um dos grandes idiomas, como C++ ou C#, mas não MQL). Se você perder sua conta, ganhar dinheiro como programador pode permitir que você evite passar fome e, aos poucos, acumule capital para entrar no jogo novamente .
4. O conjunto de páginas de referência de MQL neste site é uma referência, não um livro-texto. É inestimável conhecer o interior e o exterior de elementos específicos da linguagem MQL. É um pesadelo para estudar (eu sei, eu tentei).
5. Na minha opinião, o melhor é aprender o básico com C++. Há muitos cursos excelentes sobre C++ a um custo muito baixo ou gratuitos. C# ou Java (NÃO JavaScript, JS é como Python, mas pior!) também são adequados, mesmo que um pouco mais remotos. Além disso, na minha opinião, não é vantajoso aprender C. Em 2023, C é uma linguagem de nicho para programação de sistemas (SO, drivers etc.). O C++ incorpora todo o C clássico de que você precisa.
6. A funcionalidade principal do MQL é praticamente C++. À linguagem básica, é adicionado um monte de enumerações, funções integradas e classes que são específicas para negociação na plataforma MT. Esses elementos específicos da negociação não existem no C++, é claro. Quando você souber como as variáveis, constantes, tipos de dados, funções e objetos se comportam em geral no C++, será muito fácil obter esses elementos adicionais específicos da MQL. Você precisa aprender OOP o suficiente para saber o que é, o que faz e como usar objetos das classes da biblioteca MT integrada em seus códigos de procedimento juntamente com as funções. Usar as classes disponíveis é muito mais fácil do que programar suas próprias classes, criar bibliotecas, gerenciar dezenas ou centenas de arquivos de cabeçalho (.mqh), etc. Programar sua própria OOP é como criar uma empresa multinacional fabricante de automóveis apenas para construir um único carro, para que você possa dirigir de casa para o trabalho todos os dias.
7. Esqueça o Python. Eu poderia escrever páginas sobre isso, mas acredite apenas em minha palavra. O Python simplifica algumas coisas, mas cria complicações em outras. O verdadeiro problema do Python é que ele tem liberdade demais. A sintaxe rígida do C++, os tipos estáticos e, acima de tudo, o Sergeant Compilator no final resultam em códigos que são muito inequívocos e confiáveis. A liberdade do Python é muitas vezes a liberdade de entrar na água e se afogar. As "dificuldades" de aprender C++ são mais um mito do que uma realidade. Considere o seguinte: os {} e ; do C++ são substituídos no Python por : e indentação obrigatória; no final, o esforço acaba sendo praticamente o mesmo. De qualquer forma, você não precisa aprender todo o C++ para dominar a MQL5. Aprendi Python até a OOP e, depois de 16 meses, percebi que ainda estava no ponto 0 da minha jornada como programador de algoritmos e reaprendi C++ (esqueci cerca de 99% do curso de C++ que fiz como estudante de graduação em STEM há quase 30 anos). Depois disso, consegui escrever EAs e indicadores MQL5 utilizáveis.
6. Em muitos aspectos, a MQL5 está mais próxima do C++ do que a MQL4. Isso faz com que muitas coisas sejam mais difíceis em MQL5 do que em MQL4. Ainda assim, em 2023, não é recomendável que as pessoas que estão começando agora aprendam MQL4. A MQL4 é mantida viva por sua base de usuários instalada desde a época em que era atual. Mesmo que os dois idiomas fossem iguais, o MT5 vem com um backtester superior e a capacidade de baixar uma plataforma MT autônoma com uma conta de demonstração sem corretora afiliada, que nunca expira, para jogar o quanto quiser. Se necessário, é fácil traduzir seus EAs MQL5 de volta para MQL4 depois que você dominar a MQL5. Os indicadores exigem um pouco mais de esforço, mas ainda assim é possível.
7. Portanto, aqui está o caminho de aprendizado que funcionou para mim:
- Aprenda o básico de programação com uma linguagem de programação geral, mais facilmente com C++, porque é a mais próxima da MQL. Todos os cursos de programação ensinam o básico com programas simples de console. O MetaEditor não tem um console. Imprimir "Helllo World!" no Terminal Journal é uma experiência muito pior do que diretamente em um console com "cout >>". Você pode interagir com um código MQL apenas indiretamente por meio dos parâmetros de entrada, não em tempo real por meio de "cin >>".
- Depois de dominar as noções básicas de programação, vá ao YouTube e encontre vídeos que mostrem passo a passo a criação de um EA ou indicador totalmente funcional (há muitos no momento em que escrevo). Primeiro, assista ao vídeo inteiro, de forma mais eficiente, desligando o som, ativando as legendas e acelerando o para 1,5x ou 2x para entender o conteúdo. Em seguida, assista novamente e digite o código, pausando o vídeo e retrocedendo se necessário, com o som ligado.
- Não faça mais cursos de programação - apenas codifique, codifique, codifique, backtect backtest backtest. Infelizmente, a MQL não oferece o recurso de teste de unidade (indispensável para a engenharia de software adequada), mas com alguma criatividade você pode desenvolver suas próprias maneiras de usar o backtester para isso. Assista a mais vídeos sobre tópicos específicos do quando precisar. Os artigos/posts deste site podem ser igualmente úteis. Pressione F1 no MetaEditor sempre que precisar. Pressione-a mesmo que não precise, apenas para aprender algo novo ou aperfeiçoar o que você já aprendeu todos os dias.
7. Aqui está o caminho de aprendizado que funcionou para mim:
- Aprenda o básico de programação com uma linguagem de programação geral, mais fácil com C++ porque é o mais próximo do MQL. Todos os cursos de programação ensinam o básico com programas de console simples. O MetaEditor não possui um console. Imprimir "Olá, Mundo!" no Terminal Journal é uma experiência muito inferior do que diretamente em um console com "cout >>". Você pode interagir com um código MQL apenas indiretamente por meio dos parâmetros de entrada, não em tempo real por meio de "cin >>".
- Depois de dominar os fundamentos da programação, acesse o youtube e encontre vídeos que explicam passo a passo a construção de um EA ou indicador funcional completo (existem muitos no momento em que escrevo). Primeiro, assista ao vídeo inteiro, de forma mais eficiente desligando o som, nas legendas e acelerando para 1,5x ou 2x para apreender o conteúdo. Em seguida, assista novamente e digite o código junto, pausando o vídeo e rebobinando se precisar, com som ligado.
- Não faz mais cursos de programação - apenas codifique o código do código, backtect backtest backtest. Infelizmente, o MQL não oferece facilidade de teste de unidade (indispensável para uma engenharia de software adequada), mas com alguma criatividade você pode desenvolver suas próprias maneiras de usar o backtester para isso. Assista a mais vídeos em tópicos específicos quando você precisar. Artigos/postagens neste site podem ser igualmente úteis. Pressione F4 no MetaEditor sempre que precisar. Acerte mesmo que não, apenas para aprender algo novo ou aprimorar o que você já aprendeu todos os dias.
Obrigado pela evidência. É mais ou menos isso que eu queria escrever neste artigo. Porque muitas pessoas que começam não sabem que direção tomar e acabam desistindo de estudar ou de aprender, imaginando que é algo muito difícil ou algo impraticável.
Foi publicado o novo artigo MQL5 - Você também pode se tornar um mestre da linguagem:
Por Daniel Jose
Eu também quero ser um mestre
Artigo muito bom. Ele me fez voltar no tempo, à infância, quando eu desenhava gráficos primitivos com a sintaxe do DOS em um Apple IIe.
Com base em minha experiência posterior, a MQL4 foi fácil de aprender porque era basicamente uma versão esquelética do C. Eu gostava de pensar nela como "C-" (C menos). Anos mais tarde, li as primeiras 50 páginas de um livro de programação MQL5 EA em papel (agora esgotado) e passei para a programação MQl5. Anos depois, esse livro ainda está em uma prateleira com um marcador de página na página 50. Tudo isso atesta a sugestão do autor do artigo de aprender fazendo.
Embora eu tenha me aventurado com Easylanguage e Python, e mais do que me aventurado com o MS Excel, continuo com MQL5 porque o código nativo é sempre mais rápido do que um pipe ou uma ponte de fora do MT5. Além disso, os elementos "opcionais" de programação orientada a objetos (OOP) da MQL5 são uma necessidade para a negociação automática na bolsa de futuros em que agora opero. Se você quiser aprender MQL5, recomendo ler primeiro uma cartilha geral sobre o que é OOP.
Pior do que o medo de aprender uma nova linguagem de programação é a perspectiva de ser deixado para trás.
Um artigo elogioso sobre mim mesmo como um gênio: algo do tipo, vou lhe ensinar como se tornar um guru da programação a partir do zero, mas acontece que para isso você precisa saber C++ e ter experiência de uso por 23 anos. E o mais surpreendente é que, com essa bagagem (C/C++), foram necessários 2 anos para aprender a programar em MQL5. No final, blá-blá-blá, eu sou um gênio e você será capaz de fazer isso em 25 anos. É uma pena que tais artigos sejam publicados....
E daí que um brasileiro passou 23 anos escrevendo "Hello World!" em C++, nem todo mundo tem essa paciência. Eu certamente não tenho. Talvez façam um monumento de bronze em sua terra natal! Portanto, nós o invejamos silenciosamente.
Gostaria de especificar que o valor false é realmente zero ao converter implicitamente tipos int em bool, mas true é qualquer valor diferente de zero. Ao converter bool->int, tudo é limitado a 0 e 1.