No MQL4 linguagem de programação algorítmica
Curso Introdutório
Atualmente, um computador pessoal se tornou indispensável para todos. O rápido desenvolvimento da Internet e do
desempenho dos computadores modernos abriu novos horizontes em vários campos da atividade humana. Logo em
dez anos atrás, o mercado financeiro comércio estava disponível apenas para os bancos e para uma comunidade
limitada de especialistas. Hoje em dia, qualquer pessoa pode participar do mundo dos comerciantes e profissionais
independentes iniciar negociação em qualquer momento.
Centenas de milhares de comerciantes no mundo inteiro já julgada Metatrader 4 Terminal Client pelos seus méritos.
O uso de sua linguagem de programação embutida, MQL4, elevadores comerciantes a um novo nível de negociação
- a negociação automática. Agora, um comerciante pode executar as suas ideias, como um programa aplicativo -
escrever um indicador personalizado, um script para executar operações simples, ou criar um Expert Advisor - um
sistema automatizado negociação (trading robot). Um Expert Advisor (EA) pode trabalhar em um 24 / 7, sem
qualquer intervenção - faixa de segurança preços, enviar mensagens eletrônicas, SMS de seu telefone celular, assim
como fazem muitas outras coisas úteis.
A principal vantagem das aplicações é a possibilidade de fazer rotas de acordo com o algoritmo fixado pelo
comerciante. Qualquer idéias que podem ser descritos em uma linguagem algorítmica (intersecção de duas médias
móveis ou de processamento digital de sinais, três telas por Elder Peters ou «análise fractal, uma rede neural ou
construções geométricas) pode ser codificado em um aplicativo e depois utilizadas na prática negociação.
Desenvolvimento de aplicações para Metatrader 4 Terminal Client requer o conhecimento de MQL4. O presente
livro didático vai ajudá-lo a criar seu próprio Expert Advisors, scripts e indicadores e encarnar-los em suas idéias -
o seu rentável algoritmos de negociação. O manual é destinado a um grande número de leitores sem experiência em
programação que querem aprender a desenvolver aplicações comerciais automatizados para Metatrader Cliente
Terminal 4. O livro didático é concebido de tal modo que, para tornar o aprendizado MQL4 como convenientes e
conseqüente possível.
Prefácio
É uma espécie de dificuldade para começar a escrever um livro sobre programação para iniciantes, porque a área de
conhecimento em apreço envolve alguns novos conceitos que não são baseados em qualquer coisa previamente
conhecida
ou
costume.
De modo geral, um problema deste tipo pode ocorrer em qualquer outro campo do conhecimento. Por exemplo, o
ponto é conhecido na matemática como infinitesimal círculo, que o círculo em si é definida como um conjunto de
pontos ordenados de uma certa forma. Como é fácil de ver, esses termos são definidos através de cada uma das
outras. Ao mesmo tempo, este "descuido" não se tornou um obstáculo para a matemática. Ambos os círculos,
pontos, bem como outros termos aprovados em matemática ir bem em conjunto. Além disso, toda a gente percebe
pela
visão
que
é
um
ponto
eo
que
é
um
círculo.
É fácil descobrir que a grande maioria dos termos ordinários têm fronteiras indeterminadas. Alguns desses limites
são tão nebulosos que estas auxiliem algumas dúvidas sobre a existência do próprio fenômeno ou objeto definido
pela expressão. No entanto, a natureza do homem é que este estranho (em termos de lógica normal) situação não
vem entre um homem e de sua fecunda existência e actividades. Após um termo tem sido utilizado por um
determinado período de tempo, leva-se em completar o seu sentido para nós. É difícil responder à pergunta de como
e por que isso acontece por aqui. Mas ela faz. Nós apenas sabemos que várias referência a um prazo desempenha
um
papel
importante
em
termos
do
processo
de
aprendizagem
notável.
Foram
estabelecidas
as
seguintes
tarefas
presentes
neste
trabalho:
desdobra
o
sentimento
de
novo
usando
termos
bem
conhecidos
analogias;
tornando o significado de cada termo intuitivamente claro quando ele ocorre pela primeira vez;
fornecendo os leitores com a quantidade de informação necessária para caracterizar programas e programação.
Para este efeito, o livro contém muitos exemplos e figuras. O texto inclui referências cruzadas que permitem ao
leitor
a
obter
informações
sobre
temas
afins.
Algumas palavras sobre a apresentação dos materiais. Alguns livros didáticos sobre programação convidar os seus
leitores sobre as primeiras páginas para imprimir "Olá, mundo!" usando um programa simples. Seus autores
consideram que, logo que os seus leitores início da aprendizagem de programação, deve remeter ao programa textos
e gradualmente se acostumar com a forma como os programas podem olhar, que mais tarde irão facilitar a sua
aprendizagem. No entanto, esta abordagem resulta em que o leitor tenha de lidar com vários desconhecidos termos,
ao mesmo tempo, e só para adivinhar o conteúdo e as propriedades de algumas linhas do programa. Isso pode
resultar
em
um
equívoco
e,
consecutivamente,
na
vaga
no
conhecimento
do
leitor.
A meu ver, seria mais eficaz a utilização de um método em que o leitor vai para a próxima seção do livro didático
só depois que ele ou ela teve uma profunda compreensão das matérias anteriores. No âmbito deste método, o
primeiro programa será oferecido ao leitor apenas depois que ele ou ela tem dominado todas as condições
necessárias e ganhou alguns insights sobre os princípios básicos da codificação. Este é o método atual é baseada no
livro
didático.
Para dominar o conhecimento dado no livro, o leitor tem de ser um usuário PC e ter uma certa experiência em
trabalhar com Metatrader 4 produzidos pela MetaQuotes Software Corp.
Introdução à Programação MQL4
Antes de começar a estudar MQL4 programação, iremos definir o escopo de nosso estudo. Em primeiro lugar
deve-se notar que os programas discutidos neste livro pode deve-ser usado apenas como aplicações para trabalhar em
Metatrader Cliente Terminal 4. Fig. 1 abaixo mostra o papel do comércio na gestão destes programas. Para uma
Se você está interessado em MQL4 programação, você deve ter conseguido familiarizar com o cliente terminal.
Cliente terminal é uma parte do sistema de comércio on-line. Este sistema também inclui um servidor instalado em
um centro lidar. O centro que tratam, por seu turno, está relacionada com outros participantes do mercado - os
bancos e instituições financeiras.
O cliente terminal inclui ambiente informacional - um conjunto de parâmetros que informam sobre o estado do
mercado e das relações entre um profissional e de lidar center. Contém informações sobre preços correntes,
limitações em relação aos máximos e mínimos para tamanho, distância mínima de ordens stop, abono / proibição do
comércio automatizado e muitos outros parâmetros úteis caracterizando o estado atual. O ambiente informacional
são atualizados quando novas carrapatos são recebidos pelo terminal (linha verde na fig. 1).
Built-in ferramentas
O cliente terminal built-in contém ferramentas que permitem realizar uma análise técnica do mercado e executar
manual de gestão comercial. Para uma análise do mercado podem utilizar técnicas diferentes indicadores e estudos
linha - suporte / resistência linhas de tendência canais, etc níveis Fibonacci
Manual de gestão para a negociação da ordem de ferramentas de gestão é utilizado. Usando esta barra um
comerciante pode abrir, fechar e modificar ordens. Além disso, o terminal tem a opção de parar de modo
automatizado de gestão de posição. Um comerciante ações do built-in com ferramentas de gestão comercial resulta
a formação do comércio encomenda, que são enviadas para um servidor.
Para obter mais informações sobre o cliente terminal por favor consulte o "UserGuide" (ClientTerminal_folder \
Terminal.chm).
Análise do mercado e do comércio na gestão Metatrader 4 Terminal Client é implementado com a ajuda de
ferramentas de programação. MQL4 linguagem permite a criação de tais programas. Existem três tipos de
aplicações criadas em MQL4 e destinados a trabalhar no terminal do cliente:
personalizado indicador - um programa para visualização gráfica de mercado, de acordo com regularidades escrito
um algoritmo do autor;
Consultor Especialista - um programa que permite automatizar uma grande parte das operações comerciais e torna
possível automatizar totalmente a negociação;
script - um programa para executar um tempo de execução das acções, incluindo as operações comerciais.
Fig. 1 revela que o pedido tem a mesma via de acesso ao cliente terminal ambiente informacional como built-in
para ferramentas manuais negociação (setas azuis). Ele também pode formar gestora influências (setas vermelhas),
passaram para o cliente de terminal. Programas de diferentes tipos podem ser utilizados simultaneamente e
intercâmbio de dados. Usando esses aplicativos um programador pode automatizar uma grande parte das operações
comerciais ou criar um robô que será um comércio sem interferência do operador.
Os pedidos e manuais dos instrumentos de gestão podem ser utilizadas em simultâneo o cliente terminal
complementando-se mutuamente.
A característica fundamental técnicas de negociação on-line utilizando o sistema de comércio Metatrader é que
todas as acções de gestão são produzidas no terminal cliente e, em seguida, enviada para um servidor. Programas
aplicativos (Expert Advisor, script, indicador) pode trabalhar apenas como parte do cliente terminal, desde que
esteja conectado a um servidor (que tratam centro). Nenhum dos programas aplicativos estão instalados no
servidor.
O servidor permite apenas para processar sinais provenientes de um cliente de terminal. Se um cliente terminal está
desconectado da Internet ou de um programa aplicativo (Expert Advisor ou script) em execução em que não geram
qualquer gerir as acções, nada irá acontecer no servidor.
O escopo de nosso estudo inclui programas (Expert Advisors, scripts personalizados e indicadores) que permitam a
realização parcial ou totalmente automatizada alargar significativamente o comércio e manutenção de trocas
informativas (ver fig. 1). Neste livro você encontrará a descrição do programa e os componentes principais regras
de criação e utilizando programas. Também vamos considerar em detalhes exemplos de programas e parâmetros do
ambiente informacional do cliente terminal, que estão disponíveis para um programa durante a sua execução.
Programas para a negociação automática possuem potencial muito mais possibilidades do que ferramentas manuais
de gestão comercial.
Na maioria dos casos, um programa permite fazer um trabalho mais fácil do comerciante eliminando a necessidade
de um monitoramento constante da situação no mercado antes da sessão um computador por um longo período de
tempo. Poderá também contribuir para aliviar a tensão nervosa e diminuir o número de erros que aparecem nos
períodos de extrema tensão emocional. Mas o principal é que a utilização do programa de comércio método permite
desenvolver uma gestão própria do idéias e testá-las em dados históricos, escolha óptima parâmetros de aplicação
dessas idéias e, finalmente, para implementar uma estratégia comercial bem articulada.
Noções básicas de MQL4
Esta seção representa termos básicos subjacentes MQL4 linguagem de programação:
§Alguns conceitos básicos
Expressões como 'carrapato' (uma alteração de preços), «controlo» em algoritmos, 'comentário'
nos programas são descritos. O principal evento quando negociação em mercados financeiros é a
mudança de preço. Esta é a razão por carrapato é um importante acontecimento que torna os
mecanismos básicos de MQL4 programas veiculados. O que fazer quando um novo carrapato
rendimentos? Quais as acções a tomar? Este controle é que se muda para a frente aqui. Mas não
se esqueça de comentar o seu código.
§
Constantes e Variáveis
Os termos de constantes e variáveis são introduzidas, a diferença entre esses termos são
explicados. Como o termo sugere, é uma coisa constante, contínua, definir de uma vez por
todas. Ao contrário da constante, uma variável é um objeto que o código de programação pode
modificar o seu conteúdo. É impossível escrever um programa sem utilizar objetos imutáveis
(constantes) e / ou objetos que podem ser modificados durante a execução do programa
(variáveis).
§
Tipos de dados
Certos tipos de dados são usados em qualquer linguagem de programação. O tipo de uma
variável é escolhido de acordo com a sua finalidade. Como é que podemos declarar uma variável,
como podemos inicializá-lo (preset seu valor inicial)? Uma má escolha do tipo de uma variável
pode abrandar o programa ou mesmo resultar na sua acção errada.
§
Operações e Expressões
Operações operar sobre operandos. Quais são os tipos de operações que existem? O que é
utilizada para typecasting?Quais são as características especiais das operações sobre
inteiros? Porque é importante lembrar que cerca de precedences de dados de diferentes
tipos? Sem saber sobre as características de algumas operações, você pode fazer erros sutis.
§Operadores
Simples e compostos operadores. Uma ação necessária não deve ser executado por um simples
operador. Se for necessário que um grupo de operadores é executado como um grande operador,
este grupo deve ser incluído em um composto operador. Requisitos específicos e exemplos de
utilização de operadores estão dadas.
§
Funções
A necessidade de se obter um simples código remete-nos para o prazo de Função. Para utilizar a
função de locais diferentes no programa, é necessário prestar-lhe-Function Parameters. Iremos
considerar o processo de criação da função personalizada. Os exemplos de utilização de funções
normalizadas são dadas.
§
Tipos de Programas
Scripts, indicadores e Expert Advisors são os tipos de MQL4 programas que lhe permitem cobrir
praticamente toda a classe dos problemas relativos à negociação em mercados fincancial. É
necessário compreender os efeitos de cada tipo de programas, a fim de utilizar Metatrader Cliente
Terminal 4, da melhor forma.
Alguns conceitos básicos
Assim, o tema do nosso interesse, é um programa escrito em MQL4. Antes de darmos início a uma
apresentação detalhada das regras de escrever programas, é necessário descrever os conceitos básicos
que caracterizam um programa e de suas interrelações com informação ambiental. O Metatrader 4
Terminal Client for conhecida a trabalhar on-line. A situação dos mercados financeiros muda
continuamente, o que afecta os símbolos gráficos no cliente de terminal. Carrapatos terminal fornecer ao
cliente, com informações sobre a evolução dos preços no mercado.
A noção de carrapato
Assinale-se de um evento que se caracteriza por um novo preço do símbolo em algum instante.
Carrapatos são entregues a cada cliente através de um terminal instalado em um servidor central que
tratam. Conforme adequado à situação actual dos mercados, carrapatos podem ser recebidas mais ou
menos freqüentes, mas cada um deles traz uma nova citação - o custo de uma moeda expresso em
termos de outra moeda.
Um pedido que operam com o cliente terminal pode funcionar dentro de um período longo de tempo,
por exemplo, vários dias ou semanas. Cada pedido é executado de acordo com as regras estabelecidas
para os programas de um certo tipo. Por exemplo, uma Expert Advisor (EA) não funciona continuamente
o tempo todo. Um Expert Advisor é normalmente lançado no momento em que surge um novo
carrapato. Por este motivo, não se caracterizar como apenas um carrapato nova citação, mas sim como
um evento para ser processado pelo cliente terminal.
A duração do Expert Advisor da operação depende de qual programa está incluído no código-la. Normal
EAs completar um ciclo de processamento de informação durante alguns décimos ou centésimos de
segundo. Dentro desse prazo, o EA pode ter processado alguns parâmetros, fazer uma decisão
comercial, forneça o profissional com algumas informações úteis, etc Após ter terminado esta parte do
seu trabalho, a EA vai para o modo de espera até que um novo carrapato vem. Este novo carrapato
lança o Expert Advisor novamente, o programa faz o seu adequado funcionamento novamente e volta ao
modo de espera. A descrição detalhada de como o aparecimento de um novo programa carrapato
influências operação segue abaixo.
A noção de controle
Falando sobre o código em execução um programa de fluxo, bem como sua interação com o cliente
terminal, vamos usar o termo de «controlo».
O controle é um processo de realização de ações predeterminadas pelo programa algoritmo eo cliente
terminal funcionalidades. Controle pode ser transferida dentro do programa a partir de um código de
linha para um outro, bem como o programa de terminal para o cliente.
O controle é transferido de uma forma semelhante à de alguém que dá a palavra para falar numa
reunião. Tal como oradores abordar uma reunião e, em seguida, dar a palavra a outros, o programa
cliente do terminal e transferência de controle entre si.Pelo que, o cliente terminal domina. Seu estado é
maior do que a do programa, como a autoridade do presidente de uma reunião, é maior do que as de
um vulgar coluna.
Antes do programa é lançado, o controle está sob a supervisão do cliente terminal. Quando um novo
carrapato é recebida, o terminal cliente transfere o controle para o programa. O código do programa
começa a ser executado neste momento.
O cliente terminal, depois de ter transferido o controle para o programa, não pode parar o seu
funcionamento. Ela continua trabalhando com o máximo desempenho durante todo o período de tempo
que é lançado no PC. O programa só poderá começar a funcionar no momento em que o cliente tenha
transferido o controlo terminal para ele (como o presidente de uma reunião a reunião controla o tempo
todo que está acontecendo, enquanto que o atual orador toma a palavra por apenas um período limitado
de tempo ).
Depois de ter completado o seu funcionamento, o programa retorna controle para o cliente terminal e
não pode ser lançado por sua própria iniciativa. No entanto, quando o controlo já foi transferida para o
programa, ele retorna controle para o cliente terminal, por si só. Em outras palavras, o cliente terminal
não poderá retornar controle a partir do programa, por si só. Dynamic ações do usuário (por exemplo,
forçou o encerramento do programa) são uma isenção.
Ao discutir os assuntos de desempenho dos programas e estruturas internas, estamos interessados
principalmente na parte do controle que são transferidos dentro de um programa. Deixe a Fig's
referem. 2 mostra que a natureza global da transferência de controle para, a partir e dentro de um
programa. Círculos apresentados na figura caracterizar algumas pequenas, logicamente concluído
fragmentos de um programa, enquanto que as setas entre os círculos mostram como controle é
transferido de um fragmento para outro.
Fig. 2. Transferindo o controle de um programa
Um programa que aceitou o controle do cliente terminal (executando o programa) começa a fazer
algumas ações de acordo com a sua inerente algoritmo. O programa contém linhas programa; geral
ordem de execução programa consiste na transferência do controle seqüencial a partir de uma linha
para outra na direção de cima para baixo. O que, segundo as quais as regras podem ser escritos nestas
linhas serão consideradas inferiores, em todos os detalhes.
Aqui, é importante apenas para enfatizar que cada fragmento é executado logicamente concluído - por
exemplo, alguns cálculos matemáticos são feitas, uma mensagem é exibida na tela, uma ordem
comercial é formada, etc Até o fragmento actual do programa é executado , Que mantém o
controle. Depois de ter sido integralmente cumpridos, o controle é transferido para um outro
fragmento. Assim, o controlo dentro de um programa é transferido de um fragmento para outro
logicamente concluído que eles são executados. Logo que o último fragmento é executado, o programa
fará a transferência (retorno) para controlar o terminal cliente.
A noção de comentário
Um programa consiste em dois tipos de registros: aqueles que apresenta o programa em si e que são
textos explicativos para o programa código.
Um comentário é opcional e nonexecutable parte de um programa.
Então, é um comentário opcional parte de um programa. Isso significa que um programa pronto
funcionará de acordo com o seu código independentemente de saber se existem comentários nos ou
não. No entanto, as observações facilitar a compreensão do programa código muito. Verificou-se uma
linha e multi-line comentários. A uma linha de comentário é qualquer seqüência de caracteres após duas
barras oblíquas (//). O sinal de um uma linha de comentário é terminada por linha alimentação. Um
comentário multi-linha começa com os caracteres de / * e é terminada por * / (ver fig. 3).
Os comentários são utilizadas para explicar o programa código. Um bom programa
contém semper comentários.
Fig. 3. Exemplo de comentários em um programa.
Os comentários são amplamente utilizadas na codificação. Eles normalmente são exibidas em cinza nos
códigos. Iremos utilizar comentários, também, a fim de explicar os nossos códigos e torná-los mais
inteligíveis.
Constantes e Variáveis
Os termos de 'constante' e 'variável' são consideradas em uma seção, uma vez que estes termos são
muito próximos de si mesmas.
A noção de constante
Constante é uma parte de um programa, um objeto que tem um valor.
A duração do programa é uma constante na semelhantes para o mesmo termo usado em equações
matemáticas. É um valor invariável. Para descrever a natureza de um constante utilizada em uma
linguagem algorítmica em tantos detalhes quanto possível, vamos remeter ao bem-conhecido físico e
matemático constantes.
A raça humana tem descoberto as constantes, os valores dos quais não dependem de nós, de qualquer
maneira. Essas são, por exemplo, na física: a queda livre que a aceleração é semper igual a 9,8 m / s /
s; em matemática: Pi = 3.14. Constantes do tipo não pode ser considerado semelhante aos constantes,
de uma linguagem algorítmica.
O prazo de constante também é usado em equações matemáticas. Por exemplo, na equação de Y = 3 *
X + 7, números 3 e 7 são constantes. Os valores dessas constantes são totalmente dependentes da
vontade da pessoa que fez a equação. Esta é a mais próxima de constantes analogia usados em
programas MQL4.
Uma constante (como um valor) é colocada por um programador no código na fase da sua criação. A
única constante é caracterizada pelo seu valor, pelo que a perspectiva da "constante" e "o valor de uma
constante" são sinônimos completo.
Constantes exemplar:
37, 3.14, verdade, "Kazan"
Fig. 4. Uma constante na memória de um PC.
As propriedades de constantes
A propriedade de uma constante é o seu poder de reter durante o tempo de funcionamento do
programa o valor fixado pelo programador e definir este valor para o programa quando o programa
solicita deste (Fig. 5). Para cada constante no programa, o computador aloca uma parte da sua memória
do tamanho necessário. O valor de uma constante não pode ser mudado durante a execução do
programa nem por um programador, nem pelo computador (Fig. 6).
O valor da constante semper permanece a mesma.
Fig. 5. O estado da memória celular de uma constante quando se define o valor para o programa.
Fig. 6. É impossível alterar o valor de um programa constante durante a operação.
A noção de variável
Parte variável é um programa que tem um valor e um nome.
O prazo da variável em MQL4 é semelhante à que foi aceite pela matemática. A diferença entre eles
consiste apenas na medida em que o valor de uma variável em matemática é semper implícita, enquanto
que o valor da variável em execução um programa é armazenado em uma cela especial na memória do
computador.
O termo de "variável identificador 'é a plena sinônimo de" variável nome'. A variável é colocado no texto
do código, pelo seu autor, na fase de codificação como uma variável nome. O nome (identificador) de
uma variável pode ser composta por letras, dígitos, sublinhado. No entanto, ele deve começar com uma
letra. MQL4 é sensível a maiúsculas e minúsculas, ou seja, S e snão são os mesmos.
Exemplar variável nomes: Alfa, alfa, beta, o número, Num., A_37, A37, qwerty_123
Os seguintes identificadores de variáveis representam os nomes das diferentes variáveis: А_22 ea a_22;
Massa, MASSA.
Exemplar valores das variáveis: 37, 3.14, verdadeiro, "Kazan".
As propriedades da variável
A propriedade de uma variável é a sua capacidade de se obter um certo valor a partir do programa,
retê-los durante o período de funcionamento do programa e definir este valor para o programa quando
solicitado pelo programa. Para cada variável do programa, o computador aloca uma parte da sua
memória do tamanho necessário. Vamos referir-se a Fig. 7 e estudar a construção de uma variável.
Fig. 7. Uma variável na memória de um computador.
Existe um valor de uma variável na memória do celular no computador. Esse valor pode ser solicitada
para a transformação e modificado pelo programa. O nome de uma variável nunca é alterado. Ao
escrever um código, o programador pode definir qualquer nome para a variável. No entanto, logo que o
programa está pronto lançado, nem o programador nem computador, nem o programa tem qualquer
viabilidade técnica para mudar o nome da variável.
Se um programa enquanto está a ser executado reúne o nome de uma variável, o programa remete
para essa variável, a fim de obter o seu valor para a transformação. Se um programa se referiu a uma
variável, este último apresenta um valor para o seu programa. Pelo que, o valor da variável permanece o
mesmo, considerando que o programa se torna a cópia do valor contido na célula de memória alocado
para essa variável (Fig. 8).
Quando o valor de uma variável é definida para um programa, este valor
permanece inalterado. O nome de uma variável nunca será mudado.
Fig. 8. O estado da célula de memória de uma variável quando se define o valor para o programa.
Uma variável não está relacionada com a execução do programa durante um certo período de
tempo. Durante este período, o programa pode referir-se a outras variáveis ou fazer cálculos
necessários. Entre as "sessões" de comunicação com o programa, a variável retém o seu valor, ou seja,
mantendo-se inalterada.
De acordo com o algoritmo do programa, ele pode tornar-se necessário alterar o valor de uma
variável. Neste caso, o programa apresenta ao seu novo valor variável, a variável que recebe este valor
a partir do programa. Todas as modificações são feitas na memória celular. Isso resulta em que o valor
anterior da variável é eliminada, enquanto que um novo valor da variável definida pelo programa toma o
seu lugar (Fig. 9).
O valor de uma variável pode ser alterado pelo programa. O nome da variável é
semper inalterada.
Fig. 9. O estado da célula de memória de uma variável quando a receber o valor do programa.
Constantes e Variáveis exemplar em um Programa
Em um programa, constantes e variáveis podem ser encontrados na operadores. No código abaixo, A e
B são variáveis, 7 e 3 são constantes:
A = 7; / / Linha 1
B = A + 3; / / Linha 2
Vamos estudar como o programa funciona com constantes e variáveis. Execução dessas linhas, o
programa irá fazer os seguintes passos:
Linha 1:
2.
Um valor variável recebe 7 do programa.
Linha 2:
1.
O programa tem encontrado uma expressão para a direita a partir do sinal da igualdade e está a
tentar calculá-lo.
2.
Constant 3 apresenta o seu valor para o programa.
3.
O programa refere-se a uma variável pelo nome.
4.
Uma variável define o seu valor (7) para o programa.
5.
O programa faz cálculos (7 + 3).
6.
В variável recebe valor 10 através do programa.
O Valor de uma variável pode ser mudado durante a operação do programa. Por exemplo, pode haver
uma rubrica no programa que contém o seguinte:
В
= 33; / / Linha 3
Neste caso, o seguinte será feito na execução do programa:
1.
33 conjuntos constante o seu valor para o programa.
2.
Variável B gets (nova) valor 33 através do programa.
É fácil notar que o valor variável B recebe 10, a certa altura da execução do programa, e então ele
recebe o valor de 33. O nome da variável B mantém-se inalterado durante todos estes acontecimentos,
enquanto que o valor da variável irá mudar.
Fig. 10 mostra constantes e variáveis do programa código:
Fig. 10. Uma constante e uma variável em um programa.
Tipos de dados
É um conhecimento comum que só equitype valores podem ser acrescentadas ou subtraídas. Por
exemplo, maçãs pode ser adicionado à maçãs, maçãs, mas não pode ser adicionado à metros quadrados
ou a temperatura. Limitações semelhantes podem ser encontrados na maioria das línguas modernas
algorítmica.
Tal como objetos de vida normal ter alguns tipos caracterizando as suas cores (vermelho, azul, amarelo,
verde), o seu sabor (amargo, ácido, doce), montante (um e meio, dois, sete), MQL4 usa dados de
diferentes tipos. Falando sobre o tipo de dados, vamos dizer o tipo do valor de uma constante, de uma
variável eo valor retornado por uma função (a noção de função é considerado na seção de Funções).
Em MQL4, são distinguidos os seguintes tipos (para os valores de constantes, variáveis, e os valores
devolvidos pelas funções):
§
int - inteiros;
§
duplo - números reais;
§
bool - booleanos (lógicos) valores;
§string - valores do tipo string;
§cor - valores de cor tipo;
§
datetime - valores de data e hora.
Tipo int
Os valores do tipo int são inteiros. Este tipo inclui valores que são inteiro pela sua natureza. Os
seguintes valores são inteiros, por exemplo: quantidade de bares na janela do símbolo (16000 bares),
abriu e quantidade de encomendas pendentes (3 ordens), na distância entre os pontos actuais dos
preços e símbolo da ordem Open Preço (15 pontos). Montantes representam objetos tais como eventos
também pode ser apenas inteiros. Por exemplo, a quantidade de tentativas para abrir um despacho não
pode ser igual a uma e meia, mas só para um, dois, três, etc
Existem 2 tipos de valores inteiros:
§
Valores decimais pode ser composta por algarismos de 0 a 9 e ser positivos ou negativos: 10,
11, 12, 1, 5, -379, 25, -12.345, -1, 2.
§
Hexadecimal valores podem consistir de latim letras de A a F ou a partir de um f, algarismos de
0 a 9. Eles devem começar com 0x ou 0x e ter valores positivos ou negativos: 0x1a7b, 0xff340,
0xAC3 0X2DF23, 0X13AAB, 0x1.
Valores do tipo int deve estar dentro da faixa de -2 147 483 648 para 2 147 483 647. Se o valor de uma
constante ou uma variável está fora do intervalo acima, o resultado da operação programa será nulo. Os
valores de constantes e variáveis do tipoint ter 4 bytes da memória de um computador.
Um exemplo de utilização de uma variável do tipo int em um programa:
Arte int = 10; / / Exemplo variável inteira
int B_27 = - 1; / / Exemplo variável inteira
Num int = 21; / / Exemplo variável inteira
Max int = 2147483647; / / Exemplo variável inteira
int = Min - 2147483648; / / Exemplo variável inteira
Tipo dupla
O valor real da dupla tipo são números que contêm uma parte fracionária.
Exemplo valores deste tipo podem ser quaisquer valores que têm uma parte fracionária: inclinação da
linha de apoio, símbolo preço, valor médio de abertura ordena dentro de um dia.
Às vezes você pode enfrentar problemas designando variáveis ao escrever o seu código, ou seja, ele não
é claro para um programador que tipo (int ou dupla), a variável pertence. Vamos considerar um
pequeno exemplo:
Um programa abriu 12 ordens dentro de uma semana. Qual é o tipo da variável A, que considera a
quantidade média diária de ordens abertas por esse programa? A resposta é óbvia: A = 12 ordens / 5
dias. Significa que a variável A = 2.4 deveria ser considerada no programa como dupla, uma vez que
este valor tem uma parte fracionária. Que tipo deve ser a mesma variável A se o valor total das
encomendas abertos dentro de uma semana é 10? Você pode pensar que, se 2 (10 encomendas / 5 dias
= 2) não tem nenhuma parte fracionária, uma variável pode ser considerada como int. No entanto, esse
raciocínio está errada. O actual valor de uma variável pode ter uma fração parte constituído por apenas
zeros. É importante que esse valor dessa variável é real, pela sua natureza. Neste caso, a variável A tem
também de ser do tipo dupla. O ponto separa também devem ser inscritas no registo constante no
programa: А = 2,0
Os valores reais das variáveis constantes e constituído por uma parte inteira, um ponto decimal, e uma
parte fracionária. Os valores podem ser positivos ou negativos. A parte inteira e da parte fracionária são
constituídos por algarismos de 0 a 9. A quantidade de algarismos significativos depois da vírgula pode
chegar ao valor de 15.
Exemplo:
27,12 -1,0 2,5001 -765456,0 198732,07 0,123456789012345
Os valores do tipo dupla pode variar entre -1,7 * e-308 a 1.7 * e308. Na memória do computador, os
valores de constantes e variáveis do tipo dupla ter 8 bytes.
Um exemplo de utilização de uma variável do tipo dupla em um programa:
Arte duplo = 10,123; / / Exemplo variável real
B_27 duplo = - 1,0; / / Exemplo variável real
Num duplo = 0,5; / / Exemplo variável real
MMM = duplo - 12.07; / / Exemplo variável real
Price_1 duplo = 1,2756; / / Exemplo variável real
Tipo bool
Os valores do tipo bool são valores de Boolean (logical) Tipo ou que contenham desmentistes verdade.
Com o objectivo de aprender a noção de Boolean tipo, vamos considerar um pequeno exemplo do nosso
quotidiano. Digamos, um professor precisa de conta a presença dos livros didáticos dos alunos. Nesse
caso, o professor irá listar todos os alunos, sobre uma folha de papel e, em seguida, irá assinalar, em
uma linha direita se um aluno tem um livro didático ou não. Por exemplo, o professor pode usar marcas
e traços em cima da mesa:
Lista de Alunos
Livros Didáticos
em Física
Livro Didático
em Biologia
Livro Didático
em Química
1
Smith
V
--
--
2
Jones
V
--
V
3
Marrom
--
V
V
...
...
...
...
...
25
Thompson
V
V
V
Os valores nas colunas direito só pode ser de 2 tipos: verdadeiro ou falso. Estes valores não podem ser
atribuídas a qualquer dos tipos acima, uma vez que são considerados não em todos os números. Eles
não são os valores de cor, sabor, volume, etc, de qualquer modo. No entanto, que assume assim um
importante sentido. Em MQL4, tais valores booleanos são nomeadas, ou lógico, de valores. Constantes e
variáveis do tipo bool são caracterizados através de que podem ter apenas 2 possíveis valores: true
(verdadeiro, TRUE, 1) ou falsa (falso, FALSE, 0). Os valores de constantes e variáveis do tipo bool ter 4
bytes na memória do computador.
Um exemplo de utilização de uma variável do tipo bool em um programa:
bool aa = True; / / Boolean
аа variável tem o valor de verdade
bool B17 = TRUE; / / Boolean B17 variável tem o valor de verdade
Hamma bool = 1; / / Boolean Hamma variável tem o valor de verdade
Asd bool = False; / / Boolean Asd variável tem o valor de um falso
Nol bool = FALSE; / / variável Booleana Nol tem o valor de um falso
Prim bool = 0; / / variável Booleana Prim tem o valor de um falso
Tipo string
O valor do tipo string é um valor representado como um conjunto de caracteres ASCII.
No nosso quotidiano, pertence a um conteúdo semelhante, por exemplo, armazenar nomes, carro faz,
etc Uma seqüência de tipo valor é gravado como um conjunto de caracteres colocados em aspas (não
deve ser misturado com o dobro única aspas!).Aspas são usadas apenas para marcar o início eo fim de
uma string constante. O valor em si é o conjunto de caracteres emoldurado pelas cotações.
Se existe uma necessidade de introduzir um aspas duplas ( "), você deve colocar um reverso barra (\)
antes dela. Qualquer caractere especial constantes no verso seguinte barra (\) pode ser introduzido em
uma seqüência. O comprimento de uma string constante varia de 0 a 255 caracteres. Se o comprimento
de uma string constante ultrapassa o seu máximo, o excesso de personagens o lado direito será
truncado e compilador dará o correspondente aviso. Uma combinação de dois caracteres, a primeira das
quais é a reverso barra (\), é comummente aceite pela maioria dos programas e percebida como uma
instrução para executar um determinado texto de formatação. Essa combinação não é exibido no texto.
Por exemplo, a combinação de \ n indica a necessidade de uma alimentação de linha; \ t demandas
tabulação, etc
O valor do tipo string é gravada como um conjunto de personagens emoldurado por aspas duplas:
"Metatrader 4", "Stop Loss", "Ssssstop_Loss", "stoploss", "10 sementes". O valor da cadeia, como tal, é o
conjunto de caracteres. As aspas são usadas apenas para marcar o valor das fronteiras. A representação
interna é uma estrutura de 8 bytes.
Um exemplo de utilização de uma variável do tipo string em um programa:
string Prefix = "Metatrader 4"; / / Exemplo variável string
string Postfix = "_of_my_progr. OK"; / / Exemplo variável string
string Name_Mass = "History"; / / Exemplo variável string
string texto = "Linha de Alta \ n Baixa Line", / / o texto contém
caracteres line feed
Tipo de cor
O valor da cor é um tipo de valor cromático.
O significado de "cor" (azul, vermelho, branco, amarelo, verde, etc) é um conhecimento comum. É fácil
imaginar o que uma variável ou uma constante de cor tipo pode significar. É uma constante ou uma
variável, cujo valor é uma cor. Pode parecer a ser um tanto incomum, mas é muito simples, de modo
geral. Tal como o valor de uma constante é um número inteiro, o valor de uma cor é uma cor constante.
Os valores constantes da cor e variáveis pode ser representado como um dos três tipos:
§
Literais
O valor de cor tipo representado como um literal é constituído por três partes que representam
os valores numéricos da intensidade das três cores fundamentais: vermelho, verde e azul
(RGB). O valor deste tipo começa com 'C' e é citada por aspas simples.
Os valores numéricos de RGB intensidade variam de 0 a 255 e podem ser registradas tanto
decimalmente e hexadecimally.
Exemplos: C'128128128 '(cinza), C'0x00, 0x00, 0xFF' (azul), C'0xFF, 0x33, 0x00 '(vermelha).
§Integer Representação
Integer é registados como uma representação hexadecimal ou um número decimal. Um número
hexadecimal é apresentado como 0xRRGGBB onde TR é o valor da intensidade vermelho, GG -
verde, e BB - azul. Decimal constantes não são reflectidas directamente em RGB. Representam o
valor decimal de uma representação hexadecimal inteiro.
Representação dos valores de cor e tipo como inteiros literais hexadecimal como é muito fácil de
utilizar. A maioria dos modernos editores de texto e gráficos fornecem informações sobre a
intensidade do vermelho, verde e azul componentes selecionados no valor de cor. Você acabou de
seleccionar uma cor em seu editor e copiar os valores encontrados em sua descrição para a cor
correspondente valor representação no código.
Fig. 11. Cor parâmetros para literal inteiro e representação do valor constante cor pode ser
tomada nos modernos editores.
§
Color Names
A forma mais fácil de se definir uma cor para indicar o seu nome, de acordo com a tabela de
cores da web. Neste caso, o valor de uma cor é representada como uma palavra correspondente
com a cor, por exemplo, vermelho - a cor vermelha.
DarkGreen
DarkSlateGray
Olive
Verde
Teal
Marinha
Indigo
MidnightBlue
DarkBlue
DarkOliveGreen SaddleBrown
ForestGreen
DarkGoldenrod
DarkSlateBlue
Sienna
MediumBlue
Marrom
DarkTurquoise
DarkViolet
Tijolo refratário
MediumVioletRed MediumSeaGreen Chocolate
Crimson
MediumSpringGreen
LawnGreen
CadetBlue
DarkOrchid
YellowGreen
LimeGreen
Laranja
Ouro
Amarelo
Chartreuse
Lime
SpringGreen
Azul
Magenta
Vermelho
Gray
SlateGray
Peru
DeepPink
MediumTurquoise
DodgerBlue
Turquesa
RoyalBlue
SlateBlue
MediumOrchid
GreenYellow
MediumAquamarine
DarkSeaGreen
Tomate
RosyBrown
PaleVioletRed
Coral
CornflowerBlue
DarkGray
SandyBrown
MediumSlateBlue
BurlyWood
HotPink
Salmão
Violet
LightCoral
SkyBlue
Khaki
LightGreen
Aquamarine
Prata
LightSkyBlue LightSteelBlue
Thistle
PowderBlue
PaleGoldenrod
PaleTurquoise
LightGray
Trigo
LightPink
Gainsboro
PeachPuff
Rosa
Bisque
LightGoldenrod BlanchedAlmond
Beige
AntiqueWhite
PapayaWhip
Cornsilk
LightYellow
LightCyan
MintCream
Neve
Branco
Constantes e variáveis de cor tipo tomar 4 bytes na memória do computador. Um exemplo de como
usar essa variável em um programa:
Paint_1 color = C '128, 128, 128'; / / O valor de cinza foi atribuído à
variável
Colo cor C = '0 x00, 0 x00, 0 xFF "; / / O valor de azul foi atribuído à
variável
BMP_4 color = C '0 xFF, 0 x33, 0 x00' / / O valor do vermelho foi atribuído
à variável
K_12 color = 0 xFF3300; / / O valor do vermelho foi atribuído à variável
N_3 color = 0 x008000; / / O valor do verde foi atribuído à variável
Cor cor = 16777215; / / O valor do branco foi atribuído à variável
Alfa color = 32768; / / O valor do verde foi atribuído à variável
A = cor vermelha; / / O valor do vermelho foi atribuído à variável
B = cor amarela; / / O valor de cor amarela foi atribuído à variável
color = Colorit Negro; / / O valor dos negros foi atribuído à variável
B_21 color = White; / / O valor do branco foi atribuído à variável
Tipo datetime
O valor é do tipo datetime os valores de data e hora.
Os valores deste tipo podem ser usados em programas para analisar o momento do início ou cessação
de alguns eventos, incluindo os lançamentos de importantes notícias, horários start / acabamento, etc As
constantes de data e hora pode ser representado como uma linha literal consistindo de 6 peças que
representam o valor numérico do ano, mês, dia (ou dia, mês, ano), hora, minuto e segundo.
A única constante é enquadrado em cotações e começa com 'D'. É permitido o uso truncado valores: ou
sem data ou sem tempo, ou apenas um valor vazio. O intervalo de valores: a partir de 1 º de janeiro de
1970, a 31 de dezembro de 2037. Os valores de constantes e variáveis do tipo datetime ter 4 bytes na
memória do computador. Um valor representa a quantidade de segundos decorridos a partir das 00:00
do dia 1 de janeiro 1970.
Um exemplo de utilização de uma variável do tipo datetime em um programa:
Alfa datetime = D '2004.01.01 00: 00 "; / / Ano Novo
Tim datetime = D "01.01.2004"; / / Ano Novo
datetime Tims = D '2005.05.12 16: 30: 45'; / / 12 de maio de 2005 4:30:45
pm
datetime N_3 = D »12.05.2005 16: 30: 45 '; / / 12 de maio de 2005 4:30:45
pm
Compile datetime = D''; / / equivalente a D '[compilação data]
/ / 00:00:00 '
Declaração e iniciação variável
A fim de evitar possíveis "perguntas" sobre o programa pelo qual o tipo de dados desta ou daquela
variável pertence, que é aceite em MQL4 especificar os tipos de variáveis logo no início de um programa
explícito. Antes de uma variável começa a participar em quaisquer cálculos, deve ser declarada.
Declaração variável é a primeira menção de uma variável em um programa. Na declaração de uma
variável, seu tipo deve ser especificada.
A inicialização variável significa que a sua afectação a um valor correspondente com o seu tipo, na
sua declaração. Cada variável pode ser inicializado. Se nenhum valor inicial é estabelecido
explicitamente, um numérico variável será inicializada por zero (0) e uma variável string será inicializada
por uma linha vazia.
Em MQL4, admite-se a especificar os tipos de variáveis explicitamente em sua
declaração. O tipo de uma variável é declarada na primeira menção do nome desta
variável. Quando ela é indicada para o segundo e os subsequentes vezes, o seu tipo
não é especificado mais. No decurso da execução do programa, o valor da variável
pode mudar, mas o seu nome e tipo permanecem inalteradas. O tipo de uma variável
pode ser declarada em única ou linhas de operadores.
Uma variável pode ser declarado em uma única linha:
int Var_1; / / Variável declaração em uma única linha
Esse recorde significa que haverá Var_1 variável (variável declaração como tal) e do tipo desta
variável int serão dadas no programa.
Em uma linha, várias variáveis do mesmo tipo podem ser declaradas:
int Var_1, Box, Comm; / / Declaração de diversas variáveis em uma linha
Esse recorde significa que haverá variáveis Var_1, Caixa e Comm, todos do tipo int, utilizado no
programa. Significa que as variáveis acima enumeradas serão considerados pelo programa como
variáveis do tipo inteiro.
Variáveis também podem ser inicializados dentro operadores:
Var_5 duplo = 3,7; / / Variável inicialização em uma missão operador
Esse recorde significa que haverá Var_5 variável do tipo usado em programa duplo, o valor inicial da
variável a ser 3.7.
O tipo de variáveis nunca é especificado a subseqüente linhas em qualquer parte do programa. Contudo,
cada vez que o programa solicita uma variável que "se lembra" de que essa variável é do tipo que tenha
sido especificado, na sua declaração.Conforme cálculos progressos no programa, os valores das variáveis
podem mudar, mas o seu modelo mantém-se inalterado.
O nome de uma variável não tem qualquer relação com o seu tipo, ou seja, você não pode julgar acerca
do tipo de uma variável pelo seu nome. Um nome dado a uma variável pode também ser utilizada para
quaisquer tipos de variáveis em diferentes programas. No entanto, o tipo de qualquer variável pode ser
declarada apenas uma vez dentro de um programa. O tipo de variáveis declaradas não será alterado
durante a execução do programa.
Exemplos de variáveis Declaração e Inicialização
Variáveis podem ser declaradas em várias linhas ou em uma única linha.
É permitida a declarar diversas variáveis de um tipo simultaneamente. Neste caso, as variáveis são
listados separados por vírgulas, sendo colocado um ponto e vírgula no final da linha.
Fig. 12. Exemplo de declaração variável em uma única linha.
O tipo de variáveis é declarada uma única vez, na primeira menção da variável. O tipo não será mais
indicado para o segundo e os subsequentes vezes quando a variável é mencionada.
Fig. 13. Exemplo de declaração variável em uma única linha.
É permitida a declarar e inicializar variáveis nos operadores.
Fig. 14. Exemplo de iniciação variável.
Fig. 15. Variável inicialização no cabeçalho de um composto operador.
Operações e Expressões
A fim de compreender o que tem importância operações e expressões em MQL4, analogias especiais não
são necessários.Praticamente, é o mesmo que em operações e expressões simples aritmética. Todos
entendem que, no registro de f = n + m,membros f, n e m são variáveis, sinais e + = são sinais
operacionais, enquanto n + m é uma expressão.
Na seção anterior do livro, nós aprendemos sobre a necessidade de apresentar dados de diferentes
tipos. Aqui nós entremos relações possíveis entre esses dados (metros quadrados ainda não pode ser
adicionado a maçã). Em MQL4, existem algumas limitações naturais e as regras de utilização de
operações em expressões.
As noções de 'Operando', 'Operação', 'Operação Symbol "e" Expressão "
Operando é uma constante, uma variável, um componente ou uma matriz valor retornado por uma
função (o termo é considerado em função de a seção de funções, a de matriz - na seção
de Arrays; neste estágio atual de aprendizagem, é suficiente para compreender como operandos
constantes e variáveis já estudadas antes).
A operação é feita mediante uma acção operandos.
Operação símbolo é um estilo de caracteres ou um grupo de caracteres que forma a executar uma
operação.
Expressão é uma seqüência de símbolos operandos e funcionamento; é gravar um programa, o valor
calculado de que é caracterizada por um tipo de dados.
Tipos de Operações
Existem os seguintes tipos de operações na MQL4:
§operações aritméticas;
§
cessão operações;
§operações relacionais;
§
Booleano (lógico) operações;
§bitwise operações;
§