Loading AI tools
linguagem de programação Da Wikipédia, a enciclopédia livre
MQL4 (MetaQuotes Language 4) e MQL5 (MetaQuotes Language 5) são linguagens de programação integradas projetadas para o desenvolvimento de robôs de negociação, indicadores técnicos, scripts e bibliotecas de funções dentro do programa MetaTrader.
O objetivo principal das linguagens MQL4 e MQL5 consiste na automação da negociação e simplificação da análise operacional. MQL4 e MQL5 contam com uma extensa biblioteca de códigos-fonte de programação para desenvolver robôs de negociação.
Em 1º de julho de 2005, a empresa MetaQuotes Software lançou o MetaTrader 4, uma plataforma para operar em mercados financeiros.[1] A linguagem de programação MQL4 foi projetada especificamente para trabalhar com esta plataforma. Inicialmente, sua sintaxe era baseada em C. A nova versão da plataforma, MetaTrader 5, foi lançada em 2010 junto com a MQL5, isto é, uma nova linguagem criada exclusivamente para ela.[2]
A linguagem MQL4 seria significativamente atualizada com o lançamento do MetaTrader 4 build 600 em 2014,[3] o que a levaria ao nível da mais moderna MQL5. O ambiente de desenvolvimento MetaEditor tornar-se-ia unificado para ambas as línguas.
A MQL4 atualizada apresentava novos objetos gráficos e novas funções, emprestadas da MQL5 e usadas para análise de gráficos. O sistema de proteção para os arquivos executáveis EX4 foi completamente modificado. A Biblioteca padrão MQL5 foi transferida quase que inteiramente com a única exceção do subsistema de negociação, que exigia uma adaptação. Foram adicionados novos tipos de dados e foi estendido o sistema de micro substituição (compilação condicional #ifdef, #ifndef, #else, #endif), que permitia usar código de outras linguagens com base em С/C++. Também foram adicionadas estruturas, classes e ponteiros para o objeto (ponteiros de MQL4/MQL5 não são iguais em todos os aspectos aos de С++). O MQL4 atualizado possui o modo de compilação rigorosa, o que impede muitos possíveis erros de programação. Na MQL5 este modo é padrão e não pode ser desativado.[4]
Ambos os idiomas suportam quase todos os padrões da programação orientada a objetos, com exceção da herança múltipla: encapsulamento e extensibilidade de tipos, herança, polimorfismo, sobrecarga, funções virtuais.
Para criar programas em MQL4 e MQL5, foi criado um compilador embutido no ambiente de desenvolvimento do MetaEditor. Ele está integrado nos terminais MetaTrader 4/MetaTrader 5. O MetaEditor permite uma edição conveniente do código-fonte do programa, gerando projetos automaticamente por modelos, analisando dinamicamente códigos e desenvolvendo remotamente aplicativos em conjunto com outras pessoas.
Uma das principais diferenças é a configuração do sistema de negociação. MQL4 é usada para desenvolver programas de negociação com base no sistema de ordens, enquanto a MQL5 é utilizada para implementar sistemas de posicionamento. No terminal de negociação MetaTrader 5, há uma clara distinção entre os conceitos de posição, ordem e transação. Uma ordem é um pedido para executar uma operação de negociação, o que pode resultar numa transação. Uma posição é o conjunto de transações de acordo com um determinado instrumento financeiro.
MQL5 conta com uma lista expandida de função de negociação para trabalhar com ordens abertas, uma lista de posições abertas, histórico de ordens e histórico de transações. Em MQL4, diferentes funções como OrderSend(), OrderClose(), OrderCloseBy(), OrderModify(), OrderDelete() foram originalmente incluídas para executar cada operação de negociação. Estas funções podem ser usadas para abrir/fechar e eliminar as ordens pendentes.
Em MQL5, todas as operações de negociação são realizadas enviando pedidos de negociação através da função OrderSend(). Como parâmetro, a função envia um pedido ora para colocar uma ordem pendente, ora para abrir segundo o mercado, ora para cancelar uma ordem já colocada. A introdução da nova função OrderSendAsync() em MQL5 permitiu o uso de operações de negociação assíncronas.
Algumas novidades importantes em MQL5 são o Livro de Ofertas [Depth of Market] e um novo tipo de evento para processamento de informações do Livro de Ofertas.
Os recursos de MQL4/MQL5 visam atender diretamente as necessidades e exigências dos traders. Essas linguagens foram desenvolvidas para criar programas de negociação e são usadas apenas para esse propósito. As funções para executar operações de negociação OrderSend(), OrderClose(), OrderCloseBy(), OrderModify(), OrderDelete(), inicialmente incorporadas na linguagem, são usadas para alterar o estado de uma conta de negociação.
Existem quatro tipos de programas que podem ser escritos em MQL4/MQL5.
A sintaxe das linguagens é semelhante à de C ++, porém há exceções. MQL4 e MQL5 não dispõem de operações aritméticas com ponteiros. Além disso, nas linguagens MQL, não existe operador goto, nem a possibilidade de declarar enumeração anônima e heranças múltiplas.
Principais tipos de dados usados em MQL4/MQL5:
Estruturas e classes são um tipo de dados complexo (abstrato) que pode funcionar em MQL4/MQL5. As classes diferem das estruturas nas seguintes características:
Em MQL4/MQL5, estão presentes todas as operações convencionais, isto é, aritméticas, lógicas, binárias, e assim por diante. A precedência das operações corresponde à precedência adotada em C ++.
A principal desvantagem das linguagens da família MQL é que não se pode criar aplicativos independentes à medida que cada linguagem é anexada à plataforma correspondente, seja ela, MetaTrader 4, MetaTrader 5, além disso, os programas EX4/EX5 só funcionam nelas.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.