-
In Profit
Aprenda Sobre Expert advisors
Aqui vc encontra a construir EAs
-
-
In Profit
O caminho Difcil
Pelo caminho difcil, voc utiliza o seu editor de textos favorito e utiliza a linha de comandos (command prompt) para compilar seu programa. O NotePad no uma m escolha como editor de textos para sua programao, mas no esquea do seguinte:
- Ao salvar seu texto (cdigo) voc deve usar o formato texto simples (sem formataes)
- O arquivo deve preferencialmente ser salvo com a extenso .mq4 (isto torna mais fcil abri-lo no editor de textos do MetaTrader, o MetaEditor). Porem voc pode utilizar qualquer extenso que quiser.
Depois de salvar o programa voc necessita seguir alguns passos extras para deixar seu programa pronto para ser utilizado. Estes so os passos de compilao. Compilar a ao de transformar o programa que voc escreveu, na linguagem que voc entende, para uma linguagem que o computador possa executar, ou a chamada linguagem de mquina. MetaTrader possui um programa que utilizado para compilar o programa que voc escreveu, este programa se chama MetaLang.Exe.
MetaLang.exe um programa que possui 2 parametros de entrada, e que como sada grava um programa com a extenso .ex4 (arquivo este que o MetaTrader entende).
- O primeiro parmetro so as opes, e a nica opo disponvel -q (quit).
- O segundo parmetro o nome de seu arquivo fonte com o cdigo que voc programou, a este nome voc deve juntar ao caminho completo do diretrio onde ele se encontra (a localizao exata do arquivo em seu computador).
Basicamente a sintaxe do compilador por linha de comando possui este modelo
metalang | opes | NomeDoArquivo
Vamos a um exemplo para o melhor entendimento
1) busque onde se encontra o arquivo MetaLang,exe. Geralmente ele se encontra no diretorio no qual voce instalou o MetaTrader (No meu caso dm "C:\Archivos de programa\Forex\Interbank FX"
2) Crie um arquivo de lote (Bat) com o nome Compile.Bat (ou qualquer outro nome que voce quiser)
3) Dentro deste arquivo escreva as seguintes linhas (No esquea de modificar o caminho de acordo com sua localizao do MetaTrader
C:
CD "C:\Archivos de programa\Forex\Interbank FX\Experts\Scripts"
..\..\MetaLang -q MeuPrimeiroScript.mq4
4) Execute o Arquivo bat a partir da linha e comando
- Menu Iniciar -> Executar
- Na caixa de texto da janela digite "cmd.exe" (sem as aspas)
- Clique em executar
- Na nova janela, digite o caminho + nome do arquivo bat, eu gravei ele no diretrio C:\SistemasMT e tecle enter
- Voc deve obter uma tela parecida com a de abaixo
IMAGEM
- Apos isso voc obtm o arquivo MeuPrimeiroScript.mq4
- digite exit e tecle enter na janela de comandos para encerrar o trabalho
-
-
In Profit
O caminho Fcil
Para facilitar nossa vida e evitar esta "perdas de tempo" o MetaTrader disponibilizou uma tima IDE (Integrated Development Editor ou Editor de desenvolvimento integrado) chamado MetaEditor, que possui estas qualidades
- Editor de texto com identificao de palavras chaves e smbolos por diferentes cores que aparecem enquanto voc esta construindo ou digitando seu cdigo. Isto facilita muito a vida pois evita que voc use erroneamente palavras chaves durante o processo de desenvolvimento.
- Sistema de desenvolvimento com tecnologia MDI (Multi Document Interface ou Interface de documentos mltiplos) isso significa que voc pode ter vrios arquivos abertos ao mesmo tempo em seu editor.
- Seu programa facilmente compilado. Simplesmente tecle F5 quando o cdigo que voc quer compilar seja o documento atualmente ativo, isso far que o editor faa todo o trabalho do caminho difcil para voc e disponibilize em um s toque de tecla o arquivo .mq4 que estar pronto para uso (lgico, desde que o arquivo no contenha nenhum erro de semntica ou outro qualquer identificado pelo compilador), caso haja algum erro o mesmo ser indicado e apontado na janela de dialogo do editor, o que possibilita um acesso mais rpido e fcil a linha onde ocorreu o referido erro
- Acesso rpido ao sistema de ajuda, basta colocar o cursor em cima de alguma palavra no seu cdigo, caso esta palavra seja identificada pelo editor como parte integrante da base de MQL4 automaticamente o arquivo de ajuda trar o texto referente aquela palavra.
- abaixo a aparncia que tem o MetaEditor, para que voc j v se familiarizando
IMAGEM
-
-
In Profit
Agora, que tal comearmos pelo bsico?
MQL4? Como, porque e onde?
MQL4 o mnemnico formado a partir da frase "MetaQuotes Language 4". MetaQuotes a companhia que desenvolveu a plataforma para trading MetaTrader. E para ser mais robusta e forte que outras plataformas de negociao ela decidiu acrescentar uma linguagem de programao, onde o,usurio (voc) poderia escrever suas prprias estratgias.
A linguagem pode ser usada por voc para criar um dos seguintes tipos de programas :
- Custom Indicadors: so programas com os quais voc usa funes e outros indicadores tcnicos, para gerar e mostras informaes nos grficos de trabalho, informaes estas que possibilitam voc a tomar decises sobre o mercado. Aqui, voc no pode abrir nem controlar suas ordens de trabalho. A cada variao de cotas do mercado, a funo principal do indicador chamada para que voce atualize o sistema de acordo com os novos valores.
- Experts Advisors: so programas com os quais voc automatiza seus sistemas de negociao. Por exemplo, com ele voc pode automatizar a abertura de suas ordens de compra/venda, stops e inclusive administrar seus riscos. A cada variao de cotas do mercado, a funo principal do Expert chamada para que voc analise e tome as decises sobre suas ordens em relao ao mercado no momento em que estes valores so atualizados.
- Scripts: so programas onde voc automatiza seqncias de trabalho que normalmente fariam manualmente no sistema. Diferentemente dos Customs Indicators e Expert Advisors os Scripts so executados somente uma vez (sob demanda) e no cada vez que uma cota mude. E, naturalmente, no pode acessar funes que trabalham com indicadores.
At agora nos vimos "O que o MQL4" e "Porque usar o MQL4"
Agora vamos ver "Onde usar o MQL4".
Para escrever seu cdigo em MQL4, como qualquer coisa no mundo, voc necessita escolher um destes dois caminhos : "Caminho Fcil" ou o "Caminho Difcil".
-
-
In Profit
Familiarizando-se com o MetaEditor
1) rea destinada ao desenvolvimento de seu cdigo
2) Navegador, aqui voc pode localizar mais facilmente os cdigos disponveis em seu diretrio Experts dentro do seu MetaTrader.
3) Ferramentas, aqui voc ter uma interao direta, quando necessitar de alguma ajuda, ou quando compilar um programa ou ainda quando fizer uma busca em algum arquivo em disco.
4) Menu do MetaEditor
5) Barra de Ferramentas
6) Barra de Status
7) Menu da janela de ferramentas
-
-
In Profit
Acessando o MetaEditor
No basta voc ter um linguagem de programao a sua disposio, para fazer o que voc necessita para realizar sua anlise ou suas negociaes. Muito mais que isso, voc necessita facilidades e flexibilidades para utilizar sua linguagem. MQL4 no estaria completa se no fornecesse uma ferramenta capaz de dar a voc um mnimo de comodidade e legibilidade a seu trabalho. Para isso existe o MetaEditor. Ele nada mais que um editor de textos avanados, capaz de identificar para voc os vrios aspectos de MQL4, bem como, tornar o processo de compilao de um cdigo seu, muito mais fcil e cmodo.
Para chamar o Meta Editor, voc pode acessar seu atalho no Menu Iniciar do Windows, na pasta onde o seu MetaTrader se encontrar. Porem uma maneira mais fcil cham-lo diretamente do MetaTrade, para isso voc possui trs caminhos distintos para chegar a este objetivo. Considere a figura

1) Menu "Ferramentas" e "Editor da Linguagem MetaQuotes"
2) Simplesmente teclando F4 quando estiver no MetaTrader
3) Acessando este cone na Barra de Ferramentas
-
-
In Profit
O Menu de Opes do MetaEditor
Menu de Opes
Apesar do meu MetaEditor estar em portugus, existem algumas mensagens que aparece em ingls, creio que so problemas de traduo, no fim deste capitulo ensino como modificar as mensagens do MetaEditor
Arquivo
Novo
Comea o projeto de um novo cdigo, chamando o assistente do MetaEditor
Open
Abre um arquivo existente
Fechar
Fecha o arquivo que atualmente tem o foco do teclado, voc pode ter mais de um arquivo aberto, porem somente um deles ter a ateno (foco) do teclado.
Save
Salva o arquivo que tem o foco atual do teclado
Save As
Salva o arquivo que tem o foco atual do teclado, porem com um outro nome que voc poder especificar
Save All
Salva todos os arquivos que esto abertos.
Compilar
Compila o cdigo do arquivo que esteja com o foco do teclado.
Imprimir Setup
Configura a impressora que ser utilizada para imprimir
Print Preview
Visualiza como ficara a impresso do arquivo do cdigo atual
Print
Imprime o arquivo do cdigo atual
Lista dos ultimos abertos
Mantm uma lista dos n ltimos arquivos que foram acessados
Editar
Desfazer
Desfaz a ultima digitao
Refazer
Recupera a ultima digitao desfeita
Cortar
Retira e transfere para a rea de transferncia do Windows um texto selecionado
Copiar
Copia para a rea de transferncia do Windows um texto selecionado
Colar
Coloca, a partir da posio atual do cursor, no seu cdigo, o texto que estiver disponvel na rea de transferncia do Windows
Delete
Apaga um texto selecionado
Select All
Seleciona todo o cdigo do arquivo atual
Find
Busca uma ocorrncia de de texto no seu cdigo
Find Next
Busca prxima ocorrncia, baseado na ultima busca
Find Previus
Busca a ocorrncia anterior, baseado na ultima busca
Replace
Substitui um texto por outro em seu cdigo
Buscar em Arquivos
Executa busca de textos em Arquivos, esta opo tem interao com a janela de ferramentas.
Toggle BreakPoint
Clear All Break Point
Book Mark
Coloca marcas em seu texto, de modo que voc possa ter um acesso rpido a determinadas sees do seu cdigo.
Toggle
Coloca ou Tira uma marca de texto
Prximo
Vai para a prxima marca de texto configurada
Anterior
Vai para a marca de texto anterior a atual que foi configurada
Limpar
Elimina todas as marcas de texto em seu cdigo
List Names
Abre uma pequena janela, onde o cursor se encontra em seu texto, com todas as funes e palavras chaves disponveis na linguagem MQL4, muito til para voc verificar a sintaxe enquanto voc digita. Mas no se preocupe, O MetaEditor, amigvel suficiente para abrir automaticamente esta janela depois de voc digitar a terceira letra de uma palavra e ele conseguir identificar como uma palavra de sua lista
Parameter Info
Quando voc digita uma das funes padres de MQL4, e no se lembra quais so os parmetros que voc pode utilizar na mesma esta opo lhe oferece uma ajuda rpida lembrando voc de como utilizar a referida funo
Exibir
Languages
Aqui voc pode modificar o idioma na qual o MetaEditor conversa com voce.
Toolbar
Mostra ou esconde a Barra de tarefas
Status Bar
Mostra ou esconde a Barra de Status
Tool Box
Mostra ou esconde a janela de Ferramentas
Navegator
Mostra ou esconde a janela do Navegador
Customize
Deixa que voc modifique as barras de ferramentas do MetaEditor
Tools
Terminal de negociaes
Chama o MetaTrader, onde voc faz suas negociaes.
Opes
Configura o MetaEditor de acordo com suas atribuies.
Windows
Nova Janela
Abre uma nova janela texto, com o mesmo cdigo do arquivo que atualmente tem o foco do teclado
Cascata
Organiza suas janelas abertas em Cascata
Tile Horizontal
Organiza suas janelas Horizontalmente
Tile Vertical
Organiza suas janelas Verticalmente
Arrumar Icones
Configura suas janelas minimizadas
Fechar Todos
Fecha todas as janelas Abertas
Lista de janelas abertas
Mantm a lista de arquivos abertos do MetaEditor
Ajuda
Ajuda Tpicos
Ajuda especifica sobre o MetaEditor
Sobre
Caractersticas do MetaEditor
-
-
In Profit
A Barra de Ferramentas do MetaEditor
Barra de Ferramentas
Inicia um novo arquivo de cdigo MQL4 atravs do assistente
Abre um arquivo existente
Salva arquivo atual em disco
Exibe/Esconde Janela de Ferramentas
Exibe/Esconde Janela do Navegador
Recorta texto selecionado e manda para a rea de transferencia
copia texto selecionado para a rea de transferencia
Coloca, a partir da posio atual do cursor, no seu cdigo, o texto que estiver disponvel na rea de transferncia do Windows
Desfaz a ultima digitao
Recupera a ultima digitao desfeita
Compila o cdigo do arquivo que esteja com o foco do teclado.
Chama o MetaTrader, onde voc faz suas negociaes.
Mostra ajuda para item que sera selecionado
-
-
In Profit
Configurando o MetaEditor
Agora, aprenderemos como modificar algumas caractersticas do MetaEditor para que nos parea mais amigvel, em nosso trabalho do dia a dia.
Primeiramente as opes gerais.
- Tab size : o tamanho em caracteres que tero nossas tabulaes, elas aparecero quando voc teclar a tecla TAB, na verdade nada mais o numero mximo de espaos em branco ate a prxima tabulao.
- Inserir espaos : Ao passar para a prxima linha e se o sistema "Auto identificar" estiver ligado, o MetaEditor vai inserir espaos em branco em vez de tabulaes.
- Auto identificar : quando voc teclar o <enter> para a prxima linha, o MetaEditor se posicionara exatamente embaixo do comeo da ultima linha
- Auto parameter info : ao identifica uma funo e quando voc teclar o parnteses, aparece uma pequena janela de ajuda de como os parmetros de vem ser passados na chamada da referida funo, mas isto somente funciona com as funes padres do MQL4, para as funes que voc desenvolve no existe esta ajuda.
- Auto Listar nomes : diz para o MetaEditor mostras as possveis funes ou palavras chaves que voc pode utilizar e que so padroes do MQL4, isso ajuda voc a no cometer erros de sintaxe.
- Listar nomes depois de : Mostra a janela de nomes do MQL4, depois de voc digitar o caractere da palavra, desde que o comeo tenha alguma ocorrncia na lista de nomes

Voc notara que a medida que voc digita as palavras no editor, elas assumem uma cor diferente. Isto se da ao fato de que o MetaEditor usa o esquema de identificao de palavras e identificadores baseado em cores. Isto torna se cdigo mais legvel e fcil de entender. Aqui simplesmente voc pode dar as cores que quiser aos diferentes grupos de palavras que o MetaEditor identifica
Se voc no gosta da fonte utilizada pelo MetaEditor, ou se acha ela pequena demais ou muito grande, na prxima tabulao das opes voc pode modific-la e deix-la da maneira que voc quiser. Porem voc s pode utilizar fontes de tamanho fixo, esta fontes, no importa a letra, elas ocupam a mesma largura na tela, isto o "i" tem o mesmo espao reservado que o "m".
Bom por ultimo, se voc acessa sua internet com um servidor proxy, aqui que voc o configura, isto para utilizar a ajuda on-line ja janela de ferramentas.
-
-
In Profit
Consideraes finais sobre o MetaEditor
Existe mais uma particularidade sobre o MetaEditor, porem ela ser discutida mais adiante nas lies onde necessitaremos. Esta particularidade se chama o Assistente do MetaEditor. Com ele, o MetaEditor, identifica o propsito de nosso cdigo e j monta uma mascara inicial para o mesmo, poupando um bom trabalho de digitao.
-
-
In Profit
Sintaxe da Linguagem MLQ4
Espero que estejam gostando do nosso curso. Agora que voc j esta familiarizado com o MetaEditor, chegou a hora de comearmos a realmente aprender as bases do MQL4. Como j citado anteriormente, se voc tiver conhecimento da linguagem C ou C++, ento, voc j tem um grande conhecimento de MQL4, pois a sintaxe de MQL4 muito semelhante a de C e C++. O termo sintaxe, verificado no dicionrio da lngua portuguesa definido como:
do Latin : syntaxe < Gr. sntaxis, arranjo, disposio.
Substantivo Feminino, parte da estrutura gramatical de uma lngua que contm as regras relativas combinao das palavras em unidades maiores (como as oraes), e as relaes existentes entre as palavras dentro dessas unidades; parte da gramtica que estuda estas relaes.
Em termos de linguagem de programao, sintaxe definida como:
A sintaxe de uma linguagem de programao pode ser descrita por uma gramtica independente de contexto e representada grficamente atravs da notao da forma de Backus-Naur ( BNF). BNF uma meta-sintaxe usada para expressar gramticas livres de contexto: isto , um modo formal de descrever linguagens formais. O conjunto de palavras (tokens), compostos de acordo com essas regras, constituem o cdigo fonte de um software. Esse cdigo fonte depois traduzido para cdigo de mquina, que executado pelo processador.
Assim quando estudamos a sintaxe de uma linguagem (computacional ou no) ns estamos estudando um conjunto de regras de gramtica e de escrita que consistem em:
- Formatos
- Identificadores
- Palavras reservadas
Exemplo : Deixe-me cortar o bolo
-
-
In Profit
Formato
Quando voc escreve seu cdigo, voc pode livremente usar espaos, tabulaes e de linhas que vazias. Se voc formata seu seu cdigo de maneira que fique mais agradvel aos olhos (Leitura e entendimento). Por exemplo estas 3 formas de definir variveis so vlidas em MQL4:
double MacdCurrent, MacdPrevious, SignalCurrent;
double
MacdCurrent,
MacdPrevious,
SignalCurrent;
double MacdCurrent, MacdPrevious, SignalCurrent;
Mas, como voc v, a primeira linha mais legvel e fcil de compreender. E como tudo no mundo, h excees rgra:
1) voc no pode usar a linha nova no "controle da compilao" (Preprocessors)
Voc saber mais sobre o "controle da compilao" numa das seguintes lies, mas recorde apenas que isto uma exceo. Para o exemplo a linha seguinte do cdigo invlida e o compilador MQL4 reclamar:
#property
copyright "Copyright 2004, MetaQuotes Software Corp."
Esta seria a forma correta da sintaxe para o "controle da compilao":
#property copyright "Copyright 2004, MetaQuotes Software Corp."
2) voc no pode usar a linha ou o espao novo no meio de valores constantes, de identificadores ou de palavras-chaves.
Para o exemplo esta linha vlida:
extern int MA_Period=13;
"extren" e "int" so aqui os palavras chaves, "MA_Period" um identificador e "13" so um valor constante. Voc saber mais nas lies seguintes sobre estas terminologias. Por exemplo as linhas seguintes so invalidas:
extern int MA_Period=1
3;
extern int MA_Period=1 3;
-
-
In Profit
Comentrios
Para fazer o mundo de programao mais fcil, toda a lnguagem de programao tem seu estilo de comentrios da escrita. Voc usa comentrios para escrever linhas em seu cdigo (ou parte de uma linha) que o compilador ignorar, porem, elas faro seu cdigo mais compreensvel. Suponha que voc escreva um programa no vero e no inverno voc quer o ler. Sem comentrios, mesmo voc sendo o criador criador do cdigo, voc provavelmente no compreendera, em primeira instancia, todas estas linhas que voc escreveu. MQL4 (& C/C++) usam dois tipos de estilos dos comentrios
1) Comentrio de linha : uma nica linha para comentrios, a linha do comentrio comea com "//" e termina com a linha nova. Por exemplo:
//Este um comentrio de linha
extern int MA_Period=13; //Este tambm um comentrio de linha
2) Comentrio de varias linhas: comea o comentrio com "/*" e termina com "*/". Em outras palavras tudo que estiver entre "/*" e "*/" inclusive novas linhas ser considerado comentrio (voc pode ter tambm comentrios de linha dentro dos comentrios, o que vale o comentrio de varias linhas). Com essa facilidade possvel voc eliminar uma parte do cdigo que no momento voc no deseja (mas no futuro pode ter que usar) simplesmente colocando ele entre os smbolos de comentrios de varias linhas.Por exemplo:
/* este
um
comentrio
de varias
linhas*/
/* este
um
comentrio // com um comentrio de uma s linha dentro
de varias
linhas*/
--------------------------------------------------------------------------------
Identificadores
Um identificador o nome que voc escolhe a suas variveis, constantes e funes. Por o exemplo MA_Period aqui um identificador:
extern int MA_Period=13;
H poucas regras e limitaes para escolher nomes de identificadores:
1) O comprimento mximo (tamanho) do identificador no deve exceder 31 caracteres.
2) O identificador deve comear com uma letra (maiscula ou minscula) ou o smbolo sublinhando ( _ ). Assim, no se pode comeado o nome de um identificador com um nmero ou um outro smbolo (que no seja o smbolo sublinhando).
3) Voc no pode usar nenhumas palavras chave como um identificador. Voc ver a lista das palavras chaves mais adiante nesta mesma lio.
4) Os nomes dos identificadores so caso sensveis ao caso (diferenciam letras maisculas de minsculas). Assim, MA_PERIOD no o mesmo que o ma_period ou o MA_Period ou Ma_PeRioD (ou qualquer outra combinao de letras maisculas com minsculas no nome com as mesmas letras nas mesmas posies). Deixe-nos fazer exame de alguns exemplos:
nomes vlidos
nomes invlidos
Nome1 Minha_Primeira_Variavel_Longa_1 mais de 31 caracteres
N1o2m3e4 ~Nome smbolo que no o sublinha
Minha__Variavel 123Nome comea com numero
_Nome No#me smbolo que no o sublinha
Nome_1 double palavra-chave (reservada)
-
-
In Profit
Palavras-chaves
Para cada lngua (idioma) existem "palavras" que a ela usa para aes especficas ou determinar alguma coisa. Em linguagens computacionais a mesma coisa. Assim, so algumas palavras so reservados ao uso da linguagem e voc no pode us-los como um nome do identificador ou para nenhuma outra finalidade que no seja aquela que elas foram criadas. Esta a lista das palavras-chaves reservadas na linguagem MQL4:
Tipos de dados
Classe de memria Operadores outros
bool extern break false
color static case true
datetime continue
double default
int for
string else
void if
return
switch
while
Como voc pode observar, so poucas as palavras chaves, porem elas representam todo o poder da linguagem MQL4. Quero ainda exemplificar, baseado em palavras chaves, alguma linhas de programao invalidas:
extern int datetime =13; // datetime palavra reservada
int extern =20; // extern palavra reservada
double continue = 0; // continue palavra reservada
-
-
In Profit
O que um tipo de dado
Toda a linguagem de programao tem um conjunto dos nomes da reapresentao das informaes (de agora em diante chamados de dados) que ela armazena na memria. Por exemplo se a memria tiver armazenado nmeros entre -2147483648 a 2147483647, a maioria das linguagens de programao nomeara como "integer" esse ripo de dado. Ento, dependendo do que voc necessitar armazenar numa determinada regio da memria voc devera dizer ao compilador o tipo de dado que vai colocar l
-
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
|
| |
Calendar |
 |
|
| We Buy | We Sell |
| $1.3604 | $1.4025 |
|