Tuesday, 3 April 2018

Mql4 codebase moving average


Programação em linguagem algorítmica MQL4 Hoje em dia, um computador pessoal tornou-se indispensável para todos. O rápido desenvolvimento da Internet e do desempenho dos computadores modernos abriu novas perspectivas em muitos campos das atividades humanas. Já há dez anos, o mercado financeiro estava disponível apenas para bancos e para uma comunidade limitada de especialistas. Hoje, qualquer um pode se juntar ao mundo dos comerciantes profissionais e iniciar a negociação independente a qualquer momento. Centenas de milhares de comerciantes em todo o mundo já julgaram MetaTrader 4 Client Terminal pelos seus méritos. O uso de sua linguagem de programação embutida, MQL4, eleva os comerciantes para um novo nível de negociação - para negociação automatizada. Agora, um comerciante pode implementar suas idéias como um programa de aplicação - escrever um indicador personalizado, um script para executar operações únicas, ou criar um Expert Advisor - um sistema de negociação automatizado (robô comercial). Um Expert Advisor (EA) pode trabalhar 247 sem qualquer intervenção - acompanhar os preços de segurança, enviar mensagens electrónicas, SMS para o seu telemóvel, bem como fazer muitas outras coisas úteis. A principal vantagem das aplicações é a possibilidade de fazer negócios de acordo com o algoritmo definido pelo comerciante. As idéias que podem ser descritas em uma linguagem algorítmica (interseção de duas médias móveis ou processamento digital de sinais, três telas por análise fractal de Elder ou Peters, uma rede neural ou construções geométricas) podem ser codificadas em uma aplicação e, em seguida, . O desenvolvimento de aplicações para MetaTrader 4 Client Terminal requer o conhecimento do MQL4. Este livro de texto presente irá ajudá-lo a criar seus próprios Expert Advisors, scripts e indicadores e encarnar neles suas idéias seus algoritmos de negociação rentável. O livro didático destina-se a um grande número de leitores sem experiência em programação que desejam aprender a desenvolver aplicativos de negociação automatizados para MetaTrader 4 Client Terminal. O livro de texto é projetado em tal método que para tornar o aprendizado MQL4 tão conveniente e conseqüente quanto possível. MetaTrader 4 - Experts Moving Average - especialista para MetaTrader 4 O especialista em média móvel para a formação de sinais de comércio usa uma média móvel. Abertura e fechamento de posições são realizadas quando a média móvel encontra o preço na barra recentemente formada (o índice de barra é igual a 1). O tamanho do lote será otimizado de acordo com um algoritmo especial. O consultor especialista analisa a concorrência da média móvel e da tabela de preços de mercado. A verificação é executada pela função CheckForOpen (). Se a média móvel se encontrar com a barra de tal forma que a primeira for superior ao preço de abertura mas inferior a preço de fechamento, a posição de COMPRA será aberta. Se a média móvel atingir a barra de tal forma que a primeira é inferior ao preço de abertura mas superior ao preço de fechamento, a posição de VENDA será aberta. Money Management utilizado no especialista é muito simples, mas eficaz: o controle sobre cada volume de posição é realizada, dependendo dos resultados das transações anteriores. Este algoritmo é implementado pela função LotsOptimized (). O tamanho do lote básico é calculado com base no risco máximo permitido: O parâmetro MaximumRisk exibe a porcentagem de risco básico para cada transação. Geralmente possui um valor entre 0,01 (1) e 1 (100). Por exemplo, se a margem livre (AccountFreeMargin) é igual a 20.500 e as regras de gerenciamento de capital prescrevem o risco de uso de 2, o tamanho do lote básico fará 20500 0.02 1000 0.41. É muito importante controlar a precisão do tamanho do lote e normalizar o resultado com os valores permitidos. Normalmente, lotes fraccionados com passo de 0,1 são permitidos. Uma transação com volume de 0,41 não será realizada. Para normalizar, a função NormalizeDouble () é usada com precisão até 1 caractere após o ponto. Isso resulta no lote básico de 0,4. O cálculo do lote básico com base na margem livre permite aumentar os volumes de operação dependendo do êxito da negociação, ou seja, negociar com o reinvestimento. Este é o mecanismo básico com a gestão obrigatória do capital para o aumento da eficiência comercial. DecreaseFactor é a medida em que o tamanho do lote será reduzido após negociação não rentável. Os valores normais são 2,3,4,5. Se as transações precedentes não fossem lucrativas, os volumes subseqüentes diminuirão por um fator de DecreaseFactor para esperar pelo período não lucrativo. Este é o principal fator no algoritmo de gerenciamento de capital. A idéia é muito simples: se a negociação está aumentando com sucesso, o especialista trabalha com o lote básico fazendo lucro máximo. Após a primeira transação não rentável, o especialista irá reduzir a velocidade até que uma nova transação positiva é feita. O algoritmo permite desabilitar a redução de velocidade, para fazê-lo, é preciso especificar DecreaseFactor 0. O valor das últimas transações não lucrativas sucessivas é calculado no histórico de negócios. O lote básico será recalculado nesta base: Assim, o algoritmo permite efetivamente reduzir o risco que ocorre como resultado de uma série de transações não rentáveis. O tamanho do lote é obrigatoriamente verificado para o tamanho mínimo de lote permitido no final da função porque Os cálculos feitos anteriormente podem resultar no lote 0: O especialista é principalmente destinado a trabalhar com período diário, e no modo de teste - para fazer a preços fechados. Ele será comercial apenas na abertura de um novo bar, é por isso que os modos de cada carrapato modelagem não são necessários. Indicadores personalizados ROC (Price Rate of Change) Sabe-se que todos os indicadores têm relevância na aplicação - eles são usados ​​para ajudar um profissional a orientar no movimento de preços atual e prever pelo menos até certo ponto o futuro Preço. Quando a experiência é bastante grande, pode-se negociar orientando-se pelo caráter de Mudanças de Mudança Mínima, por exemplo, basta seguir sua direção. No entanto, Moving Average reflete a dinâmica das mudanças de preços de mercado apenas quotin geral, porque tem uma desvantagem muito grave - lag. O indicador ROC aqui descrito tem algumas vantagens em comparação com um MA simples - tem menor atraso e é mais ilustrativo. Vamos ver como MAs com período de média diferente caracterizar os movimentos de preços. FIG. 125 mostra duas dessas linhas indicadoras: uma vermelha MA com o período de média igual a 21 barras e uma MA azul com período de média 5 barras. Você pode facilmente ver que MA com menor período de média está mais perto do gráfico e tem menor atraso. No entanto, é bastante difícil utilizar esta linha para caracterizar o mercado, porque é muito ondulado, isto é, muitas vezes muda a sua direcção, dando assim muitos sinais falsos. MA com um maior período de média não é tão ondulado, ou seja, não vai dar tantos sinais falsos, mas tem outra desvantagem - lag maior. A terceira linha presente na Fig. 125 é uma linha indicadora da taxa de variação (laranja). Esta linha tem uma vantagem aparente em comparação com qualquer um dos MAs: tem um pequeno atraso e é bem suavizada. Vamos discutir a linha em detalhes. Esta linha de indicador é construída com base na taxa de alteração MA (21). Na parte A-B taxa de MA mudança cresce. Significa que cada ponto MA na parte indicada não é simplesmente mais alto do que o anterior, mas maior pelo valor que é maior do que o valor análogo para o ponto anterior. Por exemplo, se na barra com índice 271 MA (21) o valor era 1.3274, na barra com índice 272 - 1.3280, na barra 273 - 1.3288, o valor entre as barras com índices 271 e 272 MA aumentou 6 pontos, entre 272 E 273 - por 8 pontos. Assim MA não simplesmente cresce, mas sua taxa de mudança também aumenta. Na parte do aumento da taxa de mudança (A-B), as cavernas MA para cima e um pequeno fragmento desta parte podem ser descritas como parte de um círculo com um certo raio r1. À medida que MA se aproxima de um ponto flexível B, o raio do círculo que circunscreve a última parte está crescendo e no ponto B é igual ao infinito. I. e. No ponto B MA se transforma em uma linha reta, que é caracterizada por uma taxa de crescimento constante, é por isso que a linha laranja pára de aumentar. Na parte B-C MAs crescendo fica mais lento, mas continua. Embora MA continue crescendo em alguma velocidade positiva, a taxa de crescimento MA torna-se menor, é por isso que a curva V se move para baixo. Qualquer fragmento pequeno nesta parte MA tipo de circunscreve um círculo de um raio r2 abaixo do MA. No ponto C, MA pára de crescer, isto é, a sua velocidade é igual a zero. Neste exemplo para construir uma linha laranja MA é usado como a linha de apoio. Aqui deve ser especificada a noção de MA de apoio. Em uma construção usual de qualquer gráfico em um plano geralmente sistema de coordenadas cartesiano é usado, e como a linha de partida para a construção X-eixo é usado. No nosso caso, como tal, uma linha não é um eixo recto, mas MA com um certo período de média (neste caso MA (21), linha vermelha), é chamado um MA de apoio. A taxa de mudança de MA é proporcional à diferença entre o MA vermelho e o V laranja. Se a linha laranja está acima de MA, MA velocidade é positiva se abaixo, é negativo, no ponto de cruzamento de V e MA taxa de MA crescimento é igual a zero. A parte C-D pode ser descrita semelhante à parte A-B, mas a velocidade de crescimento MA é um valor negativo. Um momento importante aqui é que a MA cresce durante todo o intervalo E-C, enquanto que a curva V tem um extremum típico e muito óbvio no ponto K. A análise visual do gráfico mostra que a linha do indicador ROC caracteriza os picos e os fundos de um gráfico do que qualquer MA. Na programação de um indicador para calcular a taxa de mudança de MA é utilizada uma tecnologia simples. Taxa é uma medida que tem em seu numerador valor de um parâmetro alterado e em seu denominador - período de tempo, durante o qual o parâmetro muda. No contexto deste indicador (ver figura 126) é a diferença entre MAc (valor MA actual) e MAp (valor anterior) no intervalo igual a várias barras BarsV. Sabendo que o cálculo da taxa para a história de desenvolvimento de preços é realizado em um mesmo intervalo (número de barras), o denominador pode ser omitido, ou seja, pode-se julgar a taxa de variação de preço pela diferença entre MAc e MAp na Barras atuais e anteriores. O indicador personalizado analisado calcula 6 linhas de indicadores em todos. A matriz de indicadores Line0 contém valores da MA de suporte, em relação aos quais todas as outras linhas de indicadores são construídas. Os próximos três conjuntos de indicadores (Linha1, Linha2 e Linha3) contêm valores das taxas de variação de preços com base em MAs com diferentes períodos de média. A matriz de indicadores Line4 destina-se a construir uma linha de taxa média (média aritmética de Linha1, Linha2 e Linha3) e Linha5 - para construir a mesma linha de média de taxa, mas suavizada. Ao tomar decisões comerciais um comerciante geralmente leva em conta o caráter de desenvolvimento de preços não só no atual, mas também em prazos mais próximos. Para entender melhor como as três linhas de indicadores ROC são construídas, vamos prestar atenção ao seguinte detalhe. MA com um determinado período de média construído em um determinado período de tempo é refletida no período de tempo mais próximo com o período de média menos pelo valor, pelo qual o período é maior. Por exemplo, se no gráfico de segurança M30 MA com o período de média 400 é refletido, ele também será refletido (com a mesma imagem e fechar valores absolutos) no gráfico H1 com período de média 200, no gráfico H4 com período 50 e assim por diante . Entretanto, haverá alguma imprecisão conectada com uma quantidade maior de dados levados em conta em prazos menores. No entanto, na maioria dos casos esta imprecisão é aceitável pequena. A linha laranja construída com base no array de indicadores Line1 reflete a mudança de taxa no cronograma atual. A linha verde com base na linha 2 é refletida (no mesmo período de tempo atual) como a linha laranja seria refletida no período mais próximo. A linha marrom é refletida no período atual como o laranja poderia ser refletido no próximo maior prazo. Assim, utilizando o indicador descrito ROC três linhas podem ser refletidas em um gráfico - linhas refletindo a taxa de variação de preços no calendário atual, maior próximo eo próximo maior prazo. Indicador personalizado roc. mq4 (Taxa de preço de variação) para o período de tempo atual, o maior próximo eo próximo período de tempo maior. Para calcular matrizes de indicadores de três linhas de taxa são usadas MAs com diferentes períodos de média. O período de média MA para o período de tempo atual é configurado por um usuário na variável externa PeriodMA1 e o período de média do MA de suporte na variável externa PeriodMA0. Os períodos de média de MAs, para os quais a taxa é calculada, os períodos de média de MAs de apoio e o período, em que a taxa é medida, são calculados para períodos de tempo mais elevados no bloco 6-7. Os coeficientes correspondentes para o cálculo destes valores são definidos no bloco 5-6. Por exemplo, se o indicador for anexado ao gráfico M30, os coeficientes K2 e K2 serão iguais a 2 e 8 em conformidade, porque o período de tempo mais próximo H1 é duas vezes maior do que M30, o próximo período mais longo é H4, que é oito vezes maior que M30. Cálculos em start () são muito simples. No bloco 12-13, os valores de MA de suporte são calculados para o período de tempo actual (linha de indicador preta). No bloco 13-14 os valores da matriz de indicadores Line1 são definidos para a construção da linha ROC no período de tempo atual (linha laranja). A taxa aqui é definida como uma diferença do valor de MA analisado na barra actual e na barra, cujo índice é por Sh1 maior que o corrente, i. e. (MAc - MAp). O valor da matriz de indicadores Line1 na barra atual é composto por valores da MA de suporte e uma taxa de caracterização de valor (aqui K é um coeficiente de escala configurado em uma variável externa): Cálculos análogos são conduzidos para construir linhas de taxa para dois Outros intervalos de tempo (blocos 14-16). Os MAs de suporte para esses arrays não são mostrados pelo indicador. No bloco 16017 valores da matriz de indicadores Line4 são definidos para construir uma linha de taxa média (linha azul), que é a sua média aritmética simples. No bloco 17-18 os cálculos são conduzidos para uma linha de taxa mais média - suavizada (linha vermelha espessa, matriz de indicadores Line5). A suavização é feita por meio de média simples: o valor do elemento da matriz de indicadores Line5 na barra atual é um valor aritmético médio de vários últimos valores da matriz de indicadores Line4. Como resultado da utilização deste método a linha de indicador torna-se menos ondulada, mas ao mesmo tempo tem algum atraso. A quantidade de barras para suavização é definida na variável externa AverBars. Iniciando o indicador, você verá 6 linhas de indicadores em uma janela de gráfico: linha preta - MA de apoio para a construção de uma linha de preço no prazo atual linha laranja - taxa de preço de mudança no prazo atual linha verde - preço taxa de mudança na mais próxima Linha de tempo mais alta linha marrom - taxa de preço de mudança no próximo maior prazo linha azul - linha média da taxa de mudança de preço linha vermelha - linha média alisada da taxa de mudança de preço. FIG. 127. O indicador personalizado roc. mq4 permite rastrear em um gráfico de tela de mudança de taxa no atual mais próximo próximo maior e próximo período de tempo e sua média. Indicador roc. mq4 pode ser anexado à janela de qualquer segurança com qualquer período de tempo. Para cada período de tempo a mesma regra é verdadeira: a linha laranja reflete a taxa no cronograma atual, verde - no cronograma mais próximo, marrom - no próximo período de tempo maior. Você pode facilmente verificá-lo: anexe o indicador a uma janela de gráfico e veja a imagem das linhas no cronograma atual e nos prazos mais próximos (veja Fig. 128 e Fig. 129). FIG. 128. A imagem da 3ª linha (marrom) no período de tempo actual (M15) é idêntica à imagem da segunda linha (verde) num período de tempo mais elevado (M30, figura 129) e a imagem da 1ª linha (laranja) No próximo período de tempo mais elevado (H1, Fig. 129). FIG. 129. A imagem da 2ª linha (linha verde) no período de tempo atual (M30) é idêntica à imagem da 3ª linha (marrom) em um menor período de tempo (M15, figura 128) ea imagem da 1ª linha (laranja) Em um período mais longo (H1). Há uma peculiaridade no indicador analisado roc. mq4. Cada linha de taxa leva não apenas o valor da taxa de mudança de preço, mas também depende do caráter das mudanças de MA de apoio. Por um lado esta tecnologia permite exibir linhas de taxa diretamente em um gráfico, que é muito conveniente. Por outro lado, se os valores da taxa de variação do preço são muito pequenos, o principal fator na construção da linha de taxa é o valor da MA de apoio, o que é indesejável, porque cada MA tem um certo atraso. O próximo indicador personalizado é o analógico completo do indicador roc. mq4. Mas é desenhado em uma janela separada. Isto permite calcular valores de linhas de taxa para diferentes intervalos de tempo não relativos a um MA de suporte, mas relativamente a uma linha zero horizontal. Consequentemente, o código de programa também é alterado um pouco: não é necessário calcular MAs de suporte e usar o coeficiente de escala. Indicador personalizado rocseparate. mq4 ROC (Taxa de Variação de Preço) para o período de tempo atual, o mais próximo mais próximo eo próximo período de tempo mais alto. Exibido em uma janela separada. Se observarmos atentamente as linhas de indicadores desenhadas em uma janela separada e em uma janela de gráfico, veremos algumas diferenças resultantes do uso de diferentes métodos durante os cálculos. Para o cálculo das linhas de indicadores desenhadas na janela principal que suportam MAs são usadas, para linhas em uma janela separada não há tais MAs de suporte. Esta é também a razão pela qual há uma concorrência estrita de pontos de cruzamento de linhas de taxa e MA de apoio em roc. mq4 e pontos de cruzamento de uma linha de taxa com a linha zero no indicador rocseparate. mq4. FIG. 130. O indicador personalizado rocseparate. mq4 permite ver em uma janela separada o gráfico de variação de taxa no cronograma atual, o cronograma mais próximo mais próximo e o próximo maior, bem como sua média.

No comments:

Post a Comment