Monday 5 August 2019

Mql4 moving average code


MetaTrader 4 - Expert Moving Average - perito 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. Oi, Por favor, dê uma olhada na versão mais recente do conhecido AllAveragesv3.1 indicador com 26 tipos de médias móveis: MAMethod 0: SMA - Simple Moving Average MAMethod 1 : EMA - Média Móvel Exponencial MAMeixo 2: Mais Selvagem - Média Móvel Exponencial Wilder Média Mínima Exponencial 3: LWMA - Média Móvel Média Ponderada MAMdodo 4: SineWMA - Média Móvel Ponderada Seno MAMdodo 5: TriMA - Média Móvel Triangular MAMdodo 6: LSMA - (Ou EPMA, Linha de Regressão Linear) MAMetodo 7: SMMA - Suavizado. Eu tenho uma versão deste indicador que conta os ângulos Ma e os colore em 3 cores. Ajuda ao incorporar o indicador em EA para negociar diferentes ângulos MA. No entanto, depois MT4 ver 600 indicador agir todos funky nas paradas e no backtesting. Eu queria recodificar este para que ele também seria em 3 cores com, ma-ângulos, mas o método T3 não está funcionando. Quando eu uso MAMethod 11 indi apenas disappear. Usage de Indicadores Técnicos De acordo com a pertença ao sistema de comércio on-line MetaTrader 4 existem dois tipos de indicadores em MQL4 - técnico e personalizado. Indicador técnico é uma parte integrante do sistema de comércio on-line MetaTrader, função embutida que permite desenhar na tela uma certa dependência. Propriedades dos Indicadores Técnicos Desenho na Janela de Segurança Cada indicador técnico calcula uma determinada dependência predefinida. Para desenhar essa dependência graficamente na tela, um indicador técnico deve ser anexado a um gráfico. Isto pode ser feito através do menu do sistema Inserir indicadores gtgt ou através da janela Navigator de um terminal cliente. Para anexar um indicador técnico a um gráfico a partir da janela Navigator, é utilizado um método muito simples - drag-amp-drop do nome do indicador técnico da janela do Navegador para uma janela de gráfico. Como resultado, uma ou várias linhas calculadas neste indicador aparecerão na janela do gráfico. As linhas de indicadores de um indicador técnico podem ser desenhadas tanto na janela do gráfico principal como em uma janela separada na parte inferior de uma janela de segurança. Na fig. 104 indicador técnico O jacaré é desenhado em uma janela de gráfico. Unchangeability do código Todos os indicadores técnicos são incorporados, seu código não está disponível para fazer modificações. Assim, um usuário é protegido de uma modificação errônea de built-in indicadores técnicos. No entanto, o código-fonte, no qual um indicador técnico é calculado, está disponível no site do desenvolvedor de software (MetaQuotes Software Corp.) na seção Indicadores Técnicos. Se necessário, um programador pode usar o código completo ou parte dele para criar indicadores personalizados (consulte Criação de indicadores personalizados). Chamando funções de indicadores técnicos A representação gráfica visível para um usuário é exibida por um terminal de cliente. Além disso, por conveniência, chamaremos tais linhas de indicadores de desenhos. A Linha Indicadora é uma exibição gráfica de uma certa dependência baseada em valores numéricos incluídos em uma matriz de indicadores. O tipo de linha de indicador é configurado por um usuário. A linha indicadora pode ser exibida na forma de uma linha sólida ou tracejada, de uma cor especificada, bem como na forma de uma cadeia de certos sinais (pontos, quadrados, anéis, etc.). Durante cálculos de indicadores, são calculados conjuntos de valores numéricos, linhas de indicadores serão desenhadas de acordo com estes cálculos. Esses conjuntos de valores são armazenados em matrizes de indicadores. Indicator Array é um array unidimensional contendo valores numéricos, de acordo com o qual as linhas de indicadores são construídas. Os valores numéricos dos elementos da matriz de indicadores são coordenadas de pontos, sobre as quais é desenhada uma linha de indicador. A coordenada Y de cada ponto é o valor de um elemento de matriz de indicadores, coordenada X é o valor de índice do elemento de matriz de indicadores. A tecnologia de armazenamento de dados em matrizes de indicadores é a base para a construção de indicadores técnicos e personalizados. Os valores dos elementos de matriz de indicadores de indicadores técnicos estão disponíveis em todos os programas de aplicação, incluindo consultores especializados, scripts e indicadores personalizados. Para obter um valor de um elemento de matriz de indicadores com um determinado índice num programa de aplicação é necessário chamar uma função incorporada, cujo nome é definido de acordo com um nome de indicador técnico. Para a execução de uma função de indicador técnico, o indicador correspondente não deve necessariamente ser anexado a uma janela de segurança. Também a chamada de função de indicador técnico de um programa de aplicação não conduz ao anexo de um indicador correspondente a uma janela de segurança. O anexo de um indicador técnico a uma janela de segurança não resulta em uma chamada de indicador técnico em um programa aplicativo. Uma série de indicadores técnicos é incluído no terminal do cliente do sistema de comércio on-line MetaTrader 4. Vamos analisar alguns deles. Moving Average, MA Indicador técnico Moving Average, MA mostra o valor médio do preço do instrumento para um determinado período de tempo. O indicador reflete a tendência geral do mercado - pode aumentar, diminuir ou mostrar algumas flutuações perto de algum preço. Para obter valores da linha do indicador MA em um determinado momento, use a função padrão: símbolo - nome do símbolo de um título, sobre os dados dos quais o indicador será calculado. NULL significa o símbolo atual. Período de tempo. Pode ser um dos períodos de gráfico. 0 significa o período do gráfico atual. Período - período de média para os cálculos de MA. Mashift - mudança de indicador em relação a um gráfico de preços. Método de média. Pode ser um dos valores dos métodos MA. Preço aplicado - preço usado. Pode ser qualquer uma das constantes de preços. Shift - value index adquirido a partir de um array de indicadores (shift back relativo a uma barra atual por um número especificado de barras). Abaixo está um exemplo de chamar uma função de indicador técnico do Expert Advisor callindicator. mq4: Na chamada de função do EA callindicator. mq4 iMA () é usada (função do indicador técnico Moving Average). Vamos analisar esta parte do programa em detalhes: NULL denota que o cálculo de uma média móvel é feito para uma janela de segurança, a qual a EA está anexado (neste caso é EA, em geral, pode ser qualquer programa de aplicação) 0 - é Calculada para o período de tempo definido na janela de segurança, à qual está anexado o EA PeriodMA - o valor do período de média é definido em uma variável externa se após anexar EA a uma janela de segurança um usuário não altera esse valor nas configurações das variáveis ​​externas EA , O valor é igual a 5 0 - matriz de indicadores não é deslocada em relação a um gráfico, ou seja, os valores de elementos de matriz de indicadores contêm valores de MA calculados para barras, em que a linha de indicador é desenhado MODESMA - método de uma média móvel simples é usado para Cálculos PRICECLOSE - o preço de fecho da barra é utilizado para os cálculos 0 - índice de elemento de matriz indicador, para o qual o valor é adquirido - neste caso é zero elemento. Tendo em conta que a matriz de indicadores não é deslocada em relação ao gráfico, o valor MA é obtido para a barra zero. Função iMA () retorna um valor que é atribuído à variável MA. Em outras linhas do programa, este valor é comparado com o preço atual do lance. Se o preço atual for maior ou menor que o valor MA obtido, um alerta será exibido. O uso de variáveis ​​FactUp e FactDn permite mostrar o alerta somente após o primeiro cruzamento da linha MA (nota, a linha de indicador azul em uma janela de segurança é desenhada não porque a função de indicador técnico foi chamada a partir do programa, mas porque um usuário anexou Indicador para o gráfico, Fig. 104). Deve-se notar aqui que com o aparecimento de novos índices de barras de barras de história aumentam, a barra atualmente sendo formada sempre tem o índice 0. No Expert Advisor callindicator. mq4, a função de indicador técnico iMA () retorna o valor calculado para a barra zero. Embora o valor de índice nunca seja alterado durante a execução de EA (isto é, os cálculos são sempre realizados para na barra actual), o valor devolvido por iMA () irá sempre corresponder ao último calculado, isto é calculado para a barra de zero actual. Se para alguns cálculos no programa precisamos obter o valor de um valor indicador técnico não para a barra atual, bur para um histórico, o índice de matriz de indicadores necessário deve ser especificado na chamada de função. Permite ver um exemplo do EA historybars. mq4. Em que MA é calculado na quarta barra: No EA historybars. mq4 valores MA são calculados para a barra atual (índice 0) e para a quarta barra (índice 4). Os índices indicados 0 e 4 não mudam durante esta operação de programa e o programa pode funcionar infinitamente longo cada vez que calcula valores de MA para o zero e as quarta barras. Lembre-se de que, embora os cálculos sejam feitos para MA em barras com os mesmos índices, o MA será alterado, isto é, corresponderá aos valores MA atuais na barra zero atual e à quarta barra atual. Na fig. 106 é claro que, à medida que os preços crescem nas barras de las, MA aumenta. A diferença entre os valores de MA no zero e as quarta barras também cresce, o que se reflete nos alertas exibidos. Indicadores técnicos podem refletir não apenas uma, mas também duas ou mais linhas de indicadores Indicador técnico Oscilador Estocástico compara o preço de fechamento atual com a faixa de preço para um período de tempo selecionado. O indicador é geralmente representado por duas linhas de indicadores. A principal é chamada K. A segunda linha de sinal D é a média móvel de K. Geralmente K é desenhado como uma linha contínua, D - tracejada. De acordo com uma das variantes de explicação de indicador, devemos comprar se K for maior que D e vender se K for menor que D. O momento mais favorável para executar uma operação comercial é considerado o momento de concorrência de linhas. Símbolo de símbolo de um título, sobre os dados dos quais o indicador será calculado. NULL significa o símbolo atual. Período de tempo. Pode ser um dos períodos de gráfico. 0 significa o período do gráfico atual. Kperiod - período (número de barras) para o cálculo de K. Dperiod - período de média de D. desaceleração - desaceleração. Método - método de média. Pode ser um dos valores dos métodos MA. Pricefield - parâmetro de escolha de preços para cálculos. Pode ser um dos seguintes valores: 0 - LowHigh ou 1 - CloseClose. Modo - índice de linhas de indicadores. Pode ser um dos seguintes valores: MODEMAIN ou MODESIGNAL. Shift - índice do valor obtido a partir de um buffer indicador (shift back em relação a uma barra atual por um número especificado de barras). O uso do Oscilador Estocástico oferece a necessidade de analisar as posições das linhas relativas. Para calcular a decisão de comércio, deve-se ter em conta o valor de cada linha na barra actual e na barra anterior (ver Fig. 107). Quando as linhas cruzam no ponto A (a linha verde cruza a vermelha para cima), ordem de venda deve ser fechada e ordem de compra deve ser aberta. Durante a parte A - B (nenhuma linha cruzando, a linha verde é mais alta do que a linha vermelha) A ordem de compra deve ser mantida aberta. No ponto B (linha verde cruza o vermelho para baixo) A compra deve ser fechada ea venda deve ser aberta. Então Sell deve permanecer aberto até o próximo cruzamento (sem cruzamento, linha verde abaixo da linha vermelha). FIG. 107. Concorrência das linhas principal e de sinal do Oscilador Estocástico. O próximo exemplo contém a implementação de um algoritmo simples que demonstra como os valores necessários de cada linha podem ser obtidos e os critérios de negociação podem ser formados. Para isso, utilizam-se os valores das funções de indicadores técnicos iStochastic () no EA callstohastic. mq4: Para obter o valor da linha K (verde sólido) na barra zero, utiliza-se a seguinte linha de cálculo: Aqui o parâmetro MODEMAIN indica a linha, o valor Do qual é solicitado, o último parâmetro 0 é o índice de barras, para o qual o valor da linha deve ser calculado. Nas três seguintes linhas de programa, outras variáveis ​​são calculadas por analogia - para a linha D (linha tracejada vermelha, parâmetro MODESIGNAL) para o zero e a primeira barra. No próximo bloco é analisada a correlação dos valores obtidos ea EA relata o estado atual de cada marca. Por exemplo, em linhas: o fato de uma linha vermelha ser atravessada pelo verde para cima é detectada. Se na barra anterior a linha verde estava abaixo da vermelha (ou seja, a expressão M1 lt S1 é verdadeira), e na barra atual a linha verde sobe acima da vermelha ou seus valores são iguais (ou seja, a expressão M0 gt S0 é Verdadeiro), isso significa que a partir da formação barra anterior para o momento atual o verde solitário cruzou o vermelho para cima. Assim condição calculada em se operador é verdadeiro, é por isso que o controle é passado para se o corpo do operador, como resultado Alert () é executado para mostrar a mensagem correspondente. Em um Expert Advisor destinado a negociação em se operador corpo uma função de negociação para a abertura de uma compra ordem deve ser indicado. Nesse caso, a variante analisada de cruzamento de linhas indicadoras levará à formação de uma ordem comercial e, finalmente, à execução de uma operação comercial. Para a variante quando a linha verde cruza o vermelho para baixo, em se corpo uma função de comércio para abrir uma ordem de venda deve ser indicada. FIG. 108 mostra o resultado da operação callstohastic. mq4. Usando funções de indicadores técnicos para criar Trading Expert Advisors e scripts é muito conveniente. A quantidade de funções de indicadores técnicos utilizadas em um Consultor Especializado é ilimitada. Um desenvolvedor de estratégia de negociação pode decidir definir diferentes critérios de negociação com base na combinação de valores de indicadores técnicos. Exemplo de um consultor especialista de negociação simples, cujos critérios de negociação são baseados em indicadores técnicos, é analisado na seção Conselheiro Especialista Simples.

No comments:

Post a Comment