Tuesday 8 August 2017

Moving Average Dashboard Mq4


MetaTrader 4 - Exemplos MQL4 Linguagem para Iniciantes. Indicadores Personalizados (Parte 1) Introdução Este é o quarto artigo da série MQL4 Languages ​​for Newbies. Hoje vamos aprender a escrever indicadores personalizados. Vamos nos familiarizar com a classificação das características dos indicadores, veremos como essas características influenciam o indicador, aprenderemos sobre novas funções e otimização e, finalmente, escreveremos nossos próprios indicadores. Além disso, no final do artigo você encontrará conselhos sobre o estilo de programação. Se este é o primeiro artigo para novatos que você está lendo, talvez seria melhor para você ler os anteriores. Além disso, certifique-se de que você tenha entendido corretamente o material anterior, porque o artigo fornecido não explica o básico. Tipos de indicadores Agora vou mostrar-lhe, que tipos de indicadores existem. Claro, você já viu um monte deles, mas agora eu gostaria de chamar a sua atenção para características e parâmetros de indicadores, assim vamos fazer uma pequena classificação de características e parâmetros. Ele irá ajudá-lo a escrever indicadores personalizados. Assim, o primeiro indicador simples: Este é Moving Average, MA. Um indicador técnico amplamente utilizado. Preste atenção aos seguintes fatos importantes: o indicador é desenhado na janela do gráfico o indicador mostra apenas um valor o intervalo dos valores do indicador é ilimitado e depende dos preços atuais a linha é desenhada com uma determinada cor. Largura e estilo (linha contínua) Agora vamos ver outro indicador: É Williams Percent Range, R. Preste atenção aos seguintes fatos importantes: o indicador é desenhado em uma sub-janela separada como no caso anterior, o indicador mostra apenas um valor o intervalo dos valores do indicador é estritamente limitado a linha desenhada tem outro estilo. Cor e largura Assim, existem as seguintes propriedades de indicador: o indicador é desenhado: em uma janela de gráfico ou em uma subventana separada. Agora vamos tentar entender, por que a Média Móvel é desenhada no gráfico, e Williams Percent Range, R é desenhado em uma janela separada. A diferença está na faixa dos valores mostrados. Observe que o segundo indicador mostra valores na faixa de 0 a -100. Agora imagine que mostremos esses valores em uma janela de gráfico. E o que aconteceria. Você não veria esta linha, porque o preço tem uma escala muito mais estreita. No nosso caso é de 0,6805 a 0,7495. Mas não é tudo. Na verdade, os preços são números positivos, e nosso valor é negativo. Os indicadores são desenhados em uma subventana separada se seus valores estiverem fora da faixa de preço do gráfico ativo. E se o intervalo é quase o mesmo (por exemplo, diferentes tipos de médias móveis), um indicador é desenhado em uma janela de gráfico. No futuro definir este parâmetro indicador de acordo com esta lógica simples. Aqui está uma imagem: um indicador que é desenhado em uma sub-janela separada pode ser limitado a um intervalo estrito. Isso significa que o terminal define uma escala fixa para mostrar os valores dos indicadores e mesmo se os valores excederem o intervalo, você não os verá. Se você desativar este parâmetro, o terminal automaticamente mudará a escala para que contenha todos os valores de um indicador. Veja a imagem: um indicador pode mostrar seus valores usando cores diferentes. Estilos e largura. Você o viu com bastante frequência ao configurar o desenho de indicadores no terminal. Aqui está uma restrição: se você usar uma largura de linha de mais de 1, você pode usar apenas um estilo - linha sólida. Aqui está mais um indicador: Como você vê, o indicador Volumes é desenhado sob a forma de um histograma. Portanto, existem vários tipos de indicadores indicadores. Aqui está um exemplo de outro tipo: O indicador Fractals é desenhado sob a forma de símbolos especiais. Agora olhe para o seguinte indicador: Este é o Alligator. Note, o indicador simultaneamente desenha três valores (linhas de equilíbrio). Como funciona Na verdade, qualquer indicador (há algumas exceções, mas vamos falar sobre elas mais tarde) usa buffers de dados ao exibir valores. O buffer de dados é quase um array simples. Sua peculiaridade é o fato de que este array é parcialmente gerenciado pelo terminal. O terminal muda a matriz de modo que, na recepção de cada nova barra, ocorre uma mudança. É feito com a finalidade de que cada elemento de matriz corresponde a uma determinada barra. O número máximo de buffers de dados mostrados em um indicador é 8. Pode parecer estranho agora, mas logo você vai entender que não poderia ser de outra forma. Basta lembrar que há um buffer de dados separado para cada linha em Alligator. Cada buffer de dados tem seus próprios parâmetros, de acordo com os quais o terminal os atrai. No nosso caso há 3 buffers que podem ser descritos da seguinte maneira: O primeiro buffer é desenhado por uma linha verde sólida em uma largura 3. O segundo buffer é desenhado por uma linha tracejada de cor vermelha e largura 1. O terceiro buffer É desenhada por uma linha azul sólida com uma largura 2. Não é necessário que um indicador desenhe um tampão. Pode ser usado para cálculos intermediários. É por isso que o número de buffers pode ser maior do que você vê. Mas a propriedade mais importante do buffer de dados é que cada elemento de buffer deve corresponder a uma determinada barra em um gráfico. Lembre-se disso. Em breve você vai ver como isso funciona em um código. Agora vamos tirar uma conclusão de nossa pequena excursão. Qualquer indicador tem os seguintes parâmetros: um ou mais buffers de dados (embora não necessariamente) para mostrar seus valores ou para cálculos intermediários. Cada buffer, por sua vez, tem seus próprios parâmetros que definem como ele será desenhado e se será desenhado. Por exemplo: desenhe o valor sob a forma de um histograma, símbolo ou linha que cor e estilo onde o indicador deve ser desenhado (em uma janela de gráfico ou em uma sub-janela) se o indicador é desenhado em uma sub-janela, devemos limitar o intervalo Ou a escala deve ser automática. Certifique-se de que você entenda claramente todos esses parâmetros. Agora vamos usar um Assistente para criar um indicador personalizado. Criando um indicador personalizado Inicie o MetaEditor. Selecione File-gtNew: Então nós vemos uma janela Expert Advisor Wizard. Selecione Indicador personalizado. Clique em Avançar: preencha os campos Nome. Autor e Link. Tudo está como de costume aqui, mas agora você pode adicionar parâmetros. O que é isso Parâmetros são variáveis ​​comuns que podem ser definidas por um usuário. E o que é importante, essas variáveis ​​podem ser usadas em um código indicador. A aplicação de parâmetros é óbvia - você permite que os usuários configurem alguns aspectos da operação do indicador. Isso pode ser o que quiser. Por exemplo, cronograma de uso, modo de operação, número de barras para cálculo da média etc. Como exemplo, vamos tentar adicionar um parâmetro que mostre o número de barras processadas para o cálculo dos valores dos indicadores. Onde pode ser usado Imagine que o indicador carrega o processador com seriedade por causa de cálculos demais. E você muitas vezes alterar o período de tempo do gráfico e ver apenas os últimos 100-200 bares. Então você não precisa de outros cálculos que perdem tempo. Este parâmetro irá ajudá-lo em tal situação. Naturalmente, não haverá nada difícil em nosso indicador que pode desperdiçar os recursos de computador. Esta é apenas uma variante do uso de parâmetros indicadores. Portanto, para adicionar um parâmetro, clique em Adicionar (1). Depois disso, você pode alterar um nome de variável (2). Em nosso caso, substituí-lo por barsToProcess. Você também pode alterar o valor inicial (3), ou seja, o valor padrão. Alterá-lo em 100. Além disso, você pode alterar o tipo de variável. Mas no nosso caso não precisamos mudar nada, porque o tipo int se adapta perfeitamente aos nossos propósitos. Depois de todas as alterações necessárias são feitas, clique em Avançar: Está quase pronto. Agora indique como o indicador deve ser desenhado. Em uma janela separada ou em uma janela de gráfico. Você também pode limitar o intervalo. Verifique o indicador em uma janela separada. Abaixo está um campo vazio Índices (buffers de dados). Aqui você pode adicionar o número necessário de buffers de dados (máximo 8). Além disso, você sempre pode adicionar ou excluir um buffer mais tarde, alterando o código. Clique em Adicionar para adicionar um buffer. Agora você pode mudar a forma como o buffer será desenhado: linha. Histograma. seção . flecha . Não vamos mudar nada, então nosso tipo é Line. Configure a cor e clique em OK. Finalmente, seu primeiro indicador está pronto Bem, ele não desenha nada, mas é um código O arquivo com o código-fonte está na pasta com indicadores: MetaTrader4expertsindicators. Vamos analisar cada linha Agora vamos ver, o que o Meta Editor criou: Como de costume a cabeça que consiste em comentários de uma linha inclui as informações que você escreveu anteriormente. Próximo: Você ainda se lembra da diretiva preprocessor definir a partir do segundo artigo Nós usamos para declarar constantes. Então, aqui está mais uma diretiva usada para denotar propriedades específicas de um indicador. No nosso caso é utilizado para indicar a autoria. Por favor, note que é começa com o sinal especial. Então vai a propriedade de palavra-chave (sem um espaço). Em seguida, vem uma propriedade concreta que queremos definir, no nosso caso, é copyright. E então o valor desta propriedade. No nosso caso, é uma linha com o seu nome. Usando a propriedade diretiva você pode configurar muitos aspectos específicos do indicador. Você vai ver agora. Todas essas propriedades serão configuradas por padrão. Vamos mais longe: Esta diretriz mostra, como entrar em contato com o autor. Você pode perguntar onde esta informação (o nome do autor e informações de contato) é, porque não é mostrado em qualquer lugar. Mas ele está incluído no arquivo executável. E se você visualizar o arquivo executável como um texto comum, você verá estas informações: Esta diretiva mostra que o indicador deve ser desenhado em uma sub janela separada. Como você vê, não há parâmetros adicionais, como distinto da diretiva anterior. Esta diretiva indica, quantos buffers de dados serão usados ​​pelo indicador. Você pode ter notado que as diretrizes são de alguma forma semelhantes às funções comuns: eles também aceitam alguns parâmetros e fazem algo em resposta. Mas há uma diferença importante: eles são executados em primeira instância (antes da compilação). Indique a cor padrão para o primeiro buffer. Observe que a numeração de buffer começa de um. Não de zero. Tente lembrá-lo, para que você não tenha confusão no futuro. A cor é indicada usando um de muitos nomes predeterminados. Você pode ver palavras-chave para todas as cores disponíveis na ajuda: Referência MQL4 - gt Constantes Padrão - gt Web-Cores. Da mesma forma, você pode indicar a cor de outros buffers, basta alterar o número do buffer. Este é o nosso parâmetro do indicador. Definimos isso no Assistente. Observe que a única diferença de uma variável comum é a palavra-chave extern antes do tipo de variável. Este é o aspecto do parâmetro para um usuário no início do indicador: Este é um array usual. Mas a dimensionalidade não é indicada ea inicialização não é realizada. Essa matriz será configurada posteriormente como um buffer de dados. Então declaramos e descrevemos funções. Diferente de um script usual, cada indicador tem 3 funções, não 1: init () - esta função é chamada pelo terminal apenas uma vez, quando iniciamos o indicador. Seu objetivo é preparar o indicador de operação, configurar buffers de dados, verificar parâmetros (o que um usuário escreveu) e outras ações preparatórias. Esta função não é obrigatória. Se você não executar um código nele, você pode excluí-lo. Deinit () - esta função também é chamada apenas uma vez, quando você exclui um indicador de um gráfico. Você deve preparar o indicador para o término de sua operação. Por exemplo, fechar arquivos abertos, excluir objetos gráficos do arquivo (não se preocupe, você aprenderá como fazê-lo). Esta função também não é obrigatória. Start () - como distinto de scripts, em indicadores esta função é chamada em cada tick. I. e. Quando novas aspas aparecem do par de moedas, para o gráfico do qual você anexou o indicador, essa função é chamada. Além disso, esta função é chamada no início do indicador, isto é, após a função init (). Vamos ver o que acontece em cada função: Aqui vemos a chamada de duas funções importantes para definir um buffer de dados: Esta função define como desenhar o buffer de dados. O primeiro parâmetro indica, para qual buffer a alteração deve ser aplicada. Observe que, nesta função (e funções semelhantes) a numeração de buffer começa de zero, não de um como em diretivas. É um momento importante, então tenha cuidado. O segundo parâmetro indica, como desenhar o buffer escolhido. No nosso caso, usamos a constante DRAWLINE. Que mostra que o buffer será desenhado como uma linha. Claro, existem outras constantes, mas vamos falar sobre elas mais tarde. Esta função liga um array a um número de buffer. I. e. Ele mostra que o buffer com o número indicado usará a matriz indicada para armazenar dados. Então, mudando os elementos dessa matriz você vai mudar o valor do buffer. Na verdade, uma matriz é um buffer de dados. O primeiro argumento é o nome da matriz que deve ser vinculado. Fim da função, retornar zero - a inicialização foi bem-sucedida. A função de desinitialização está vazia por padrão. Agora vem a função mais importante - o código principal está localizado aqui. Preste atenção: a variável countedbars é declarada de antemão, é inicializada pela função IndicatorCount (). Esta variável é geralmente utilizada para a otimização e aceleração da operação do indicador, que será analisada posteriormente. E agora vamos desenhar algo na janela do indicador. Terminando o Indicador Vamos decidir o que deve ser exibido. O que o indicador nos mostrará Algo simples. Primeiro vamos desenhar números aleatórios. Por que não Isso garante 50 de sinais de lucro. Vamos escrever em nossa função init () um código para a inicialização do gerador de números aleatórios: A inicialização está pronta, agora vem a função start (): Compile - F7. Inicie o terminal, localize o painel Navegador. Selecione a seção Indicadores Personalizados e clique duas vezes no nome do nosso indicador: O indicador será anexado ao gráfico ativo: Você vê, tudo funciona. Agora vamos ver o que o código faz: Usamos o ciclo para passar por todos os elementos do buffer de dados. Uma certa barra corresponde a cada elemento do tampão. Nós usamos o ciclo, começando da barra zero (o último disponível) e terminamos com o primeiro disponível, que é em sucessão um menos que a variável Barras (porque contamos barras de zero). Em cada iteração um contador é aumentado em um, e passamos da última barra disponível para o primeiro ao mesmo tempo, atribuindo a cada elemento de buffer (o que corresponde a uma determinada barra) um número aleatório de 0 a 1000. Se for Difícil para você entender como um determinado elemento de buffer corresponde a uma determinada barra, tente mudar o ciclo da seguinte maneira e veja o resultado no terminal: Agora o indicador mostrará o número de cada barra. Olhar: Você vê, o número de barras aumenta da última barra para a primeira (de 0 a barras). Espero agora que você entenda a correspondência de elementos de buffer para barras no gráfico. Agora vamos voltar ao código do indicador aleatório. Se você usou pelo menos alguns minutos, você veria que cada indicador assinala gráfico absolutamente diferente. I. e. Cada marca faz recálculos do que foi calculado na hora anterior. Isso é inconveniente para nós, porque não podemos ver mesmo o que aconteceu um tique-taque atrás. Mas isso não importa, porque ninguém vai usar esse indicador - estamos simplesmente aprendendo a escrevê-lo. Há mais uma coisa. Imagine, você indicador faz um monte de cálculos complexos e cálculo de uma barra requer recursos de processador grande. Nesse caso, se aparecer um novo preço, o indicador calculará o valor para cada barra disponível, mesmo que tenha sido feito anteriormente. É claro Em vez de calcular apenas uma vez, ele irá calcular uma e outra vez. Eliminar esses problemas relacionados com o desperdício de recursos não razoável é chamado de otimização. Como podemos resolver este problema Normalmente é feito da seguinte maneira. Primeiro um indicador é calculado em todos os castiçais disponíveis, e somente então quando as citações são recebidas, recalculará o valor somente para o último castiçal. Isso é razoável - não há ações desnecessárias. Agora vamos otimizar a função start (). Para que ele funcione da seguinte maneira: Vamos analisar cada linha: Nós declaramos a variável countedbars que irá armazenar o número de barras calculadas pelo indicador. Na verdade, a função IndicatorCount () retorna o número de barras inalteradas após a chamada anterior da função start (). Portanto, se for a primeira chamada start (), IndicatorBars () retornará 0. Porque todos os bares são novos para nós. Se não for a primeira chamada, a alteração é apenas a última barra, então IndicatorBars () retornará um número igual a Bars-1. Aqui está mais uma variável que será usada como um limitador. I. e. vai ajudar o ciclo a ser concluído mais cedo, omitido já calculado castiçais. Como já foi dito, se IndicatorCount () retorna 0, a função start () é chamada pela primeira vez e todas as barras são novas para nós (o indicador não foi calculado para eles). Mas se não for a primeira chamada de start (), o valor igual a Bars-1 será retornado. Então, essa condição acompanha tal situação. Depois disso, diminuímos a variável countedbars por 1. Apenas a última barra pode ser alterada, então por que fazemos isso? O fato é que existem algumas situações, quando o último sinal da barra anterior permanece sem processamento, porque quando o último sinal veio, o último, mas um, foi processado. E o indicador personalizado não foi chamado e não foi calculado. É por isso que diminuir a variável countedbars por 1, a fim de eliminar esta situação. Aqui nós atribuímos ao limite variável (o limitador) o número de últimas barras que precisam ser recalculadas. Enquanto a variável countedbars armazena o número de castiçais já calculados, simplesmente encontramos a diferença entre barras (o número total de barras disponíveis) e as barras contadas para definir, quantos castiçais devem ser calculados. O próprio ciclo quase não mudou. Mudamos apenas a condição de implementação. Agora o ciclo será executado enquanto o contador i é menor que o limite. Agora a otimização acabou. Se você observar a versão atualizada do indicador, verá que quando um novo tick é recebido, o valor apenas da última barra muda. Tente usar essa otimização constantemente, mesmo se o indicador não calcular nada difícil. Isso é alto. Você se lembra de um parâmetro indicador barsToProcess que adicionamos no Assistente. Agora é tempo de usá-lo. Nós simplesmente precisamos adicionar um par de linhas antes do ciclo: Você vê, tudo é bastante simples. Nós verificamos se o limite é mais do que barsToProcess. Se sim, diminuir o limitador através da atribuição. Como resultado, se definimos barsToProcess100, você verá uma imagem como: Como você vê, apenas o número de barras definidas por nós é calculado. Nosso indicador está quase pronto. Mas não temos sinais claros para entrar no mercado. Portanto, precisamos acrescentar mais certeza. Para isso usaremos níveis. Os níveis são linhas horizontais desenhadas pelo indicador usando um determinado estilo, cor e largura. Deve-se notar aqui que o número máximo de níveis em uma barra é 8. Além disso, você pode definir níveis usando diretivas ou funções. É preferível usar a primeira variante, se você deseja definir níveis por padrão. Para a mudança dinâmica de níveis durante a operação de indicadores use funções. Assim, vamos definir dois níveis: o primeiro sobre o ponto 800, o segundo - 200. Para este propósito vamos adicionar várias diretivas no início do código indicador: Vamos analisar novas diretrizes: Esta diretiva mostra, que o nível 1 Deve ser lugares no ponto 800.0. Preste atenção que a numeração do buffer começa com 1. Como nas diretivas para configuração de buffer. Para configurar outro nível, basta alterar o número de nível no final de uma diretiva: Há uma limitação importante na definição da forma externa de níveis. Você não pode configurar cada nível individualmente. Todas as configurações são aplicadas absolutamente a todos os níveis. Se você precisa configurar cada nível individualmente, você deve usar objetos (e não usar níveis em tudo), que será descrito no próximo artigo. Esta diretiva define a cor. Que será usado para desenhar todos os níveis. Esta diretiva define a largura para desenhar linhas de todos os níveis. Você pode definir a largura de 1 a 5. Não se esqueça que, se uma largura for superior a 1, os níveis serão desenhados numa linha contínua. Se você precisar de outro estilo de níveis de desenho, use somente a largura 1. Esta diretiva define o estilo para linhas de desenho. Existem as seguintes constantes predefinidas: STYLESOLID - linha contínua STYLEDASH - linha tracejada STYLEDOT - linha pontilhada STYLEDASHDOT - linha tracejada pontilhada STYLEDASHDOTDOT - linha pontilhada com pontos duplos Acabamos de desenvolver nosso indicador aleatório. Agora vamos salvar o arquivo de origem com um nome mais apropriado - randomIndicator. mq4. Recompile o arquivo de origem novamente. Este indicador também será usado na seguinte parte. A versão final deve ser semelhante a esta: Função iCustom Agora vamos falar sobre uma função muito útil - iCustom. Ele é usado para obter valores de qualquer indicador personalizado. Lembre-se de que para os indicadores incorporados utilizamos funções para trabalhar com indicadores técnicos descritos no artigo anterior (por exemplo: iADX (), iMACD, etc.). Para todos os outros indicadores (indicadores personalizados) use a função iCustom. Esta função é universal e pode ser aplicada a qualquer indicador personalizado que atenda aos seguintes requisitos: o indicador é compilado e está na forma de um arquivo executável (.ex4) o indicador está na pasta MetaTrader 4expertsindicators O protótipo da função tem a Seguinte forma: símbolo define, que segurança financeira (par de moedas) deve ser usado para o cálculo de um personalizado indicador valores. Use NULL (ou 0), se você precisar da segurança atual (ativa) (gráfico). Define, em que período (período) o indicador deve ser usado. Use 0 para o período atual ou uma das constantes (PERIODM1, PERIODM5, PERIODM15, PERIODM30, PERIODH1, PERIODH4, PERIODD1, PERIODW1, PERIODMN1). Nome o nome do arquivo executável do indicador personalizado. Somente o nome deve ser indicado: não escreva a extensão (.ex4) ou o caminho para o arquivo (experts / indicators /). Por exemplo, se o nome do arquivo executável do indicador personalizado é RandomIndicator. ex4, você deve escrever RandomIndicator. O registro aqui não é relevante. Isso significa que você pode escrever RANDOMindicator e ele vai funcionar. . Aqui você deve indicar todos os valores dos parâmetros do indicador personalizado. Por exemplo, no nosso indicador RandomIndicator existe apenas um parâmetro - barsToProcess. I. e. No nosso caso, escrevemos aqui 100 (ou qualquer outro adequado para você valor). Se o número de parâmetros for mais do que um, são indicados na mesma sucessão que são declarados no indicador personalizado, separados por vírgulas. Agora vamos tentar escrever um indicador baseado nesta função e você vai entender melhor. Mode o modo de operação do indicador personalizado. Na verdade, é o número do buffer de dados, o valor do qual você deseja obter. A numeração começa a partir de zero (não como nas diretrizes). Se o indicador personalizado tiver apenas um buffer de dados, esse parâmetro deve ser igual a 0. shift define, para qual barra o indicador personalizado deve ser usado. Exemplos de Uso: Indicador de Sinal Agora vamos escrever um indicador mais simples. Então, imagine a seguinte situação. Você escreveu um indicador bastante complexo com muitos buffers de dados. Muitos deles são exibidos em uma janela separada, outros são usados ​​para cálculos intermediários. Você sabe exatamente sinais para comprar e vender. Mas a dificuldade é, é muito difícil rastrear os sinais. Você precisa constantemente olhar para o seu monitor, tentando encontrar linhas de cruzamento, que estão acima dos níveis ou abaixo deles. É por isso que você decide escrever mais um indicador que poderia fazê-lo para você e só mostrar-lhe os sinais de entrada. Por exemplo, estas podem ser setas mostrando em que direção você deve abrir posições. Esta é apenas uma fantasia mostrando onde um indicador de sinal poderia ser apropriado. Nossa situação é muito mais fácil, mas ainda é semelhante ao primeiro. Vamos escrever um indicador de sinal com base no indicador anterior RandomIndicator. Primeiro precisamos definir as condições de entrada - aqui precisamos dos nossos níveis. Assim, as condições serão as seguintes: se uma linha se move acima do nível superior (800.0), comprar se uma linha se move abaixo do nível inferior (200.0), vender Agora é tempo de escrever um novo indicador. Use Expert Advisor Wizard para criar um novo personalizado indicador. Adicione um parâmetro adicional como no caso anterior: E a última etapa (Propriedades de desenho do programa Indicador personalizado) deve ser a seguinte: Primeiro adicione dois buffers de dados que serão usados ​​para desenhar sinais para comprar e vender sob a forma de setas . Altere o tipo de buffers de dados em Seta. Alterar cores e códigos de símbolo. Abaixo estão todos os códigos de símbolos disponíveis: Não precisamos desenhar o indicador em uma janela separada, porque vamos desenhar sinais na janela do gráfico. Usamos dois buffers de dados, porque não podemos desenhar diferentes setas (símbolos) usando apenas um buffer. Cada buffer de dados que é exibido na forma de símbolos pode ser desenhado apenas por um símbolo. Agora vamos analisar muito atentamente o código de inicialização do indicador: Preste atenção que agora é usada outra constante para o tipo de desenho de buffer de dados - DRAWARROW: Também vemos duas novas funções que são usadas para definir o desenho do símbolo. SetIndexArrow é usado para definir qual símbolo representará um buffer. O primeiro argumento é o número do buffer. O segundo é o código de símbolo que irá representar o indicador: SetIndexEmptyValue é usado para indicar um valor vazio. Significa que indicamos o valor, no qual não precisamos desenhar nada. É muito conveniente no nosso caso, porque os sinais são gerados não em cada barra. Ele funciona da seguinte maneira: quando não precisamos desenhar uma matriz na barra atual, você atribui ao elemento de buffer de dados correspondente um valor vazio, no nosso caso é 0. O primeiro argumento da função é o número do Buffer de dados. O segundo é o valor vazio: O código de inicialização restante define buffers análogos ao indicador aleatório, que analisamos anteriormente. Agora vamos terminar o código na função start (): Todo o código até que o ciclo seja repetido a partir do indicador aleatório. Na verdade, este código é padrão em qualquer indicador e é repetido com pequenas alterações. Agora vamos analisar o ciclo em detalhes: Primeiro declaramos a variável randomValue (valor aleatório) e atribuímos-lhe o valor de nosso indicador aleatório na barra atual. Para isso utilizamos a função iCustom: Se o valor do indicador aleatório for superior ao nível superior (800), este é um sinal a comprar: Caso contrário, se não houver nenhum sinal Buy: Se o valor do indicador aleatório for Abaixo do nível inferior (200), este é um sinal Sell: Caso contrário, se não houver nenhum sinal Sell: Este foi o ciclo. Compile o indicador e comece-o no terminal: Sobre o estilo Não, este não é as regras de escolher um laço para combinar um revestimento e uma camisa, embora seja sempre oportuna. O estilo de programação é muito importante, se você não escrever seu código apenas para si. Na verdade, cada desenvolvedor tem seu próprio estilo de programação. Cada um projeta ciclos em sua própria maneira, faz indentations diferentes (ou nenhum indents em tudo), declara variáveis ​​etc. Você deve encontrar seu próprio estilo de programação, que você usará sempre mais tarde. Gostaria de lhe dar várias recomendações que ajudarão você a fazer o seu código fácil de ler e entender: não escreva muitas operações em uma linha de ponto-e-vírgula separados () escrever nomes de variáveis ​​e funções em inglês em nomes de variáveis ​​usar maiúsculas Como delimitadores evitar o uso excessivo de abreviaturas e reduções nos nomes de variáveis ​​e funções fazer travessões de um certo comprimento para ter mesmo blocos de código em cada novo corpo (de um ciclo ou uma condição) fazer indentações adicionais fazer o agrupamento de um tipo Variáveis ​​fazem comentários adequados para blocos de código grandes e difíceis fazer comentários adequados para as funções escritas por você (sua atribuição, parâmetros) Conclusão Você aprendeu algo novo hoje. Você escreveu dois indicadores simples. Bem, eles são inúteis, mas eu não estou ensinando-lhe o comércio com sucesso Você viu, como os indicadores operam, quais parâmetros e propriedades que eles têm. Você aprendeu a definir buffers e trabalhar com eles. Você conheceu várias funções novas. A função iCustom é muito importante e será usada até mesmo em Expert Advisors. Se você encontrar quaisquer dificuldades, releia o artigo mais uma vez, tentando entender. Se você ainda tem algumas perguntas, por favor, não hesite em usar fóruns ou escrever comentários para o artigo.1000pips Dashboard Indicator Download para MetaTrader Você está atualmente à procura de um respeitável 1000pips Dashboard Metatrader Indicador você pode usar Você está no caminho certo. Isto é provavelmente simplesmente porque o 1000pips Dashboard indicador mq4 é livre assim you8217re capaz de baixá-lo sem ter que gastar um centavo. Além disso, o indicador está funcionando. Leia Mais Tagas Dashboard Publicado: 7 de julho de 2014 Atualizado: 21 de setembro de 2016 Autor: Últimas Forex PipNailer DashBoard V1 5 Indicador Download para MetaTrader Procurando um bom PipNailer DashBoard v1 5 Indicador You8217re no caminho certo. Isso ocorre porque o código do PipNailer DashBoard v1 5 mq4 pode ser baixado gratuitamente. Este indicador também é provado ser apropriado para praticamente todas as edições do Metatrader. Para lhe dar uma olhada. Leia mais Painel de Tagas Publicado: 2 de julho de 2014 Atualizado: 21 de setembro de 2016 Autor: Últimas Forex 1000pips Dashboard Indicator Download para MetaTrader Procurando um método exatamente onde você possivelmente pode baixar 1000pips Dashboard Metatrader Indicator, bem, você pode ter chegado ao Site certo. Agora, você pode obter 1000pips Dashboard indicador mq4 para Metatrader 4 ou Metatrader 5 gratuitamente. Como foi mostrado, bem como. Leia Mais Tagas Dashboard Publicado: 8 de junho de 2014 Atualizado: 21 de setembro de 2016 Author: Últimas ForexMoving Averages (MAs) estão entre os mais utilizados indicadores em Forex. Eles são fáceis de definir e fácil de interpretar. Falando simples, as médias móveis medem simplesmente o movimento médio do preço durante um determinado período de tempo. Ele suaviza os dados de preços, permitindo ver as tendências e tendências do mercado. Como usar as médias móveis A média móvel é um indicador de tendência. Além de sua função simples óbvia um Moving Average tem muito mais para dizer: Na média móvel Forex é usado para determinar: 1. Direção de preço - para cima, para baixo ou para os lados. 2. Preço localização - viés de negociação: acima Movendo média - comprar, abaixo Movendo média - venda. 3. Momento do preço - o ângulo da média móvel: ângulo ascendente - momento de retenção, ângulo de queda - momentum pausas ou paradas. 4. Apoio de preços / níveis de resistência. Tipos de médias móveis SMA - média móvel simples - mostra o preço médio para um determinado período de tempo. EMA - média móvel exponencial - dá prioridade aos dados mais recentes, portanto, reage às mudanças de preços mais rápido do que a média móvel simples. WMA - Média Móvel Ponderada - coloca ênfase nos dados mais recentes e menos - nos dados mais antigos. Configurações mais comuns para Médias Móveis em Forex 200 EMA e 200 SMA 100 SMA 50 SMA 34 SMA 20 EMA e 20 SMA 10 EMA e 10 SMA Tente e teste e, em seguida, escolha o seu conjunto favorito de Médias Móveis. Moving Average Video Presentation Outras versões de Moving Averages Além dos tradicionais indicadores EMA, SMA e WMA, existem vários outros tipos de MAs disponíveis para os comerciantes de Forex: Copyright copy Indicadores de Forex Moved Average (DMA) é a sua média regular Moving com única diferença que Seu deslocado no tempo (quer para trás ou para a frente). Para fazer DMA nós adicionamos o valor Shift: Um valor negativo significaria um deslocamento para trás - para que a sua média móvel vai ficar para trás o preço N número de intervalos. Tal deslocamento média móvel é capaz de conter o preço em uma tendência melhor. Um valor positivo causaria um deslocamento para a frente - essa média deslocada móvel se torna um indicador principal, o que, em certa medida, ajuda a antecipar os próximos movimentos. Eu usei 5ema, 10ema e 20ema. E quando o 5ema cruzar acima ambos 10and20ema. Eu entro Long e vice-versa. Por favor me diga que é ok. Cos am novo para forex trading. Awoooooooooooo É certamente Ok. É uma técnica bem conhecida na negociação. Alguém pode me dizer quais são a melhor média móvel comprovada com base em sua experiência Depende do que você quer dele. Tendências mais rápidas - 20 SMA, tendências médias - 50 SMA, tendências mais longas - 100 ou 200 SMA. Se você quiser usar a média móvel não apenas para encontrar tendências, mas para realmente dar-lhe comprar / vender sinais rápidos, então você precisará de um menor MA-10 EMA é aquele que é usado mais. Oi, im jeffryloo sua explicação é muito fácil de understand. I dar-lhe 5 começar. Como você eu uso o 50,100, amp 200 MAs, mas, fazer o exponencial 100. Os 50 fornecem a informação grande da tendência e todos os três fornecem o dinâmico excelente sustentação / resistência. Eu sei que isso pode parecer loucura, mas, para mim, a melhor média de curto prazo é um canal feito do 8 Smoothed MA high e do 8 Smoothed MA low. Isso fornece excelente direção de tendência e ajuda a alertá-lo para movimentos laterais e auxiliar na determinação breakout. Isso também fornece suporte / resistência dinâmica superior. Obviamente, isso não depende de uma cruz, mas, mais sobre a ação de preço em relação ao canal que é muito poderoso quando combinado com um par de indicadores como RSI amp ATR. Eu faço-lhes cada uma cor diferente apenas para torná-lo fácil de detectar o alto e baixo do canal. Obrigado por fornecer indicadores e explicações difíceis de encontrar em qualquer outro lugar. Você me ajudou mais do que você pode imaginar. Pode a gerência dizer m ou alguém com experiência de negociação de forex proficiente. Quais são os melhores EMA ou SMA e números para negociar os gráficos de 15 minutos com um prazo de 6/8 horas até 12 horas outlook direção do mercado. Além disso, se você pudesse também explicar melhor, por favor, exatamente o que se entende por acima no post do blog sobre a captura de tela do meio de deslocamento média móvel (DMS) significa. Isto é: É o número relevante ao frame de tempo um negociam sobre e aqueles número respectivo de varas de vela 3 para diante no mercado (antes do preço de mercado atual) e ou o número negativo respectivo -3 de velas atrás do preço de mercado atual. Muito obrigado, John, se você quiser um MA - SMA mais suave seria melhor. Se você precisa s MA mais rápido - tomar EMA. Suavizar ajuda a evitar alguns picos falsos, mas também atrasa os sinais de entrada e saída. Enquanto com EMA você terá uma resposta muito mais rápida às mudanças de preço, mas ele virá em um aumento da taxa de sinais falsos. Essa é a diferença. Tudo depende do sistema de negociação, onde EMA e SMA podem ser usados ​​efetivamente para negociação em 15 min TF. -10 Shift para a média móvel simplesmente desloca o indicador X número de barras no gráfico para o período de tempo atual: menos dez significaria que o deslocamento é 10 barras atrás, mais 10 iria deslocá-lo 10 barras para a frente. Obrigado pelo seu excelente trabalho. Tenho apenas uma pergunta rápida. É possível deslocar negativamente uma determinada Média Móvel e ainda mostrar a linha (MA) na vela atual em vez de ficar para trás do número de velas deslocadas / valor. Eu não acho que isso é possível no MT4, se assim é há um indicador separado que pode fazer apenas isso Obrigado e espero que a minha pergunta é bastante claraForex Dashboard Trading System Download Este pode ser um excelente painel. A perception to provide may be to frustrated correlate sets, for instance GU is usually in place, do you find it since Grams is usually in place and UNITED STATES DOLLAR is usually off, to ascertain the following, test EURUSD for instance, should it be additionally in place in that case Oughout is usually off contains a better body fat, in that case test USDCHF for a minute gate should it be off in that case that will realises that will UNITED STATES DOLLAR is usually in place (more confirmations may be added) Rather then applying that sets inside control keys, why don8217t you get an additional line such as the primary before that control keys Click Here to Download A NEW Trading Tool and Strategy For FREE That dashboard has breathing space with regard to an additional line along with the SHOP FOR and DISTRIBUTE feels better relating to the control keys. Say that Tight Just about all, closed down all of your current started out sets with MT4 stage you8217ve got that DB with In that case in that case not necessarily some sort of disturb, Tight Just about all might tight just about all postures without the need of cya to help Miraculous Results. Nevertheless should it be shutting down postures with many other MT4 Podiums functioning on the VPS, in that case you will find there8217s substantial issue And not along with the DB with all your MT4 Podiums. Tight just about all ought to cover linked miraculous results as soon as a few dashboard available with exact same mt4. Not surprisingly yao has been mentioning that will tight just about all purpose shutting down just about all dealing although miraculous phone number possessed arranged individually. Others Looked For dashboard forex ea cci dashboard pz harmonic mtf dashboard PZ GRID TRADING EA FREE DOWNLOAD mtf harmonic dashboard MT4 Indicators 2015 indikator sell buy meter forex IA dashboard forex harmonic dashboard 2 0 indicator/ forex support risistance dashboard forex dashbord ea dashboard ea dashboard mq4 download stochastics Mt4 dashboard Post navigationMoving Average mladen: This is a variation of McGinley dynamic moving average that is not using the original formula but metastock formula. mcginleydynamic2.mq4 As an addition, since the original formula uses ema for calculation of dynamic values, this version allows you to use the 4 built in averages as method instead of being able to use only ema. The fastest is when it uses LWMA (which is natural) but the others have their good points too. Here are all 4 types (as you can see difference can be significant( AllAverages 2.5 with Statistics AllAverages 2.5 modified to show some statistical data - average distance of AllAveragePeriods between AllAverage line and price, maximum distance and current. It alerts when current gt average or max. It should have unique Magic number for every chart. Possible uses It can show strong moves, trend exhaustion, entries in counter-trend strategies. It is an excellent indicator that can not only be used to show strong moves, trend exhaustion, and plan counter-trend strategies but also averaging down or pyramiding positions. Is there any mtf multi-currency dashboard with same logic Appreciate if anyone can provide link. Join us download MetaTrader 5 Copyright 2000-2016, MQL5 Ltd.

No comments:

Post a Comment