programação
Agora você está lendo
MQL Praticamente. Botão de Pânico, parte I [Curso de Programação]
0

MQL Praticamente. Botão de Pânico, parte I [Curso de Programação]

criado Radek Szafron21 2019 marca

Bem-vindo ao segundo episódio do MQL Practically! Na segunda parte do nosso curso, começaremos novamente com uma folha de papel em branco e escreveremos um novo aplicativo passo a passo. Vamos conhecer os elementos que cada programador usa no seu trabalho diário, como funções, operadores lógicos e loops, que é o que cada um de vocês deve ter ouvido falar, mas não sabia exatamente o que é. Felizmente, em nossa série, damos a teoria saborosa e sem exageros, e nos concentramos no que é mais importante, ou seja, programação na prática.

Esta semana vamos escrever a primeira parte da aplicação "Botão de pânico"cujo nome eu acho que já explica muito. A tarefa do nosso programa será, depois de pressionar um botão, fechar imediatamente todas as posições e pedidos abertos, quando um suor frio aparece em nossa testa, o mundo fica em silêncio e a imagem se reduz a um campo pequeno e nebuloso com uma taxa oscilante de um dólar correndo após um dos tweets fofos de um dos nossos políticos favoritos.

Vamos arregaçar as mangas e ligar o MetaEditor

Vamos começar criando um arquivo de tipo vazio no editor Expert nomeado Panic Button.mq4. O arquivo estará no diretório MQL4 \ Experts. Em seguida, coloque todos os arquivos que você precisa hoje nas pastas certas.

arquivo "Useful_functions.mqh" deve ser colocado no diretório MQL4 \ Include \ Panic Button \

arquivo "Biblioteka_panic_button.ex4" deve ser colocado no diretório MQL4 \ Libraries \ Panic Button \

BAIXAR UM CONJUNTO DE ARQUIVOS MQL

Primeiros personagens

Vamos mudar o código da nossa aplicação, ou seja, o arquivo Panic Button.mq4 do catálogo Especialistas. Deixe-nos informar ao compilador que usamos a sintaxe mais recente da linguagem MQL4 digitando:

#propriedade rigoroso
Código MQL4

Três vezes "e"

#include

Usando a palavra-chave #include podemos anexar outros arquivos de origem ao seu código. No arquivo Przydatne_funkcje.mqh nós preparamos a função necessária na seguinte parte:

bool Zamknij_pozycje_i_zlecenia (bool tylko_ten_instrument)

Para que possamos usar o código adicional, devemos adicioná-lo ao nosso arquivo digitando #include e o caminho de acesso. Exatamente como na caixa abaixo.

#include ".. \\ Incluir \\ Botão de Pânico \\ Funções_Uteis.mqh"
Código MQL4

# Importar

Palavra chave # Importar no entanto, nos permite usar bibliotecas externas. As bibliotecas são algoritmos separados e compilados que compartilham suas funções e recursos com outros programas. Abaixo nós importamos uma biblioteca chamada Biblioteka_panic_button.ex4que contém elementos gráficos e funções para o nosso botão. Entre elementos # Importar Colocamos uma lista de definições de funções que a biblioteca deve nos fornecer.

A importação correta da biblioteca é assim:

# Importar "Botão de pânico \\ Biblioteka_panic_button.ex4"
anular Przycisku_utworz_sie (int x, int y, bool wybieram_niebieski); anular Przycisku_badz_czujny (); bool Przycisku_czy_jestes_klikniety (corda object_name); anular Przycisku_bye_bye ();
# Importar
Código MQL4

entrada

Depois de adicionar os arquivos de origem e as bibliotecas, podemos continuar a criar as funções do nosso programa. Vamos começar adicionando a seguinte linha:

entrada bool Tylko_ten_instrument = falso;
Código MQL4

Element entrada informa ao compilador que estamos criando um parâmetro que estará disponível na janela de configurações do aplicativo, e seu valor dependerá da escolha do usuário. O parâmetro que criamos leva o valor do tipo bool czyli verdadeiro lub falso. Nós o chamamos Tylko_ten_instrument e usando esse nome, poderemos nos referir ao seu valor no futuro, o que nos ajudará a decidir se fecharemos todas as posições ou apenas a posição do instrumento no qual nosso programa está sendo executado.

Primeira função

Vamos adicionar o seguinte trecho de código ao nosso arquivo:

int Oninit ()
{
retorno INIT_SUCCEEDED;
}
Código MQL4

O registro acima significa que criamos uma função chamada OnInitque retornará valores de tipo int, isso é inteiros. Funções retornam valores usando uma palavra-chave retorno.

Nós mencionamos que usar a palavra retorno nossa função retorna valores na forma de inteiros. Então, o que é um registro misterioso? INIT_SUCCEEDED ? Para nossa conveniência na linguagem, há muitos valores definidos automaticamente e INIT_SUCCEEDED é apenas um deles. Sob seu nome está um número inteiro, conhecido pelo compilador como "tudo está ok".

função Oninit () faz parte da API MQL, ou seja, uma função disponível como parte do idioma. As funções da API MQL estão marcadas no código em arroxeada. Depois de iniciar o aplicativo, nosso algoritmo chamará automaticamente a função Oninit () e ele fará isso apenas uma vez, no início, para nos permitir executar as operações necessárias para executar e executar nosso programa.

O conteúdo da função

Entre as chaves de cada função, inserimos as instruções que uma determinada função deve executar. Nossa função Oninit () já contém uma instrução - retorno INIT_SUCCEEDED;

Vamos expandir a função da função Oninit (), lembrando-se de codificar retorno INIT_SUCCEEDED; ele sempre permaneceu na parte inferior da função, porque queremos chamá-lo apenas quando todas as outras instruções forem bem-sucedidas.

Operador condicional se

if(IsDemo () == falso)
{
 
retorno INIT_FAILED;
 
}
Código MQL4

O código acima, usando um operador condicional if, verifica se o ambiente para nossos experimentos é seguro e trabalhamos em uma conta de demonstração.

Construção do operador if é sempre muito parecido. Um registro entre os parênteses após o operador, ou seja, o registro IsDemo () == falso chamamos de expressão condicional. É uma expressão lógica que pode retornar um de dois valores - verdadeiro lub falso. Quando a expressão condicional retorna um valor verdadeiro este será o código entre as chaves que aparecem diretamente após o operador if.

O símbolo == em uma expressão condicional faz uma pergunta se o valor à sua esquerda é igual ao valor à direita. Porque a função IsDemo () retornará o valor falsoquando ativamos o programa na conta ativa, nossa expressão condicional, como um todo, retornará o valor verdadeiroporque o valor à esquerda do símbolo == corresponderá ao valor à direita. Quando uma expressão condicional é atendida, um código será executado entre as chaves do operador if e o programa retornará informações sobre falhas com a ajuda do operador retorno e valor gerado automaticamente sob o nome INIT_FAILED.


consultores especializados


Nós desenhamos um botão

Nós desenhamos nosso botão usando a função Przycisku_utworz_sie (int x, int y, bool wybieram_niebieski)que vem da biblioteca previamente importada. A função aceita dois parâmetros com um tipo de dados int (inteiros) com nomes x oraz yque servem como coordenadas da posição do botão no gráfico em relação ao canto superior direito da janela.

Além disso, a função assume um parâmetro de tipo bool (verdadeiro lub falso) nomeado wybieram_niebieski. Como nosso aplicativo poderá operar em dois modos, para toda a conta ou um instrumento, nosso botão terá a cor apropriada, dependendo das configurações selecionadas.

Nós gostamos de ify

Vamos determinar que queremos que o botão seja azul quando funcionar no modo de um único instrumento e vermelho para toda a conta. Vamos habilitar a coloração do botão, adicionando as seguintes instruções para a função Oninit ():

bool azul = falso;
if(Tylko_ten_instrument == verdadeiro)
{
 
azul = verdadeiro;
}
Código MQL4

Para que o algoritmo determine a cor do botão, para começar, definimos a variável bool nomeado azul e nós atribuímos um valor a ele falso. Então usamos o operador condicional ifque verifica o parâmetro de configurações do aplicativo Tylko_ten_instrument foi definido pelo usuário para um valor verdadeiro. Se este for o caso, o código que define o valor da variável é executado azul  também em verdadeiro. Uma variável preparada desta maneira azul nós podemos servir a função Przycisku_utworz_sie (..) adicionando a seguinte linha de código à função Oninit ().

Przycisku_utworz_sie (5, 15azul);
Código MQL4

Última função (para hoje)

Quando o programa termina ou algo muda nas configurações, a função da API MQL será chamada anular OnDeinit(const int razão).

Usando a função OnDeinit () realizamos operações que são necessárias para finalizar corretamente o programa. No nosso caso, depois de desligar o algoritmo, é necessário remover o botão usando a função previamente importada da biblioteca Przycisku_bye_bye ().

anular OnDeinit(const int razão)
{
 
Przycisku_bye_bye ();
 
}
Código MQL4

Observe que há uma palavra na frente do nome da função anular. Isso significa que nossa função não retornará nenhum valor.

Adicione o ponto-e-vírgula, esfregue suas mãos e pressione compilar

Após a compilação bem sucedida, o código que escrevemos hoje desenhará um botão no gráfico e dará a ele uma aparência adequada, dependendo da configuração inserida pelo usuário na janela de configurações. Parabéns, concluímos o primeiro estágio de criação de nosso aplicativo, criamos uma interface de usuário.

Na próxima semana, desenvolveremos nosso programa para processamento de pedidos e adicionaremos alguns gadgets interessantes.

BAIXAR UM CONJUNTO DE ARQUIVOS MQL

O que você acha disso?
Eu
0%
interessante
100%
Heh ...
0%
Chocar!
0%
Eu não gosto
0%
ferimento
0%
Sobre o autor
Radek Szafron
A autora da publicação é Radek Szafron, proprietária da empresa Expert Advisors, que por muitos anos tem apoiado investidores, fornecendo tecnologias dedicadas ao mercado FOREX. O autor é um graduado da Escola de Economia de Varsóvia com a especialização "Mercados Financeiros" e um programador com experiência de verão quase 20. A empresa implementa projetos de algoritmos e aplicativos escritos em todas as linguagens da família "C", incluindo plataformas populares Meta Trader 4 e 5. Expert Advisors pode ser encontrado em www.expertadvisors.pl.