Escolar Documentos
Profissional Documentos
Cultura Documentos
Índice
História
Compilador
Diferenças entre MQL4 e MQL5
Funcionalidades
Sintaxe de MQL4 e MQL5, e a diferença entre ela e a de С++
Tipos de dados
Operações e expressões
Crítica
Referências
Bibliografia
Links
História
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 seguinte 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++.
https://pt.wikipedia.org/wiki/MetaQuotes_Language_MQL4/MQL5 1/4
30/01/2019 MetaQuotes Language MQL4/MQL5 – Wikipédia, a enciclopédia livre
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.
Compilador
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.
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.
Funcionalidades
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.
Expert Advisor. Sistemas de negociação que operam automaticamente, segundo uma série de parâmetros
predeterminados, e que agem de acordo com um algoritmo incorporado. Quando ocorre um evento previamente
especificado (como a entrada de um novo tick, um alerta sobre uma nova operação de negociação ou até
mesmo o pressionamento de tecla ou um clique), o Expert Advisor é ativado, executando a ação programada.
Indicadores Personalizados. Eles são escritos por usuários e complementam os indicadores embutidos e prontos
para serem usados, no terminal. Sua função é puramente analítica. Os indicadores não podem negociar e
executar operações que diminuem o fluxo da interface (envio de e-mails, atraso arbitrário no trabalho do
programa, etc.). A principal tarefa dos indicadores consiste em monitorar a situação, refleti-la, interpretá-la e
depois enviá-la ao trader para análise.
Scripts. Um script é um programa destinado a uma única execução de certa ação. O único tipo de evento
processado pelo script é o evento de inicialização.
https://pt.wikipedia.org/wiki/MetaQuotes_Language_MQL4/MQL5 2/4
30/01/2019 MetaQuotes Language MQL4/MQL5 – Wikipédia, a enciclopédia livre
Bibliotecas de Funções Personalizadas. Além disso, é possível criar arquivos anexados (#include). Os arquivos
anexados permitem que você inclua as funções e classes mais utilizadas, sem a necessidade de colar
diretamente seu código-fonte no programa. O uso de funções e classes simplifica o desenvolvimento, depuração
e compilação, porque, ao usar bibliotecas dinâmicas, as funções são carregadas somente quando são chamadas
diretamente.
Formatação de texto. A fim de tornar o código mais legível e fácil de trabalhar, é possível utilizar livremente
qualquer número espaços em branco, isto é, espaços, tabulações, cadeias vazias. No entanto, há exceções. É
restrito o uso do caractere de mudança de linha após a cerquilha; não se deve usar espaços em branco dentro
de uma constante, identificadores e palavras-chaves.
Comentários. Tal como acontece com C/C ++, os comentários de MQL4/MQL5 podem ser de uma única linha e
de várias linhas. Um comentário de linha única começa com // e termina com o caractere de nova linha. Os
comentários de várias linhas começam com /* e terminam com */. Eles não podem ser aninhados.
Identificadores. Identificadores são usados como nomes para variáveis e funções. O comprimento de um
identificador não pode exceder 63 caracteres. Os seguintes caracteres podem ser usados na escrita de um
identificador: números 0-9, letras maiúsculas e minúsculas latinas Z, reconhecidas como caracteres diferentes e
o caractere de sublinhado (_). O primeiro caractere não pode ser um número.
Tipos de dados
Principais tipos de dados usados em MQL4/MQL5:
Operações e expressões
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 ++.
Crítica
https://pt.wikipedia.org/wiki/MetaQuotes_Language_MQL4/MQL5 3/4
30/01/2019 MetaQuotes Language MQL4/MQL5 – Wikipédia, a enciclopédia livre
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.
Referências
1. «MetaTrader 4 Official Release» (https://www.metaquotes.net/en/metatrader4/news/3433). MetaQuotes Software
Corp. (em inglês). 1 de julho de 2005. Consultado em 23 de agosto de 2017
2. «MetaTrader 5: Official Release» (https://www.metaquotes.net/en/company/news/3619). MetaQuotes Software
Corp. (em inglês). 1 de junho de 2010. Consultado em 23 de agosto de 2017
3. «MetaQuotes Releases Build 600: Marketplaces, MT5 and Regulation in the Balance» (http://www.financemagnat
es.com/forex/brokers/metaquotes-releases-build-600-marketplaces-mt5-and-regulation-in-the-balance/). Finance
Magnates (em inglês). 4 de fevereiro de 2014. Consultado em 23 de agosto de 2017
4. «Updated MQL4» (https://docs.mql4.com/mql4changes). MQL4 Reference (em inglês). Consultado em 23 de
agosto de 2017
Bibliografia
«MetaTrader - investičná platforma pre obchodovanie» (http://is.muni.cz/th/324627/fi_b_a2/thesis.pdf) (PDF).
Is.muni.cz. Consultado em 14 de novembro de 2014
«Evaluating the Effectiveness and Sensitivity of Forex Trading Robots» (http://unitec.researchbank.ac.nz/bitstrea
m/handle/10652/1925/Yu%20Gu%20MComp.pdf?sequence=1&isAllowed=y) (PDF). Unitec.researchbank.ac.nz.
Consultado em 14 de novembro de 2014
«Forex Analysis and Money Management : Interactive Qualifying Project» (http://www.wpi.edu/Pubs/E-project/Ava
ilable/E-project-022912-001013/unrestricted/IQP_Final_Report.pdf) (PDF). Wpi.edu. Consultado em 14 de
novembro de 2014
«INVESTMENT AND TRADING : An Interactive Qualifying Project Report Submitted to the Faculty of
WORCESTER POLYTECHNIC INSTITUTE» (http://www.wpi.edu/Pubs/E-project/Available/E-project-031212-180
059/unrestricted/Investment_and_Trading_IQP.pdf) (PDF). Wpi.edu. Consultado em 14 de novembro de 2014
Links
«MQL4 documentation» (http://docs.mql4.com). Docs.mql4.com. Consultado em 14 de novembro de 2014
«MQL5 documentation» (https://www.mql5.com/pt/docs). Docs.mql5.com
Obtida de "https://pt.wikipedia.org/w/index.php?title=MetaQuotes_Language_MQL4/MQL5&oldid=49945410"
Esta página foi editada pela última vez às 10h28min de 25 de setembro de 2017.
Este texto é disponibilizado nos termos da licença Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC BY-SA 3.0) da
Creative Commons; pode estar sujeito a condições adicionais. Para mais detalhes, consulte as condições de
utilização.
https://pt.wikipedia.org/wiki/MetaQuotes_Language_MQL4/MQL5 4/4