Tuesday 11 July 2017

Mudança Média Amostra Código


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 são representados no relatório. Sei que isso é viável com o aumento de acordo com: Mas eu realmente gostaria de evitar o uso de impulso. Eu mencionei e não encontrei nenhum exemplo adequado ou legível. Basicamente eu quero acompanhar a média móvel de um fluxo contínuo de um fluxo de números de ponto flutuante usando os 1000 números mais recentes como amostra de dados. Qual é a maneira mais fácil de alcançar isso, experimentei usar uma matriz circular, uma média móvel exponencial e uma média móvel mais simples e descobriu que os resultados da matriz circular adequavam minhas necessidades. 12 de junho 12 às 4:38 Se suas necessidades são simples, você pode tentar usar uma média móvel exponencial. Simplificando, você faz uma variável de acumulador e, à medida que seu código examina cada amostra, o código atualiza o acumulador com o novo valor. Você escolhe um alfa constante que está entre 0 e 1 e calcula isso: você precisa apenas encontrar um valor de alfa onde o efeito de uma determinada amostra dura apenas cerca de 1000 amostras. Hmm, na verdade, não tenho certeza de que isso é adequado para você, agora que eu já coloquei aqui. O problema é que 1000 é uma janela bastante longa para uma média móvel exponencial. Não tenho certeza se houver um alfa que espalhe a média nos últimos 1000 números, sem fluxo inferior no cálculo do ponto flutuante. Mas se você quisesse uma média menor, como 30 números ou mais, esta é uma maneira muito fácil e rápida de fazê-lo. Respondeu 12 de junho 12 às 4:44 1 na sua postagem. A média móvel exponencial pode permitir que o alfa seja variável. Assim, isso permite que ele seja usado para calcular médias base de tempo (por exemplo, bytes por segundo). Se o tempo desde a última atualização do acumulador for superior a 1 segundo, você deixa alfa ser 1.0. Caso contrário, você pode deixar alpha be (usecs desde a última atualização1000000). Ndash jxh 12 de junho 12 às 6:21 Basicamente eu quero acompanhar a média móvel de um fluxo contínuo de um fluxo de números de ponto flutuante usando os 1000 números mais recentes como uma amostra de dados. Observe que as atualizações abaixo atualizam o total como elementos como adicionados, evitando a trajetória O (N) cara para calcular a soma - necessária para a média - na demanda. Total é feito um parâmetro diferente de T para suportar, e. Usando um longo tempo quando totalizando 1000 long s, um int para char s, ou um duplo para float total s. Isso é um pouco falho em que numsamples poderia ultrapassar o INTMAX - se você se importar, você poderia usar um sinal não assinado por muito tempo. Ou use um membro extra de dados do bool para gravar quando o recipiente é preenchido pela primeira vez ao andar de bicicleta numsamples em torno da matriz (melhor então renomeado algo inócuo como pos). Respondeu 12 de junho 12 às 5:19 um assume que quotvoid operator (T sample) quot é realmente quotvoid operatorltlt (T sample) quot. Ndash oPless Jun 8 14 às 11:52 oPless ahhh. Bem manchado. Na verdade, eu quis dizer que ele seria um operador vazio () (amostra T), mas é claro que você poderia usar qualquer notação que você gostasse. Vou consertar, obrigado. Ndash Tony D Jun 8 14 às 14: 27Típicamente, duas médias móveis podem ser usadas para criar uma estratégia forex (EA para MT4) com estas regras: Comprar quando a média móvel do período curto está acima da média móvel do período longo Venda quando o período longo A média móvel está acima da média móvel do período curto No gráfico a seguir do Terminal do MetaTrader, a linha amarela é a média móvel do período curto (Período9) ea linha vermelha é a média móvel do período longo (Período 18). Analizando o gráfico, podemos reescrever as regras de negociação ou os sinais forex como: Compre quando a linha amarela estiver acima da linha vermelha Vender quando a linha amarela estiver abaixo da linha vermelha Em vez de passar muito tempo codificando essa estratégia forex, com Molanis Strategy Builder Você pode criar um diagrama de negociação que represente a estratégia da média móvel em minutos. Basta arrastar e soltar dois blocos de análise técnica, um bloco de compra e um bloco de venda. Conecte-os e defina os parâmetros do bloco para obter um diagrama como o seguinte: Este diagrama de negociação tem dois caminhos comerciais. A esquerda é destacada. Ele vai do bloco START para o bloco END. Pode-se lê-lo como: Compre 1 lote de EURCAD (com 100 p. Ex. Take Profit e 50 Stop Stop Stop) quando a média móvel do período curto (9) estiver acima da média móvel do período longo (18). Lembre-se de ler o diagrama de negociação em direção oposta ao fluxo de negociação. O caminho de negociação correto pode ser lido como: Vender 1 parcela de EURCAD (com 100 p. Ex. Take Profit e 50 Stop Stop) quando a média móvel do período longo (18) estiver acima da média móvel do período curto (9). Gerando o código MQL para o MetaTrader com apenas um clique no menu Diagrama de Negociação, clique em Gerar Código MQL4 para obter a janela do Código MQL4. O Molanis Strategy Builder permite que você abra seu consultor especialista diretamente com o MetaTrader ou para salvá-lo como um arquivo MQ4. Não perca nosso tutorial de vídeo em

No comments:

Post a Comment