Friday, 8 December 2017

Truncamento de valor constante mt4 forex


Metatrader 4: Colocar uma ordem Para colocar uma ordem (Sell ou Buy), você tem que abrir a janela Order (Fig. 22). Pic.22 - Janela da ordem Existem várias maneiras de abrir a janela Ordem: Você pode pressionar a tecla rápida F9. Você pode clicar com o botão direito do mouse no gráfico da moeda que deseja comprar / vender e, em seguida, escolher Nova ordem no menu contextual. Você pode clicar com o botão direito na janela Market Watch na moeda que deseja comprar / vender e, em seguida, escolher New Order no menu de contexto (Imagem 23). Você pode clicar duas vezes na moeda. Foto. 23 Ordem Depois de pressionar Nova Ordem, você verá a Janela Ordem (Imagem 24): Pic.24 Janela Ordem Há algumas opções que a janela Nova Ordem permite que você configure: Símbolo. Isso fornece uma lista suspensa de todos os pares de moedas que você pode usar para abrir a Nova Ordem. Volume. Isso fornece uma lista suspensa de tamanhos de lote predefinidos que você pode escolher para a Nova Ordem. Nota. Volume refere-se ao valor Lots. Parar a perda de . Esta é uma caixa com setas para cima e para baixo que permite definir o nível de Stop Loss para a Nova Ordem. Utilize as setas para cima e para baixo ou escreva o valor do Stop Loss na caixa de texto. A definição do nível de Stop Loss é opcional. Obter lucros . Esta é uma caixa com setas para cima e para baixo que permite definir o nível Take Profit para a Nova Ordem. Use as setas para cima e para baixo ou escreva o valor do Take Profit na caixa de texto. Definir o nível Take Profit é opcional. Comentário. Digite o texto de comentário que deseja atribuir à Nova Ordem. Inserir texto no campo Comentário é opcional para a Nova Ordem. Escreva a lista. Você pode escolher entre uma destas duas opções: Execução Instantânea Ordem Pendente Você tem que escolher Execução Instantânea porque deseja fazer uma Compra / Venda instantaneamente. Botão de venda. Clique neste botão se desejar abrir uma Ordem de Venda. Ao clicar no botão "Vender", a janela Nova Ordem será fechada e as instruções serão enviadas ao corretor. Botão Comprar. Clique neste botão se desejar abrir uma ordem de compra. Clicar no botão Comprar fechará a janela Nova Ordem e enviará as instruções ao corretor. Ativar o desvio máximo da opção de preço cotada. Ativar esta opção ativará a lista de Pips onde você pode selecionar um valor para o desvio máximo. Esta opção irá ajudá-lo a evitar requotes em um mercado em movimento rápido. Se o desvio entre um preço requoted e um preço solicitado for igual ou inferior ao parâmetro especificado, a ordem é executada automaticamente com o preço requoted. Se o desvio entre um preço requoted eo preço solicitado for mais do que o parâmetro especificado, o cliente tem que confirmar um novo preço ou recusá-lo. Poderia ser possível que após a confirmação o preço de mercado mudou eo cliente poderia ter outro requote. Lista de desvios máximos. Selecione o valor pips de desvio máximo. Depois de ter decidido comprar ou vender no preço atual, pressione os botões Comprar ou Vender para abrir uma posição longa ou curta (Pág.25). Pic.25 Escolher Vender ou Comprar Clicar em OK irá colocar a Ordem enviando-a ao corretor (Figura 26). Pág.26 Enviar Ordem Você pode assistir seus lucros ou perdas na janela do terminal como mostrado em (Figura 27): PIC. 27 Terminal window Laino Group número de registro 21973 IBC 2017. Aviso de risco: Observe que a negociação de produtos alavancados pode envolver um nível significativo de risco e não é adequado para todos os investidores. Você não deve arriscar mais do que você está preparado para perder. Antes de decidir negociar, certifique-se de compreender os riscos envolvidos e levar em conta seu nível de experiência. Procure aconselhamento independente, se necessário. PaxForex hoje a nossa classificação de 9,3 de 10. confiar em 107 votos e 55 comentários qualificados. Por favor, como o site PaxForex em sua rede favorita e obter acesso ao livre Bonus conta página de registroMetaTrader 5 - Tester Guia de Testes e Otimização de Expert Advisors em MQL5 Introdução A maior parte do tempo quando um desenvolvedor escreveu um Expert Advisor, certificando-se que o Expert Advisor Atinge o seu objectivo de boa rentabilidade é sempre um processo muito tasking. Neste artigo, analisaremos algumas das principais etapas necessárias para testar e otimizar um Consultor Especialista para que possamos alcançar o objetivo desejado de escrever o Expert Advisor. 1. Identificar e Corrigir Erros de Código Começaremos este artigo observando alguns erros comuns de código normalmente encontrados no processo de escrever um código Expert Advisor. A maioria dos iniciantes de tempo enfrentam algum tempo difícil identificar e corrigir erros de código ao escrever seus códigos ou ao modificar um código escrito por outro desenvolvedor. Nesta seção, veremos como é fácil usar o editor MQL5 para identificar e corrigir alguns desses erros. Você acabou de escrever o código e parece que tudo deve funcionar porque você está quase certo de que o código é livre de erros. Ou, foi um código que foi escrito por outra pessoa e você fez algumas alterações e, alas quando você bateu o botão Compile (ou pressione F7), você foi apresentado por série de erros no código, como mostrado na guia Error de A janela MetaEditor Toolbox. Figura 1. Erros de compilação em um código Expert Advisor Uau 38 erros e 1 aviso. Seu código pode não ter tantos erros como mostrado aqui, todos nós queremos olhar são os vários tipos de erros que são susceptíveis de aparecer quando compilar nosso código e como podemos resolvê-los. Vamos descrever o diagrama acima. A Seção marcada 1 mostra a descrição do erro no código. Isto é o que nos dá a idéia do que o erro parece. A seção marcada 2 nos mostra em qual arquivo temos o erro. Isso é muito importante se tivermos arquivos que contenham erros. Com isso, seremos capazes de saber que arquivo estamos a verificar para o erro descrito. A seção marcada 3 nos mostra qual linha e coluna (na linha) em nosso código o erro está localizado. Isso nos permite saber qual linha específica para verificar o erro descrito. A seção marcada com 4 mostra o resumo dos erros de compilação e avisos. Comecemos agora a resolver os erros um após o outro. Vamos percorrer até a primeira linha no separador Erro para que possamos começar a partir do início. Figura 2. Identificando e resolvendo erros de código O primeiro problema é descrito como. Truncamento de valor constante e é descoberto na linha 16 coluna 20. Para localizar a linha exata em nosso código, no menu Editar do MetaEditor, selecione Ir para Linha ou pressione CTRL G no teclado. Figura 3. Localizando o número de linha do código de erro Uma caixa de diálogo será exibida. Figura 4. Localizando a caixa de diálogo número de erro O intervalo de número mostrado na caixa de diálogo é o número total de linhas no código. Neste caso (1-354) mostra que o nosso código contém 354 linhas de código. Digite o número da linha que deseja verificar na caixa e clique no botão OK. Você será levado diretamente para o número da linha no código. Você verá o cursor do mouse piscando nessa linha específica. Figura 5. Cursor mostrando o número da linha de erro O problema aqui é que nós declaramos Lote como uma variável inteira (int), mas a inicializamos com um valor duplo (0.1). Para corrigir este erro vamos mudar o int para o dobro. Salve o arquivo e, em seguida, clique no botão COMPILE novamente para ver se isso foi corrigido. Figura 6. Compilar e salvar o código após a correção é feita Ao compilar novamente, o primeiro problema foi resolvido, mas ainda temos mais problemas, como mostrado abaixo: Figura 7. Mais erros aparece no código após a compilação Vamos agora seguir o mesmo procedimento Como acima e vá para a linha 31. No entanto, desta vez vamos clicar com o botão direito do mouse no erro na guia Erros e selecionar Ir para a linha Figura 8. Outra maneira de localizar a linha de erro de código Ou simplesmente selecionar o erro e aperte o botão Enter no seu teclado. Imediatamente, você será levado para a linha de código número 31. Você verá o cursor do mouse piscando e também um pequeno botão redondo vermelho (ícone de erro) naquela linha de código particular 31. Figura 9a. Localizando a linha de erro de código No entanto, se for uma mensagem de aviso como a primeira na linha 16 que corrigimos anteriormente, ela mostrará um botão amarelo triangular (ícone de aviso): Figura 9b. Localizando a linha de erro de código É muito óbvio que não temos nenhum problema na linha 31. Mas a descrição do erro diz: STP - token inesperado. Em seguida, devemos verificar a linha de código anterior (que é a linha 30) para ver o que pode estar errado. No exame mais atento, ponto-e-vírgula está faltando após o duplo ccminb - 95,0000 na linha 30, é por isso que temos esse erro na linha 31. Agora vamos corrigir esse erro digitando o ponto e vírgula depois - 95,0000 e compilar o código novamente. Agora os erros da linha 31 desapareceram. A seguir está a linha 100, como mostrado abaixo: Figura 10. Mais erros ainda existem no código Hey Olowsam, devemos estar compilando após cada correção, por que não vamos apenas passar por todas as linhas ao mesmo tempo e depois de ter feito todas as correções Então nós compilamos o código uma vez em vez de compilar após cada correção Você apenas fez esta pergunta Você pode estar certo de uma maneira, mas eu não vou aconselhar isso. Os problemas são sempre resolvidos um após o outro passo a passo. Qualquer tentativa de problema de protuberância juntos e resolvê-los imediatamente pode levar a muitas dores de cabeça. Você logo entenderá por que apenas seja paciente comigo. Voltando ao nosso problema, devemos verificar a linha 100 para o próximo erro. Os estados de erro. If - expressões não são permitidas em um escopo global E estou certo de que a expressão if na linha 100 não está em um escopo global, mas por que estamos tendo esse erro. Por favor, deixe-nos ir para a linha 100. Figura 11. Localizar o erro no código Não podemos encontrar qualquer problema na linha 100 e porque acabamos de corrigir linha 31, temos a certeza de que o problema agora está entre a linha 32 ea linha 99. Então Vamos avançar para a linha 99 (temos um comentário, então não pode ser o erro). Se também olhar para cima para as declarações (MqlTick. MqlTradeRequest e MqlTradeResult), eles são corretamente declarados e pontuados. Em seguida, vamos olhar para o código para a expressão if antes dessas linhas de código de declaração e ver se a expressão está bem. Em um estudo muito próximo, descobrimos que a expressão if tem uma chave de fecho, mas nenhuma chave de abertura. Figura 12. Olhando acima do número da linha de erro para identificar o erro Adicione a chave de abertura e compile o código novamente. Uma vez que o código foi compilado erros na linha 100, 107, 121, 126, 129, etc foram completamente limpos e novos aparecer. Veja por que é bom seguir passo a passo Figura 13. Mais erros ainda existem no código Em seguida, passamos para a linha 56 com dois erros. CciVal1 - conversão de parâmetro não é permitida e cciVal1 - matriz é necessária Em um olhar mais atento na linha 56. CciVal1 é suposto ter sido declarado como uma matriz. Poderia ser que nós não declará-lo como uma matriz, mas agora tentando usá-lo como uma matriz Vamos verificar a seção de declaração para confirmar isso antes que possamos saber o próximo a fazer. A partir de aqui, podemos ver que declaramos erroneamente cciVal1 como um duplo e não como um array dinâmico porque omitimos os colchetes (). Vamos adicionar os colchetes (assim como temos para cciVal2) e, em seguida, compilar o código. Figura 14. Erros no código foi reduzido consideravelmente O que tantos erros desapareceram. Apenas corrigimos o erro relatado na linha 56 e alguns outros erros foram resolvidos automaticamente. Isso ocorre porque, o erro relatado na linha 56 foi responsável por esses outros erros. É por isso que é bom seguir um processo passo a passo na resolução de erros no seu código. Passaremos agora para o próximo erro relatado na linha 103. GetLastError - identificador não declarado Aguarde um minuto, GetLastError é suposto ser uma função Vamos para a linha 103 para ver qual é o problema. O problema é na linha 103. GetLastError é uma função e cada função precisa de um par de parênteses para os parâmetros de entrada. Digite um par de parênteses vazio e, em seguida, compile o código. O par de parênteses vazio indica que a função não recebe argumentos ou parâmetros. Em seguida, passamos para a linha 159. - l-valor requerido e um aviso. Expressão não é booleana Vamos para a linha 159 e ver o que este erro significa. Pode ser visto aqui que nós atribuímos o valor de POSITIONTYPESELL a PositionGetInteger (POSITIONTYPE) na instrução if e não é isso que pretendemos fazer. Queríamos fazer comparação em vez disso. Vamos agora mudar a expressão para usar o operador igual em vez de usar um operador de atribuição. (Que é em vez de). Faça a correção e compile o código. Bom Agora temos mais um para ir. Vamos para a linha 292 para ver por que ele diz PositionsTotal - identificador não declarado. Espere um minuto, você pode se lembrar que vimos um erro como este antes GetlastError linha 103. Possivelmente, nos esquecemos de adicionar o par de parênteses para PositionsTotal também, uma vez que é uma função. Vamos para a linha 292 para confirmar. Assim como suspeitamos, é porque esquecemos de adicionar o par de parênteses para a função PositionsTotal. Agora adicione o par de parênteses (PositionsTotal ()) e compile o código. Deixe-me também afirmar que, é possível obter esse erro se nós realmente usar uma variável que nós não declaramos em qualquer lugar no código. Figura 15. Todos os Erros de compilação foram completamente resolvidos Maravilhoso Agora temos sido capazes de corrigir todos os erros de compilação. Agora é hora de depurar nosso código e ver se há erros em tempo de execução. Aqui, não vamos entrar nos detalhes de como depurar nosso código, como já foi explicado neste artigo. À medida que a sessão de depuração começa, notamos outro erro: Figura 16. Erro de tempo de execução observado durante a depuração de código Clique no botão OK e você será levado para a linha de código que gera o erro. Figura 17. Identificando a linha de código que gera erro em tempo de execução O erro é gerado por esse código na linha 172, como você pode ver na figura acima. Uma vez que o erro é um erro Array fora de intervalo, significa que o valor que pretendemos obter a partir da matriz está fora do intervalo dos valores de matriz disponíveis. Então vamos agora para a linha onde copiamos os buffers indicadores em matrizes para ver qual é o problema. Podemos observar a partir das funções CopyBuffer que temos apenas copiado três valores (Barra 0, 1 e 2), o que significa que só podemos acessar valores de matriz de maVal0. MaVal1. E maVal2 e também cciVal10. CciVal11 e cciVal12. Etc Mas em nosso código na linha 172. Estávamos tentando obter o valor da matriz para cciVal13. É por isso que o erro foi gerado. Agora, pare o depurador para que possamos corrigir o erro: Figura 18. Parar o depurador para corrigir o erro no código Para corrigir isso, precisamos aumentar o número de registros a serem copiados dos buffers Indicador para 5 para que possamos obter Valores de matriz de cciVal10, cciVal11, cciVal12, cciVal13 e cciVal14, se necessário. Corrija o código conforme mostrado e inicie o depurador novamente. Desta vez, não há mais erros quando observamos o nosso Expert Advisor executando ações comerciais. Figura 19. Todos os erros corrigidos, o Expert Advisor realiza o comércio durante a depuração 2. Testando o Expert Advisor Depois de ter certeza de que nosso código está livre de erros, agora é hora de Teste o Expert Advisor para obter as melhores configurações que nos darão os melhores resultados. A fim de realizar o teste, vamos usar o Strategy Tester, um programa que é construído no terminal MetaTrader. Para iniciar o Testador de Estratégia, vá para o menu Exibir no Terminal e selecione o Testador de Estratégia. Figura 20. Lançamento do Testador de Estratégia 2.1. Teste preliminar do nosso Expert Advisor Neste ponto, queremos testar o nosso Expert usando os símbolos disponíveis na Market Window. Com este resultado seremos capazes de adivinhar quais pares de moedas podemos optimizar melhor o nosso Expert para. Certifique-se de que a Janela de Mercado contém a maioria das moedas que você está segmentando para o Especialista. Selecione o Especialista na guia Configurações do Testador de Estratégia, selecione o período / período que você tem em mente (e, claro, você também pode testá-lo para períodos diferentes) e selecione Todos os Símbolos Selecionados em MARKET Watch no campo de otimização. Diretamente em frente é o parâmetro de resultados de otimização, selecione o fator de lucro máximo de equilíbrio. Figura 21. Teste preliminar do Expert Advisor com todos os símbolos na janela Market Watch 1. Selecione o modo de geração de tick (Cada Tick) 2. Selecione o Tipo de Otimização (Todos os Símbolos Selecionados no MARKET Watch) 3. Selecione o tipo de Resultado esperado da otimização Você Pode obter os detalhes dos vários tipos de otimização a partir da documentação de ajuda do terminal. Não estamos fazendo testes diretos, então deixe para a frente como Não. Para este teste, os principais valores / parâmetros (realçados em verde) na guia Entradas serão usados. Figura 22. Parâmetros preliminares de entrada de teste Depois de terminar, mude para a guia Configurações e clique no botão Iniciar. Ao concluir o teste, você verá uma mensagem na guia Diário semelhante à seguinte: Figura 23. Teste preliminar concluído Quando o teste estiver concluído, vá para a guia Resultados de otimização para ver os resultados. Figura 24. Resultados preliminares de otimização de teste Nosso interesse está no símbolo que dá o maior Resultado com base em nossa configuração (Equilíbrio Máx. Fator de Lucro). Para obter isto, vamos classificar o resultado clicando no título do Resultado de forma que o símbolo com o resultado mais alto esteja listado na parte superior. Figura 25. Análise Preliminar de Resultados de Otimização A partir desse resultado, podemos ver que nosso Expert Advisor pode ser lucrativo para os seguintes símbolos (EURUSD, EURJPY, AUDUSD) no período selecionado. Você pode ainda realizar este teste para outro período de tempo, digamos, 30mins e ver o que você tem. Isso deve ser tomado como uma tarefa e por favor, compartilhe o resultado para que possamos todos aprender também. A partir do resultado de nosso teste preliminar, vamos agora decidir qual o (s) símbolo (s) e prazo (s) que vamos otimizar nosso Expert Advisor para. Neste exemplo, otimizaremos nosso Expert Advisor para o período EURUSD e 1 Hora. Quais são as coisas que motivam a escolha que acabamos de fazer: O fator de lucro é a razão entre o lucro total e a perda total para esse teste. Quanto maior o fator de lucro mais rentável sua estratégia de negociação é. Refere-se à redução relativa do capital próprio ou da maior perda (em percentagem) do valor máximo do capital próprio. Quanto menor o Drawdown (em percentagem), melhor a estratégia. Esta é a razão entre o lucro ea redução máxima. Reflete o risco da estratégia de negociação. Tendo decidido sobre o símbolo eo prazo para usar, agora é hora de otimizar o nosso Expert Advisor. 2.2. Otimizando o Expert Advisor A otimização é simplesmente um processo de aperfeiçoamento do desempenho de nossa EA por meio de testes com vários fatores (parâmetros) que determinam a eficácia ou lucratividade de nossa estratégia codificada no EA. É um procedimento semelhante ao teste, mas em vez de testar o EA apenas uma vez, ele será testado várias vezes, dependendo dos parâmetros selecionados na guia Entrada. Para começar, vamos para a guia de configurações e ativar otimização e, em seguida, selecionar o tipo de resultado que queremos de nossa otimização. Figura 26. Configurações de otimização para o Expert Advisor 1. Selecione o modo de geração de carrapatos (Every Tick) 2. Selecione o tipo de otimização (Fast Genetic Based Algorithm) 3. Selecione o tipo de Resultado esperado da otimização Obter os detalhes dos vários tipos de otimização a partir da documentação de ajuda do terminal. Não estamos testando para frente, então deixe Forward como Não. Depois de definir as propriedades de otimização, vamos definir os parâmetros a serem usados ​​para a otimização na guia Entradas. Figura 27. Otimização Parâmetros de entrada Já que estamos otimizando, concentrar-nos-emos apenas nas áreas destacadas em amarelo. Primeiro de tudo, qualquer parâmetro que não queremos usar na otimização deve ser desmarcado. Em palavras de ordem, vamos apenas verificar os parâmetros que queremos usar na otimização da EA. Aqui, eu verifiquei cinco parâmetros, mas você pode decidir verificar apenas um ou dois, dependendo dos parâmetros que a eficácia da sua estratégia é baseada. Por exemplo, você pode verificar apenas os períodos Média móvel e CCI de tal forma que o resultado da otimização permitirá que você saiba o melhor valor para cada um dos indicadores que dão ao seu EA o melhor desempenho. Esta é a essência principal da otimização. Além disso, o número de parâmetros verificados determinará o número total de testes que o EA passará. Você vai ver em breve o que eu estou falando. Definição dos valores Este é o valor inicial a ser utilizado para a variável selecionada para otimização. Vamos usar a variável Stop Loss para explicar como definir os valores. Para o Stop Loss, pedimos ao testador para iniciar com um valor de 30. Este será o valor mínimo que será usado para Stop Loss durante a otimização. Este é o valor incremental para o Stop Loss. Se definimos um incremento de 2 significa que, se no primeiro teste, ele usa 30 para Stop Loss ele usará 32, 36, 34 etc. no segundo. Isso não significa que ele usará 30. Seguida por 32. 34 etc. Não, seleciona os valores aleatoriamente, mas sempre serão múltiplos de 2 (2) entre o valor de Partida eo valor de Parada. Este é o valor máximo ou máximo que será usado para a otimização. Aqui especificamos 38. Isto significa que os valores que serão utilizados para o teste serão entre 30 e 38, mas serão valores que são múltiplos de 2. Ele não usará 40 ou qualquer valor maior. O número total de testes que serão realizados depende das configurações dessas três seções. No nosso exemplo, o testador irá combinar um total de 5 possibilidades sozinho para o Stop Loss, como mostrado na coluna Passos na guia Entradas, ele irá combinar um total de 8 possibilidades para Take Profit, etc No momento que você considerar todos As outras variáveis, estará chegando a centenas ou milhares de possibilidades (testes / passes). Se você não quiser esperar por idades a fim de otimizar uma única EA, certifique-se de não incluir ou verificar muitas variáveis ​​talvez apenas dois ou três que o desempenho do seu EA realmente depende (mais especialmente, os períodos de indicador, se você Usá-los em seu próprio código). Além disso, você deve certificar-se de que seu valor de etapa não resultará em ter muitas possibilidades (testes). Por exemplo, se usarmos 1 como o valor do passo, então aumentamos o número de tentativas para o Stop Loss sozinho para 10. Bem, como dito anteriormente, o tempo total necessário para concluir uma sessão de otimização depende do número total de agentes disponíveis que você tenha configurado em seu sistema. Acredito que a explicação é suficiente. Depois de concluir a configuração das entradas, voltamos agora para a guia Configurações e clicamos no botão Iniciar. Quando a otimização estiver concluída, podemos ver os detalhes na guia do diário. Figura 28. Otimização concluída como mostrado na guia Diário Para exibir os resultados conforme cada teste é passado ou concluído, nós vamos para a guia Resultados de Otimização. E é sempre bom classificar a saída pelos Resultados para que possamos identificar facilmente as configurações que nos dão o melhor resultado com base na nossa configuração de otimização. Figura 29. Relatório de otimização Mude para a guia Gráfico de Otimização para ver como o gráfico se parece. Clique no cabeçalho Resultado na guia Resultados de otimização para organizar os resultados em ordem ascendente ou descendente. Figura 30. Gráfico de otimização Não entendo o que você vê Não se preocupe os pontos que você vê é um gráfico do número de testes que o EA passou em relação ao resultado de otimização com base no tipo de resultado de otimização selecionado. No nosso caso, seleccionámos o factor de lucro Saldo máximo. 2.3. Interpretar o resultado Para interpretar com êxito o relatório de otimização, vá para a guia Resultados de otimização. Você verá que não é possível ver alguns campos como, Fator de lucro, Pagamento esperado, Drawdown, etc. Para visualizá-los, clique com o botão direito em qualquer lugar na guia Resultados de otimização e selecione as informações adicionais que você deseja ver, como mostrado abaixo: Figura 31. Selecionando Drawdown no resultado de otimização Figura 32. Selecionando o Fator de Lucro no resultado de otimização Tendo adicionado esses registros adicionais, analisaremos agora o resultado da Otimização para decidir as melhores configurações para nosso Expert Advisor. Figura 33. Analisando o resultado de otimização A partir da figura acima, as seções destacadas rotuladas como A e B indicam os melhores resultados para o nosso Expert Advisor. Agora a escolha que você faz é completamente sua, tudo depende do que você está procurando. No entanto, aqui estamos interessados ​​não só nas configurações que dão o maior lucro, mas também têm um menor drawdown. Como você pode ver, a seção A (destacada em amarelo) tem o melhor resultado (Equilíbrio Máximo Lucro Fator) de 22381.71 com um lucro de 924.10 enquanto a seção B (realçado em verde) tem o segundo melhor resultado de 22159.25, mas com um maior Lucro de 936,55. A seção A tinha uma Drawdown menor de 1,78, enquanto que B tem uma maior redução de 1,95. O Testador de Estratégia salva os resultados de otimização para a pasta foldergtTestercache de dados do terminal theltClient. No seu caso, todos os dados de otimização serão salvos no arquivo ccimaea. EURUSD. H1.0.xml, O nome do arquivo tem a seguinte forma: ExpertName. SYMBOL. PERIOD. GenerationMode. xml, onde: ExpertName - Expert Advisor Name Symbol - Símbolo Período - período (M1, H1.) Modo de geração - modo de geração de carrapatos (0-cada tick, 1 - um minuto OHLC, 2 - apenas preços abertos). Os arquivos XML podem ser abertos pelo MS Excel. 2.4. Escolhendo o melhor resultado Para finalmente obter o melhor resultado, precisamos examinar novamente o gráfico de otimização. Volte ao gráfico de Otimização. Clique com o botão direito do mouse em qualquer lugar dentro do gráfico e selecione Gráfico 1D. Figura 34. Gráfico de Seleção 1D (1D) para análise de resultados Com isso podemos ver facilmente os valores de cada um dos parâmetros de entrada que dão o melhor resultado. Agora você pode começar a escolher cada parâmetro para poder ver o melhor valor. Clique com o botão direito do mouse no gráfico e selecione X-Axis e selecione o parâmetro que deseja verificar. Figura 35. Obtendo o melhor valor de StopLoss do resultado de otimização Na verdade, a partir do resultado de otimização, fica muito claro que o melhor Stoploss é 34, o melhor TakeProfit é 78 eo melhor CCIPeriod1 É 62. Para obter os melhores valores para o MAPeriod e CCIPeriod2, selecione cada um deles como acima Figura 36. Obtendo o melhor valor do período médio móvel a partir do resultado de otimização Este gráfico mostra um valor de 26 como o MAPeriod com o melhor resultado. Figura 37. Obtenção do melhor valor CCIPeriod1 a partir do resultado de otimização Este gráfico mostra um valor de 62 como o CCIPeriod1 com o melhor resultado. Figura 38. Obtenção do melhor valor CCIPeriod2 a partir do resultado de otimização Este gráfico mostra valores de 28 ou 30 como o CCIPeriod2 com os melhores resultados. Tendo obtido os melhores valores para cada parâmetro, é agora o momento para o teste final do nosso Expert Advisor. 2.5. O Teste Final O teste final envolve reunir os melhores parâmetros para o teste do Expert Advisor. Nesse caso, usaremos os melhores valores que descobrimos na seção INPUT do Testador de Estratégia, conforme mostrado abaixo. Figura 39. Os parâmetros de entrada de teste finais Na guia AJUSTES do Testador de Estratégia, desativaremos a Otimização como mostrado abaixo Figura 40. Configurações de teste finais Agora clicaremos no botão START para iniciar o teste. Uma vez concluído o teste, temos os resultados na aba RESULTADOS como mostrado abaixo Figura 41. Resultados finais do teste E da mesma forma, temos o gráfico para o teste na guia GRÁFICO Figura 42. O resultado final do gráfico de teste Conclusão Neste artigo , Discutimos as formas de identificar e corrigir erros de código e também discutimos como testar e otimizar um Expert Advisor para obter o melhor símbolo do mercado. Com este artigo, eu acredito que a verificação de código para erros usando o editor e otimização e testes de Expert Advisors usando o Testador de Estratégia torna a escrita um melhor e mais rentável Expert Advisor possível. FF Indicador Calendário para MT Outras coisas dignas de nota: - Você pode querer definir O OffsetHours para 0. Eu tinha-o definido como -1 no lançamento da versão acima. - Uma correção que eu esqueci de mencionar: A fonte original usado o Ano (), Mês (), etc comandos para a data de seus arquivos baixados. Eu mudei estes para TimeYear (), TimeMonth (), porque os outros comandos não atualizar durante o tempo de execução. Em outras palavras, se você permitir que o FFCalendar original seja executado durante o fim de semana sem reiniciar o indicador ou o terminal MT4, você não receberá as notícias para a nova semana. O ajuste que eu fiz. Esta atualização é um recurso muito legal para testar o calendário do DailyFx, mas enquanto temos sucesso em Mt4 Build 840 no Win7, Win 8 etc, continuamos a ver falhas de arquivos inconsistentes com o DailyFX aparentemente não suportando. csv consistentemente. Com os recursos de depuração ativados, a biblioteca LibNEWSB6v2a relata a convenção de nome de arquivo como correta, mas o conteúdo do. csv DailyFX Apache retorna agora. O servidor encontrou um erro interno ou uma configuração incorrecta e não conseguiu concluir a sua solicitação. Ou Erro 503 backend ler erro Pior, porque esses arquivos ficam carregados como arquivos. csv válidos, parece um precisa excluir o arquivo específico no diretório de arquivos para quotre-grabquot o arquivo, assumindo porque o downloader encontrou um arquivo válido já existe com Esse nome em arquivos. Eu pensei que a biblioteca enviou csv novo cada vez independentemente, mas meus carimbos de tempo não estão mudando aqui no arquivo de notícias para sugerir isso está acontecendo cada execução, possivelmente porque o arquivo nunca se torna totalmente válido. Curiosamente, quando se converte a solicitação de arquivo para um tipo. xls no navegador, os dados válidos retornam do DailyFX em um navegador para que ele possa ser simplesmente uma alteração no DailyFX ou um problema na codificação html causando isso. Dailyfx / files / Calendar-08-02-2017.xls Ao compilar a biblioteca LibNEWSB6v2a. ex4. Um aviso retorna que uma constante não é codificada como um inteiro sem sinal informando quot truncamento de valor constante quot, mas eu duvido que esta seja a causa imediata significado o compilador está convertendo a constante para unsigned automaticamente que não parece que ele iria causar o problema acima. 1) Alguém sabe se o formato de ForexFactory pode ser lido com esta biblioteca ainda, um pouco do que DailyFX 2) É qualquer um mais ainda usando esta versão atualizada por ngfast 3) Se assim são os mesmos erros que acontecem aos outro que usam o 4) Isto se assim e você postar atualização, por favor, se houver uma solução 5) Qualquer alternativa conhecida notícias leitores codificados para trabalhar em Mt4 volta testar atual Parece ngfast hasnt sido em torno de algumas semanas. Não consegui localizar mais ninguém atualizando esta biblioteca ou abordando as questões de formato FF ou as respostas de erro de leitura do arquivo DailyFX. Qualquer ajuda seria muito apreciada. Eu modifiquei uma versão do FFCal para obtê-lo trabalhando em 600 compilações. Eu não vi a versão FFCalMod aqui, mas a minha não funciona em dezembro de 2017 MT4 constrói e estou feliz com os resultados. Heres uma lista detalhada dos problemas na fonte original de FFCal que eu reparei. Correções - A função TimeGMT () agora é uma função nativa e conflitada com a implementação personalizada do mesmo. Não biggie, apenas renomeado. - A fonte original não poderia mais buscar as páginas da web. Este foi um problema. Obrigado por compartilhar. Você é um ótimo codificador. Preciso de ajuda sobre este indicador. Você poderia me dizer por favor como ler o título do evento (notícia) neste indicador em EA talvez seus problemas são. 1. Updated to MT4 build 920, it does not allow to attach your external indicator, EA, and etc. there are a couple of threads discussing how to fix the issues that 920 is causing. ( There is a build 940 coming this Friday which might solve the latest issues ) Sorry I cannot help you, personally I am having no problems with build 920 2. Sometimes when an internet connection is not good enough, can interfere your Indi, Scripts and EAs performance. ( delete unnecessary indi. script, EA that youre not using for ) theres no problem with my MT4 4 digits broker Attached Image (click to enlarge)

No comments:

Post a Comment