Você está na página 1de 4

30/01/2019 MetaQuotes Language MQL4/MQL5 – Wikipédia, a enciclopédia livre

MetaQuotes Language MQL4/MQL5


Origem: 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 MetaQuotes Language
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. Surgido em 2005
MQL4 e MQL5 contam com uma extensa biblioteca de códigos-
fonte de programação para desenvolver robôs de negociação.

Í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.

Diferenças entre MQL4 e MQL5


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.

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.

Existem quatro tipos de programas que podem ser escritos em MQL4/MQL5.

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.

Sintaxe de MQL4 e MQL5, e a diferença entre ela e a de


С++
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.

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:

inteiros (char, short, int, long, uchar, ushort, uint, ulong);


boolianos ou lógicos (bool);
literais (ushort);
cadeias de caracteres (string);
ponto flutuante (double, float);
cor (color);
data e hora (datetime);
enumeração (enum).
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:

a palavra-chave class na declaração;


todos os membros de classe têm um especificador de acesso private, por padrão, enquanto que os membros de
estrutura são declarados com o tipo de acesso public, por padrão;
os objetos de classe sempre têm uma tabela de funções virtuais, enquanto as estruturas não podem tê-la;
o operador new pode ser aplicado apenas a objetos de classe. Não pode ser aplicado às estruturas;
natureza da herança, quer dizer, uma classe só pode ser herdada de uma classe, e uma estrutura, só de uma
estrutura.

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

Você também pode gostar