Saturday 23 September 2017

Mover Média Código Simples


MetaTrader 4 - Expert Muding Average - perito para MetaTrader 4 O especialista em média móvel para formar sinais comerciais usa uma média móvel. A abertura e o fechamento de posições são realizados quando a média móvel atende ao preço na barra recentemente formada (o índice da barra é igual a 1). O tamanho do lote será otimizado de acordo com um algoritmo especial. O consultor especialista analisa a concordância da média móvel e do gráfico de preços de mercado. A verificação é realizada pela função CheckForOpen (). Se a média móvel atende a barra de forma que o primeiro seja maior do que o preço aberto, mas inferior ao preço fechado, a posição BUY será aberta. Se a média móvel atende a barra de forma que o anterior seja inferior ao preço aberto, mas maior do que o preço Fechar, a posição VENDA será aberta. O gerenciamento de dinheiro usado no perito é muito simples, mas efetivo: o controle sobre cada volume de posição é realizado de acordo com os resultados das transações anteriores. Este algoritmo é implementado pela função LotsOptimized (). O tamanho básico do lote é calculado com base no risco máximo permitido: o parâmetro MaximumRisk exibe a porcentagem de risco básica para cada transação. Geralmente possui um valor entre 0,01 (1) e 1 (100). Por exemplo, se a margem livre (AccountFreeMargin) for igual a 20.500 e as regras de gerenciamento de capital prescrevem para usar o risco 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, são permitidos lotes fraccionados com passo de 0,1. Não será realizada uma transação com volume de 0,41. 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 nos volumes de operação, dependendo do sucesso da negociação, ou seja, negociar com o reinvestimento. Este é o mecanismo básico com a gestão obrigatória do capital para aumentar a eficiência da negociação. DecreaseFactor é a medida em que o tamanho do lote será reduzido após o comércio não lucrativo. Os valores normais são 2,3,4,5. Se as transações anteriores não fossem rentáveis, os volumes subsequentes diminuirão por um fator de Diminuição do Fator, a fim de aguardar o período não lucrativo. Este é o principal fator no algoritmo de gerenciamento de capital. A idéia é muito simples: se o comércio for aumentando com sucesso, o especialista trabalha com o lote básico ganhando o máximo lucro. Após a primeira transação não lucrativa, o especialista reduzirá a velocidade até que uma nova transação positiva seja feita. O algoritmo permite desativar a redução de velocidade, para fazê-lo, é preciso especificar Diminuir o código 0. O valor das últimas transações sucessivas não lucrativas é calculado no histórico comercial. O lote básico será recalculado nesta base: Assim, o algoritmo permite reduzir eficazmente o risco que ocorre como resultado de uma série de transações não lucrativas. O tamanho do lote é obrigatoriamente verificado pelo tamanho mínimo permitido do lote no final da função porque Os cálculos feitos anteriormente podem resultar em lote 0: o especialista é principalmente destinado a trabalhar com o período diário, e no modo de teste - por fazer a preços fechados. Ele só se trocará na abertura de uma nova barra, é por isso que os modos de modelagem de todos os tiques não são necessários. Os resultados dos testes estão representados no relatório. MetaTrader 4 - Indicadores Médias móveis, indicador MA para o MetaTrader 4 O Indicador Técnico da Média em Movimento mostra o valor médio do preço do instrumento por um determinado período de tempo. Quando se calcula a média móvel, uma média do preço do instrumento para este período de tempo. À medida que o preço muda, sua média móvel aumenta ou diminui. Existem quatro tipos diferentes de médias móveis: simples (também conhecido como aritmética), exponencial, suavizado e linear ponderado. As médias móveis podem ser calculadas para qualquer conjunto de dados seqüenciais, incluindo preços de abertura e fechamento, preços mais altos e mais baixos, volume de negócios ou outros indicadores. Muitas vezes, é o caso quando se usam médias móveis duplas. A única coisa em que as médias móveis de diferentes tipos divergem consideravelmente umas das outras, é quando os coeficientes de peso, que são atribuídos aos dados mais recentes, são diferentes. Caso falamos de uma média móvel simples, todos os preços do período de tempo em questão são de valor igual. As médias móveis ponderadas exponenciais e lineares atribuem mais valor aos preços mais recentes. A maneira mais comum de interpretar a média móvel do preço é comparar sua dinâmica com a ação do preço. Quando o preço do instrumento sobe acima de sua média móvel, aparece um sinal de compra, se o preço cai abaixo de sua média móvel, o que nós temos é um sinal de venda. Este sistema de negociação, baseado na média móvel, não foi projetado para fornecer entrada no mercado diretamente no seu ponto mais baixo, e sua saída diretamente no pico. Permite atuar de acordo com a seguinte tendência: comprar logo depois que os preços chegam ao fundo e vender logo depois que os preços atingiram seu pico. Média móvel simples (SMA) Simples, em outras palavras, a média móvel aritmetica é calculada resumindo os preços do encerramento do instrumento durante um certo número de períodos únicos (por exemplo, 12 horas). Esse valor é então dividido pelo número desses períodos. SMA SUM (CLOSE, N) N Onde: N é o número de períodos de cálculo. Média Mínima Exponencial (EMA) A média móvel suavizada exponencialmente é calculada adicionando a média móvel de uma determinada parcela do preço de fechamento atual ao valor anterior. Com médias movidas exponencialmente suavizadas, os preços mais recentes são de maior valor. A média móvel exponencial em percentagem de P será semelhante a: Onde: CLOSE (i) o preço do encerramento do período atual EMA (i-1) A média móvel do encerramento do período anterior P é a porcentagem de usar o valor do preço. Média Mínima Suavizada (SMMA) O primeiro valor dessa média móvel suavizada é calculado como a média móvel simples (SMA): SUM1 SUM (FECHAR, N) As médias móveis e as médias sucessivas são calculadas de acordo com esta fórmula: Onde: SUM1 é o Soma total de preços de fechamento para N períodos SMMA1 é a média móvel suavizada da primeira barra SMMA (i) é a média móvel suavizada da barra atual (exceto para o primeiro) FECHAR (i) é o preço de fechamento atual N é o Período de suavização. Média de Movimento Ponderada Linear (LWMA) No caso da média móvel ponderada, os dados mais recentes são de maior valor do que mais dados iniciais. A média móvel ponderada é calculada multiplicando cada um dos preços de fechamento dentro da série considerada, por um certo coeficiente de peso. LWMA SUM (Fechar (i) i, N) SUM (i, N) Onde: SUM (i, N) é a soma total dos coeficientes de peso. As médias móveis também podem ser aplicadas aos indicadores. É aí que a interpretação das médias móveis dos indicadores é semelhante à interpretação das médias móveis de preços: se o indicador sobe acima de sua média móvel, isso significa que o movimento do indicador ascendente provavelmente continuará: se o indicador cai abaixo da média móvel, isso Significa que é provável que continue indo para baixo. Aqui estão os tipos de médias móveis no gráfico: Média de Movimento Simples (SMA) Média de Movimento Exponencial (EMA) Média de Movimento Suavizada (SMMA) Média de Movimento Ponderada Linear (LWMA) Copie e cole o código acima em seu ambiente de desenvolvimento em Tradestation ou MultiCharts Como indicador. Em seguida, clique em compilar ou verifique. Este código detecta se o preço de fechamento hoje é maior ou menor que o preço de fechamento de ontem. (Isso pode ser colocado em gráficos diários ou gráficos de minutos e o close1 refere-se ao bar anterior ou no dia anterior) Se você digitar close2, ele se referiria ao fechamento de 2 dias ou barras atrás. Então temos o somatório das últimas barras (comprimento 20). Para ver como funciona, você pode alterar esta linha de código plot1 (summove, quotup-downcountquot) para este plot1 (move, quotup-downcountquot). Em seguida, clique em compilar. Você pode então ver seus gráficos de indicadores uma linha que é 1, -1 ou 0. As entradas escritas na parte superior representam valores que podem ser alterados pelo usuário ao traçar o indicador no gráfico. Uma vez que você traça o indicador na sua forma original, você pode alterar o comprimento para 50 ou 20 ou 100 para ver como ele afeta o enredo. As variáveis ​​são mostradas aqui como quotvarsquot e estes são os valores que criei para armazenar os valores emitidos pelas 3 linhas de código iniciando se fechado. E a variável summove. Summove summation (move, length) Isso significa que o summove da variável é criado a partir da somatória das últimas barras de 20 barras (ou período de tempo) com todos os valores de 1 e -1 e 0. Você pode experimentar jogando com valores diferentes. Exemplo de novato no2 (porcentagem de ponderação ajustável em média móvel) média lenta (fechar, comprimento1) média rápida (fechar, comprimento2) se valor1lt0 então valor10 se valor1gt1 então valor11 Você pode ler primeiro o código acima antes de criar este indicador e ver se você pode ver O que está fazendo. Existem duas médias móveis usadas com comprimento lento de 50 e um comprimento rápido de 20, a entrada chamada fator é ajustável para atribuir uma ponderação a cada uma. Se o fator for definido como 0,5, ele adicionará 50 da média lenta a 50 da média rápida e criará uma média combinada do período dois. Para ver valores máximos do fator de ajuste médio lento para 1, para ver o gráfico construído inteiramente da média mais rápida, você pode definir o fator em 0. Você pode experimentar valores como 0.1 e 0.9 para ver os efeitos de ajustes na ponderação. Se você usar o nome valor1 ou valor2 ou o valor 99 como variáveis, não será necessário declarar os nomes desses na parte superior. Value2 1-factor é uma maneira muito boa de obter 2 variáveis ​​para atribuir automaticamente 1 de uma parte e 99 da outra parte, então, quando adicionadas, sempre serão 100 Limite o erro do usuário, restringindo as entradas fazendo as variáveis ​​as lerem. (O código para value1 faz isso depois de ler a entrada do fator) Truques de código para tentar Se você olhar para as variáveis ​​lentas e rápidas, você verá que ambos usam médias (média é que este código significa média simples). Você pode tentar fazer o lento em uma média ponderada ou uma média exponencial e misturá-los para fazer sua própria combinação média combinada. Iniciantes exemplo no3 (Indicador de tendência binária simples) se média (fechar, tempo rápido) gt média (fechar, comprimento lento), em seguida, iniciar binarytrend1 terminar mais binarytrend -1 Esse indicador determina a tendência quotbinary, o que significa que converte-a em um número. Assim, a tendência de alta 1 tende de baixa -1 e o valor inicial é atribuído como 0. Se você traçar a média móvel de 80 períodos e a média móvel de 12 períodos no gráfico, você pode verificar se o indicador de tendência está funcionando. Usando outras instruções para reduzir o comprimento do código. EG acima supõe que, se a tendência não for 1, deve ser -1. Truques de código para tentar Se você tentar usar outro método para atribuir a tendência é para cima ou para baixo e substituir o código por sua idéia. POR EXEMPLO. Você usa o oscilador estocástico com 50 acima indicadas e tendência de queda abaixo de 50. O equivalente a 50 pode ser apanhado dizendo isso. Se o estocástico for gt50, então conte-se como tendência de alta (código psuedo) Exemplo de novidades no4 (algoritmo de ajuste de comprimento simples) se fechar mais alto (fechar, comprimento básico) ou fechar mais baixo (fechar, comprimento básico), então, iniciar o monitor monitor1-1 terminar mais monitormonitor10.5 se o monitor Lt minlength então monitorize minlength se monitor gt maxlength então monitor maxlength Este é o primeiro estágio de fazer um algoritmo para controlar o comprimento aplicado a um indicador. Você pode ver que, se você traçar esse indicador no subgrafo 2, ele varia entre 50 e 10, que são os comprimentos máximo e mínimo permitidos. (Mas estas são entradas ajustáveis) Se o preço estiver fazendo um novo alto ou baixo para o período de comprimento básico, ele diminuirá com 1 incremento de comprimento para cada barra que a condição é verdadeira. Se o preço não for um novo alto ou baixo para o mesmo período, reduzirá o comprimento por 0,5 incremento de comprimento para cada barra, a condição é verdadeira. Truques de código para tentar Se você tentar alterar os valores de -1 e 0,5 para quantidades maiores ou menores, você pode ajustá-lo de acordo com suas necessidades. Abaixo vou mostrar-lhe como construir este código em um indicador de mudança de comprimento. Iniciantes exemplo no5 (Comprimento simples ajustando a média móvel ponderada) se fechar mais alto (fechar, comprimento básico) ou fechar mais baixo (fechar, comprimento básico), então, iniciar o monitor monitor1-1 terminar outro monitormonitor10.5 se monitor lt minlength então monitorar minlength se monitor gt maxlength então Monitorar maxlength Você pode ver que outra variável foi adicionada, que é uma média móvel ponderada e o truque aqui é substituir o campo de comprimento usual pelo monitor de algoritmo que está ajustando o comprimento aplicado. Truques de código para tentar Se você traça uma média ponderada de 20 períodos ao lado dele no subgrafo. Você pode ver como o código acima da média de mudança de comprimento é mais lento em algum período e mais rápido em outros períodos. O indicador acima é colocado no subgrafo n. ° 1 sobreposto com o preço. O código de exemplo no4 é colocado no sub 2. Você pode observar o algoritmo de mudança de comprimento em ação e ver como ele afeta a velocidade da média ponderada. Iniciantes exemplo no6 (Como evitar divisão por zero de erros) Divisão por zero é um problema freqüente na programação. A resposta é sempre infinita, por isso temos que evitar que qualquer coisa seja dividida em zero, em primeiro lugar. Existem dois métodos para fazer isso. Se value1 0 então value1value10.0000000001 Então, simplesmente adicionamos um pequeno número, o que é tão pequeno que não vai fazer muita diferença nas saídas. Se value1 ltgt 0, então valor2 valor3 valor1 Isso força o computador a perguntar se o valor1 é 0 ou não antes de fazer seus cálculos. Se for 0, retornará o valor padrão que foi atribuído ao valor1 nas variáveis ​​quando você o criou. Exemplo de novatos no7 (Como usar Fisher Transform)

No comments:

Post a Comment